From 9e0fdbdc37d8da814ee22a369cbbb4387edb11f0 Mon Sep 17 00:00:00 2001 From: aws-sdk-go-automation <43143561+aws-sdk-go-automation@users.noreply.github.com> Date: Thu, 31 Aug 2023 12:08:00 -0700 Subject: [PATCH] Release v1.45.1 (2023-08-31) (#4970) Release v1.45.1 (2023-08-31) === ### Service Client Updates * `service/chime-sdk-media-pipelines`: Updates service API and documentation * `service/cloudhsm`: Updates service API * Deprecating CloudHSM Classic API Service. * `service/connectcampaigns`: Updates service API and documentation * `service/connectparticipant`: Updates service API and documentation * `service/customer-profiles`: Updates service API and documentation * `service/ecs`: Updates service API and documentation * This release adds support for an account-level setting that you can use to configure the number of days for AWS Fargate task retirement. * `service/events`: Updates service documentation * Documentation updates for CloudWatch Events. * `service/grafana`: Updates service API * `service/health`: Updates service API and documentation * Adds new API DescribeEntityAggregatesForOrganization that retrieves entity aggregates across your organization. Also adds support for resource status filtering in DescribeAffectedEntitiesForOrganization, resource status aggregates in the DescribeEntityAggregates response, and new resource statuses. * `service/ivs`: Updates service documentation * `service/kafkaconnect`: Updates service API and documentation * `service/payment-cryptography-data`: Updates service API and documentation * `service/runtime.sagemaker`: Updates service API and documentation --- CHANGELOG.md | 22 + aws/endpoints/defaults.go | 26 + aws/version.go | 2 +- .../2021-07-15/api-2.json | 42 +- .../2021-07-15/docs-2.json | 32 +- .../2021-07-15/endpoint-rule-set-1.json | 344 +++--- models/apis/cloudhsm/2014-05-30/api-2.json | 80 +- .../2014-05-30/endpoint-rule-set-1.json | 314 +++++ .../cloudhsm/2014-05-30/endpoint-tests-1.json | 327 ++++++ .../connectcampaigns/2021-01-30/api-2.json | 140 +-- .../connectcampaigns/2021-01-30/docs-2.json | 14 + .../2021-01-30/endpoint-rule-set-1.json | 314 +++++ .../2021-01-30/endpoint-tests-1.json | 353 ++++++ .../connectparticipant/2018-09-07/api-2.json | 124 +- .../connectparticipant/2018-09-07/docs-2.json | 98 +- .../2018-09-07/endpoint-rule-set-1.json | 362 +++--- .../2018-09-07/endpoint-tests-1.json | 96 +- .../customer-profiles/2020-08-15/api-2.json | 175 +-- .../customer-profiles/2020-08-15/docs-2.json | 136 ++- .../2020-08-15/endpoint-rule-set-1.json | 344 +++--- models/apis/ecs/2014-11-13/api-2.json | 3 +- models/apis/ecs/2014-11-13/docs-2.json | 24 +- models/apis/events/2015-10-07/docs-2.json | 2 +- .../2015-10-07/endpoint-rule-set-1.json | 352 ++++++ .../events/2015-10-07/endpoint-tests-1.json | 678 +++++++++++ models/apis/grafana/2020-08-18/api-2.json | 9 +- .../2020-08-18/endpoint-rule-set-1.json | 344 +++--- models/apis/health/2016-08-04/api-2.json | 100 +- models/apis/health/2016-08-04/docs-2.json | 82 +- .../2016-08-04/endpoint-rule-set-1.json | 450 ++++---- models/apis/ivs/2020-07-14/docs-2.json | 8 +- .../ivs/2020-07-14/endpoint-rule-set-1.json | 344 +++--- .../apis/kafkaconnect/2021-09-14/api-2.json | 38 +- .../apis/kafkaconnect/2021-09-14/docs-2.json | 46 +- .../2021-09-14/endpoint-rule-set-1.json | 314 +++++ .../2021-09-14/endpoint-tests-1.json | 509 ++++++++ .../2022-02-03/api-2.json | 38 +- .../2022-02-03/docs-2.json | 30 +- .../2022-02-03/endpoint-tests-1.json | 123 +- .../runtime.sagemaker/2017-05-13/api-2.json | 128 +++ .../runtime.sagemaker/2017-05-13/docs-2.json | 88 +- .../2017-05-13/endpoint-rule-set-1.json | 400 +++---- .../2017-05-13/endpoint-tests-1.json | 98 +- models/endpoints/endpoints.json | 12 + service/chimesdkmediapipelines/api.go | 143 ++- service/cloudhsm/api.go | 180 +++ service/cloudwatchevents/api.go | 7 +- service/connectcampaigns/api.go | 90 +- service/connectparticipant/api.go | 440 ++++++- .../connectparticipantiface/interface.go | 4 + service/connectparticipant/errors.go | 7 + service/customerprofiles/api.go | 598 ++++++++-- service/ecs/api.go | 194 +++- service/health/api.go | 406 ++++++- service/health/healthiface/interface.go | 4 + service/ivs/api.go | 188 +-- service/managedgrafana/api.go | 18 +- service/paymentcryptographydata/api.go | 28 +- service/sagemakerruntime/api.go | 1020 ++++++++++++++++- service/sagemakerruntime/errors.go | 26 + service/sagemakerruntime/eventstream_test.go | 344 ++++++ .../sagemakerruntimeiface/interface.go | 4 + service/sagemakerruntime/service.go | 3 + 63 files changed, 8965 insertions(+), 2304 deletions(-) create mode 100644 models/apis/cloudhsm/2014-05-30/endpoint-rule-set-1.json create mode 100644 models/apis/cloudhsm/2014-05-30/endpoint-tests-1.json create mode 100644 models/apis/connectcampaigns/2021-01-30/endpoint-rule-set-1.json create mode 100644 models/apis/connectcampaigns/2021-01-30/endpoint-tests-1.json create mode 100644 models/apis/events/2015-10-07/endpoint-rule-set-1.json create mode 100644 models/apis/events/2015-10-07/endpoint-tests-1.json create mode 100644 models/apis/kafkaconnect/2021-09-14/endpoint-rule-set-1.json create mode 100644 models/apis/kafkaconnect/2021-09-14/endpoint-tests-1.json create mode 100644 service/sagemakerruntime/eventstream_test.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 679d2353c76..6793aa6cb80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,25 @@ +Release v1.45.1 (2023-08-31) +=== + +### Service Client Updates +* `service/chime-sdk-media-pipelines`: Updates service API and documentation +* `service/cloudhsm`: Updates service API + * Deprecating CloudHSM Classic API Service. +* `service/connectcampaigns`: Updates service API and documentation +* `service/connectparticipant`: Updates service API and documentation +* `service/customer-profiles`: Updates service API and documentation +* `service/ecs`: Updates service API and documentation + * This release adds support for an account-level setting that you can use to configure the number of days for AWS Fargate task retirement. +* `service/events`: Updates service documentation + * Documentation updates for CloudWatch Events. +* `service/grafana`: Updates service API +* `service/health`: Updates service API and documentation + * Adds new API DescribeEntityAggregatesForOrganization that retrieves entity aggregates across your organization. Also adds support for resource status filtering in DescribeAffectedEntitiesForOrganization, resource status aggregates in the DescribeEntityAggregates response, and new resource statuses. +* `service/ivs`: Updates service documentation +* `service/kafkaconnect`: Updates service API and documentation +* `service/payment-cryptography-data`: Updates service API and documentation +* `service/runtime.sagemaker`: Updates service API and documentation + Release v1.45.0 (2023-08-30) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 7534816735a..e92ab54e52b 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -6282,6 +6282,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-northeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{}, endpointKey{ Region: "ap-south-1", }: endpoint{}, @@ -6348,6 +6351,9 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "il-central-1", + }: endpoint{}, endpointKey{ Region: "me-south-1", }: endpoint{}, @@ -6400,6 +6406,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-northeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{}, endpointKey{ Region: "ap-south-1", }: endpoint{}, @@ -6466,6 +6475,9 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "il-central-1", + }: endpoint{}, endpointKey{ Region: "me-south-1", }: endpoint{}, @@ -17416,6 +17428,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-southeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-3", + }: endpoint{}, endpointKey{ Region: "ca-central-1", }: endpoint{}, @@ -17473,6 +17488,9 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "il-central-1", + }: endpoint{}, endpointKey{ Region: "me-south-1", }: endpoint{}, @@ -21265,6 +21283,14 @@ var awsPartition = partition{ Region: "eu-west-3", }, }, + endpointKey{ + Region: "il-central-1", + }: endpoint{ + Hostname: "portal.sso.il-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "il-central-1", + }, + }, endpointKey{ Region: "me-south-1", }: endpoint{ diff --git a/aws/version.go b/aws/version.go index a540adc44ac..6291b0bb69a 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.45.0" +const SDKVersion = "1.45.1" diff --git a/models/apis/chime-sdk-media-pipelines/2021-07-15/api-2.json b/models/apis/chime-sdk-media-pipelines/2021-07-15/api-2.json index 212236c7e05..58ddf57a1f9 100644 --- a/models/apis/chime-sdk-media-pipelines/2021-07-15/api-2.json +++ b/models/apis/chime-sdk-media-pipelines/2021-07-15/api-2.json @@ -1365,7 +1365,8 @@ "MediaInsightsRuntimeMetadata":{"shape":"MediaInsightsRuntimeMetadata"}, "KinesisVideoStreamRecordingSourceRuntimeConfiguration":{"shape":"KinesisVideoStreamRecordingSourceRuntimeConfiguration"}, "S3RecordingSinkRuntimeConfiguration":{"shape":"S3RecordingSinkRuntimeConfiguration"}, - "CreatedTimestamp":{"shape":"Iso8601Timestamp"} + "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, + "ElementStatuses":{"shape":"MediaInsightsPipelineElementStatuses"} } }, "MediaInsightsPipelineConfiguration":{ @@ -1393,7 +1394,8 @@ "VoiceAnalyticsProcessorConfiguration":{"shape":"VoiceAnalyticsProcessorConfiguration"}, "LambdaFunctionSinkConfiguration":{"shape":"LambdaFunctionSinkConfiguration"}, "SqsQueueSinkConfiguration":{"shape":"SqsQueueSinkConfiguration"}, - "SnsTopicSinkConfiguration":{"shape":"SnsTopicSinkConfiguration"} + "SnsTopicSinkConfiguration":{"shape":"SnsTopicSinkConfiguration"}, + "VoiceEnhancementSinkConfiguration":{"shape":"VoiceEnhancementSinkConfiguration"} } }, "MediaInsightsPipelineConfigurationElementType":{ @@ -1406,7 +1408,8 @@ "LambdaFunctionSink", "SqsQueueSink", "SnsTopicSink", - "S3RecordingSink" + "S3RecordingSink", + "VoiceEnhancementSink" ] }, "MediaInsightsPipelineConfigurationElements":{ @@ -1431,6 +1434,17 @@ "type":"list", "member":{"shape":"MediaInsightsPipelineConfigurationSummary"} }, + "MediaInsightsPipelineElementStatus":{ + "type":"structure", + "members":{ + "Type":{"shape":"MediaInsightsPipelineConfigurationElementType"}, + "Status":{"shape":"MediaPipelineElementStatus"} + } + }, + "MediaInsightsPipelineElementStatuses":{ + "type":"list", + "member":{"shape":"MediaInsightsPipelineElementStatus"} + }, "MediaInsightsRuntimeMetadata":{ "type":"map", "key":{"shape":"NonEmptyString"}, @@ -1458,6 +1472,19 @@ "MediaInsightsPipeline":{"shape":"MediaInsightsPipeline"} } }, + "MediaPipelineElementStatus":{ + "type":"string", + "enum":[ + "NotStarted", + "NotSupported", + "Initializing", + "InProgress", + "Failed", + "Stopping", + "Stopped", + "Paused" + ] + }, "MediaPipelineList":{ "type":"list", "member":{"shape":"MediaPipelineSummary"} @@ -1478,7 +1505,8 @@ "Failed", "Stopping", "Stopped", - "Paused" + "Paused", + "NotStarted" ] }, "MediaPipelineStatusUpdate":{ @@ -2039,6 +2067,12 @@ "SpeakerSearchStatus":{"shape":"VoiceAnalyticsConfigurationStatus"}, "VoiceToneAnalysisStatus":{"shape":"VoiceAnalyticsConfigurationStatus"} } + }, + "VoiceEnhancementSinkConfiguration":{ + "type":"structure", + "members":{ + "Disabled":{"shape":"Boolean"} + } } } } diff --git a/models/apis/chime-sdk-media-pipelines/2021-07-15/docs-2.json b/models/apis/chime-sdk-media-pipelines/2021-07-15/docs-2.json index 6400fa08e68..6363b0f2938 100644 --- a/models/apis/chime-sdk-media-pipelines/2021-07-15/docs-2.json +++ b/models/apis/chime-sdk-media-pipelines/2021-07-15/docs-2.json @@ -173,7 +173,8 @@ "AmazonTranscribeProcessorConfiguration$FilterPartialResults": "

If true, TranscriptEvents with IsPartial: true are filtered out of the insights target.

", "AmazonTranscribeProcessorConfiguration$IdentifyLanguage": "

Turns language identification on or off.

", "KeywordMatchConfiguration$Negate": "

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.

", - "RealTimeAlertConfiguration$Disabled": "

Turns off real-time alerts.

" + "RealTimeAlertConfiguration$Disabled": "

Turns off real-time alerts.

", + "VoiceEnhancementSinkConfiguration$Disabled": "

Disables the VoiceEnhancementSinkConfiguration element.

" } }, "BorderColor": { @@ -790,7 +791,8 @@ "MediaInsightsPipelineConfigurationElementType": { "base": null, "refs": { - "MediaInsightsPipelineConfigurationElement$Type": "

The element type.

" + "MediaInsightsPipelineConfigurationElement$Type": "

The element type.

", + "MediaInsightsPipelineElementStatus$Type": "

The type of status.

" } }, "MediaInsightsPipelineConfigurationElements": { @@ -821,6 +823,18 @@ "ListMediaInsightsPipelineConfigurationsResponse$MediaInsightsPipelineConfigurations": "

The requested list of media insights pipeline configurations.

" } }, + "MediaInsightsPipelineElementStatus": { + "base": "

The status of the pipeline element.

", + "refs": { + "MediaInsightsPipelineElementStatuses$member": null + } + }, + "MediaInsightsPipelineElementStatuses": { + "base": null, + "refs": { + "MediaInsightsPipeline$ElementStatuses": "

The statuses that the elements in a media insights pipeline can have during data processing.

" + } + }, "MediaInsightsRuntimeMetadata": { "base": null, "refs": { @@ -841,6 +855,12 @@ "GetMediaPipelineResponse$MediaPipeline": "

The media pipeline object.

" } }, + "MediaPipelineElementStatus": { + "base": null, + "refs": { + "MediaInsightsPipelineElementStatus$Status": "

The element's status.

" + } + }, "MediaPipelineList": { "base": null, "refs": { @@ -1284,7 +1304,7 @@ } }, "VerticalLayoutConfiguration": { - "base": "

Defines the configuration settings for a vertial layout.

", + "base": "

Defines the configuration settings for a vertical layout.

", "refs": { "GridViewConfiguration$VerticalLayoutConfiguration": "

The configuration settings for a vertical layout.

" } @@ -1364,6 +1384,12 @@ "refs": { "MediaInsightsPipelineConfigurationElement$VoiceAnalyticsProcessorConfiguration": "

The voice analytics configuration settings in a media insights pipeline configuration element.

" } + }, + "VoiceEnhancementSinkConfiguration": { + "base": "

A static structure that contains the configuration data for a VoiceEnhancementSinkConfiguration element.

", + "refs": { + "MediaInsightsPipelineConfigurationElement$VoiceEnhancementSinkConfiguration": "

The configuration settings for the VoiceEnhancementSinkConfiguration element.

" + } } } } diff --git a/models/apis/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json b/models/apis/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json index df6d5f828d0..a451babf8a6 100644 --- a/models/apis/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json +++ b/models/apis/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json @@ -58,52 +58,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -111,13 +115,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -127,224 +140,175 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", + "fn": "getAttr", "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" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "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, { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "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" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "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" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "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" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [], "endpoint": { - "url": "https://media-pipelines-chime.{Region}.{PartitionResult#dnsSuffix}", + "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" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/cloudhsm/2014-05-30/api-2.json b/models/apis/cloudhsm/2014-05-30/api-2.json index 3f9dc02a958..c3199ad0c5e 100644 --- a/models/apis/cloudhsm/2014-05-30/api-2.json +++ b/models/apis/cloudhsm/2014-05-30/api-2.json @@ -25,7 +25,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "CreateHapg":{ "name":"CreateHapg", @@ -39,7 +41,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "CreateHsm":{ "name":"CreateHsm", @@ -53,7 +57,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "CreateLunaClient":{ "name":"CreateLunaClient", @@ -67,7 +73,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "DeleteHapg":{ "name":"DeleteHapg", @@ -81,7 +89,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "DeleteHsm":{ "name":"DeleteHsm", @@ -95,7 +105,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "DeleteLunaClient":{ "name":"DeleteLunaClient", @@ -109,7 +121,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "DescribeHapg":{ "name":"DescribeHapg", @@ -123,7 +137,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "DescribeHsm":{ "name":"DescribeHsm", @@ -137,7 +153,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "DescribeLunaClient":{ "name":"DescribeLunaClient", @@ -151,7 +169,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "GetConfig":{ "name":"GetConfig", @@ -165,7 +185,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "ListAvailableZones":{ "name":"ListAvailableZones", @@ -179,7 +201,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "ListHapgs":{ "name":"ListHapgs", @@ -193,7 +217,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "ListHsms":{ "name":"ListHsms", @@ -207,7 +233,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "ListLunaClients":{ "name":"ListLunaClients", @@ -221,7 +249,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -235,7 +265,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "ModifyHapg":{ "name":"ModifyHapg", @@ -249,7 +281,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "ModifyHsm":{ "name":"ModifyHsm", @@ -263,7 +297,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "ModifyLunaClient":{ "name":"ModifyLunaClient", @@ -275,7 +311,9 @@ "output":{"shape":"ModifyLunaClientResponse"}, "errors":[ {"shape":"CloudHsmServiceException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." }, "RemoveTagsFromResource":{ "name":"RemoveTagsFromResource", @@ -289,7 +327,9 @@ {"shape":"CloudHsmServiceException"}, {"shape":"CloudHsmInternalException"}, {"shape":"InvalidRequestException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"This API is deprecated." } }, "shapes":{ diff --git a/models/apis/cloudhsm/2014-05-30/endpoint-rule-set-1.json b/models/apis/cloudhsm/2014-05-30/endpoint-rule-set-1.json new file mode 100644 index 00000000000..a0cd821bf7f --- /dev/null +++ b/models/apis/cloudhsm/2014-05-30/endpoint-rule-set-1.json @@ -0,0 +1,314 @@ +{ + "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": [ + { + "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": [ + { + "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": [], + "endpoint": { + "url": "https://cloudhsm-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": [], + "endpoint": { + "url": "https://cloudhsm-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": [], + "endpoint": { + "url": "https://cloudhsm.{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://cloudhsm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/cloudhsm/2014-05-30/endpoint-tests-1.json b/models/apis/cloudhsm/2014-05-30/endpoint-tests-1.json new file mode 100644 index 00000000000..b114cead1fc --- /dev/null +++ b/models/apis/cloudhsm/2014-05-30/endpoint-tests-1.json @@ -0,0 +1,327 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm.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://cloudhsm-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://cloudhsm-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://cloudhsm.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm-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://cloudhsm-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://cloudhsm.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://cloudhsm.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm-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://cloudhsm-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://cloudhsm.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://cloudhsm.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://cloudhsm-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://cloudhsm.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://cloudhsm-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://cloudhsm.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/connectcampaigns/2021-01-30/api-2.json b/models/apis/connectcampaigns/2021-01-30/api-2.json index afe00e1cdd2..4a99c6bfc8c 100644 --- a/models/apis/connectcampaigns/2021-01-30/api-2.json +++ b/models/apis/connectcampaigns/2021-01-30/api-2.json @@ -413,6 +413,12 @@ }, "exception":true }, + "AgentlessDialerConfig":{ + "type":"structure", + "members":{ + "dialingCapacity":{"shape":"DialingCapacity"} + } + }, "AnswerMachineDetectionConfig":{ "type":"structure", "required":["enableAnswerMachineDetection"], @@ -424,13 +430,13 @@ "type":"string", "max":500, "min":20, - "pattern":"^arn:.*" + "pattern":"arn:.*" }, "AttributeName":{ "type":"string", "max":32767, "min":0, - "pattern":"^[a-zA-Z0-9\\-_]+$" + "pattern":"[a-zA-Z0-9\\-_]+" }, "AttributeValue":{ "type":"string", @@ -456,19 +462,19 @@ "Campaign":{ "type":"structure", "required":[ + "id", "arn", + "name", "connectInstanceId", "dialerConfig", - "id", - "name", "outboundCallConfig" ], "members":{ + "id":{"shape":"CampaignId"}, "arn":{"shape":"CampaignArn"}, + "name":{"shape":"CampaignName"}, "connectInstanceId":{"shape":"InstanceId"}, "dialerConfig":{"shape":"DialerConfig"}, - "id":{"shape":"CampaignId"}, - "name":{"shape":"CampaignName"}, "outboundCallConfig":{"shape":"OutboundCallConfig"}, "tags":{"shape":"TagMap"} } @@ -507,16 +513,16 @@ "CampaignSummary":{ "type":"structure", "required":[ - "arn", - "connectInstanceId", "id", - "name" + "arn", + "name", + "connectInstanceId" ], "members":{ - "arn":{"shape":"CampaignArn"}, - "connectInstanceId":{"shape":"InstanceId"}, "id":{"shape":"CampaignId"}, - "name":{"shape":"CampaignName"} + "arn":{"shape":"CampaignArn"}, + "name":{"shape":"CampaignName"}, + "connectInstanceId":{"shape":"InstanceId"} } }, "CampaignSummaryList":{ @@ -553,15 +559,15 @@ "CreateCampaignRequest":{ "type":"structure", "required":[ + "name", "connectInstanceId", "dialerConfig", - "name", "outboundCallConfig" ], "members":{ + "name":{"shape":"CampaignName"}, "connectInstanceId":{"shape":"InstanceId"}, "dialerConfig":{"shape":"DialerConfig"}, - "name":{"shape":"CampaignName"}, "outboundCallConfig":{"shape":"OutboundCallConfig"}, "tags":{"shape":"TagMap"} } @@ -569,8 +575,8 @@ "CreateCampaignResponse":{ "type":"structure", "members":{ - "arn":{"shape":"CampaignArn"}, "id":{"shape":"CampaignId"}, + "arn":{"shape":"CampaignArn"}, "tags":{"shape":"TagMap"} } }, @@ -633,16 +639,16 @@ "DialRequest":{ "type":"structure", "required":[ - "attributes", "clientToken", + "phoneNumber", "expirationTime", - "phoneNumber" + "attributes" ], "members":{ - "attributes":{"shape":"Attributes"}, "clientToken":{"shape":"ClientToken"}, + "phoneNumber":{"shape":"DestinationPhoneNumber"}, "expirationTime":{"shape":"TimeStamp"}, - "phoneNumber":{"shape":"DestinationPhoneNumber"} + "attributes":{"shape":"Attributes"} } }, "DialRequestId":{"type":"string"}, @@ -655,11 +661,18 @@ "DialerConfig":{ "type":"structure", "members":{ + "progressiveDialerConfig":{"shape":"ProgressiveDialerConfig"}, "predictiveDialerConfig":{"shape":"PredictiveDialerConfig"}, - "progressiveDialerConfig":{"shape":"ProgressiveDialerConfig"} + "agentlessDialerConfig":{"shape":"AgentlessDialerConfig"} }, "union":true }, + "DialingCapacity":{ + "type":"double", + "box":true, + "max":1, + "min":0.01 + }, "Enabled":{"type":"boolean"}, "EncryptionConfig":{ "type":"structure", @@ -696,8 +709,8 @@ "type":"structure", "members":{ "clientToken":{"shape":"ClientToken"}, - "failureCode":{"shape":"FailureCode"}, - "id":{"shape":"DialRequestId"} + "id":{"shape":"DialRequestId"}, + "failureCode":{"shape":"FailureCode"} } }, "FailedRequestList":{ @@ -737,8 +750,8 @@ "GetCampaignStateBatchResponse":{ "type":"structure", "members":{ - "failedRequests":{"shape":"FailedCampaignStateResponseList"}, - "successfulRequests":{"shape":"SuccessfulCampaignStateResponseList"} + "successfulRequests":{"shape":"SuccessfulCampaignStateResponseList"}, + "failedRequests":{"shape":"FailedCampaignStateResponseList"} } }, "GetCampaignStateRequest":{ @@ -796,13 +809,13 @@ "type":"structure", "required":[ "connectInstanceId", - "encryptionConfig", - "serviceLinkedRoleArn" + "serviceLinkedRoleArn", + "encryptionConfig" ], "members":{ "connectInstanceId":{"shape":"InstanceId"}, - "encryptionConfig":{"shape":"EncryptionConfig"}, - "serviceLinkedRoleArn":{"shape":"ServiceLinkedRoleArn"} + "serviceLinkedRoleArn":{"shape":"ServiceLinkedRoleArn"}, + "encryptionConfig":{"shape":"EncryptionConfig"} } }, "InstanceId":{ @@ -813,12 +826,12 @@ "InstanceIdFilter":{ "type":"structure", "required":[ - "operator", - "value" + "value", + "operator" ], "members":{ - "operator":{"shape":"InstanceIdFilterOperator"}, - "value":{"shape":"InstanceId"} + "value":{"shape":"InstanceId"}, + "operator":{"shape":"InstanceIdFilterOperator"} } }, "InstanceIdFilterOperator":{ @@ -844,8 +857,8 @@ ], "members":{ "connectInstanceId":{"shape":"InstanceId"}, - "failureCode":{"shape":"InstanceOnboardingJobFailureCode"}, - "status":{"shape":"InstanceOnboardingJobStatusCode"} + "status":{"shape":"InstanceOnboardingJobStatusCode"}, + "failureCode":{"shape":"InstanceOnboardingJobFailureCode"} } }, "InstanceOnboardingJobStatusCode":{ @@ -875,12 +888,12 @@ "InvalidCampaignStateException":{ "type":"structure", "required":[ - "message", - "state" + "state", + "message" ], "members":{ - "message":{"shape":"String"}, "state":{"shape":"CampaignState"}, + "message":{"shape":"String"}, "xAmzErrorType":{ "shape":"XAmazonErrorType", "location":"header", @@ -913,16 +926,16 @@ "ListCampaignsRequest":{ "type":"structure", "members":{ - "filters":{"shape":"CampaignFilters"}, "maxResults":{"shape":"MaxResults"}, - "nextToken":{"shape":"NextToken"} + "nextToken":{"shape":"NextToken"}, + "filters":{"shape":"CampaignFilters"} } }, "ListCampaignsResponse":{ "type":"structure", "members":{ - "campaignSummaryList":{"shape":"CampaignSummaryList"}, - "nextToken":{"shape":"NextToken"} + "nextToken":{"shape":"NextToken"}, + "campaignSummaryList":{"shape":"CampaignSummaryList"} } }, "ListTagsForResourceRequest":{ @@ -955,15 +968,12 @@ }, "OutboundCallConfig":{ "type":"structure", - "required":[ - "connectContactFlowId", - "connectQueueId" - ], + "required":["connectContactFlowId"], "members":{ - "answerMachineDetectionConfig":{"shape":"AnswerMachineDetectionConfig"}, "connectContactFlowId":{"shape":"ContactFlowId"}, + "connectSourcePhoneNumber":{"shape":"SourcePhoneNumber"}, "connectQueueId":{"shape":"QueueId"}, - "connectSourcePhoneNumber":{"shape":"SourcePhoneNumber"} + "answerMachineDetectionConfig":{"shape":"AnswerMachineDetectionConfig"} } }, "PauseCampaignRequest":{ @@ -981,36 +991,38 @@ "type":"structure", "required":["bandwidthAllocation"], "members":{ - "bandwidthAllocation":{"shape":"BandwidthAllocation"} + "bandwidthAllocation":{"shape":"BandwidthAllocation"}, + "dialingCapacity":{"shape":"DialingCapacity"} } }, "ProgressiveDialerConfig":{ "type":"structure", "required":["bandwidthAllocation"], "members":{ - "bandwidthAllocation":{"shape":"BandwidthAllocation"} + "bandwidthAllocation":{"shape":"BandwidthAllocation"}, + "dialingCapacity":{"shape":"DialingCapacity"} } }, "PutDialRequestBatchRequest":{ "type":"structure", "required":[ - "dialRequests", - "id" + "id", + "dialRequests" ], "members":{ - "dialRequests":{"shape":"DialRequestList"}, "id":{ "shape":"CampaignId", "location":"uri", "locationName":"id" - } + }, + "dialRequests":{"shape":"DialRequestList"} } }, "PutDialRequestBatchResponse":{ "type":"structure", "members":{ - "failedRequests":{"shape":"FailedRequestList"}, - "successfulRequests":{"shape":"SuccessfulRequestList"} + "successfulRequests":{"shape":"SuccessfulRequestList"}, + "failedRequests":{"shape":"FailedRequestList"} } }, "QueueId":{ @@ -1147,7 +1159,7 @@ "type":"string", "max":128, "min":1, - "pattern":"^(?!aws:)[a-zA-Z+-=._:/]+$" + "pattern":"(?!aws:)[a-zA-Z+-=._:/]+" }, "TagKeyList":{ "type":"list", @@ -1224,16 +1236,16 @@ "UpdateCampaignDialerConfigRequest":{ "type":"structure", "required":[ - "dialerConfig", - "id" + "id", + "dialerConfig" ], "members":{ - "dialerConfig":{"shape":"DialerConfig"}, "id":{ "shape":"CampaignId", "location":"uri", "locationName":"id" - } + }, + "dialerConfig":{"shape":"DialerConfig"} } }, "UpdateCampaignNameRequest":{ @@ -1255,14 +1267,14 @@ "type":"structure", "required":["id"], "members":{ - "answerMachineDetectionConfig":{"shape":"AnswerMachineDetectionConfig"}, - "connectContactFlowId":{"shape":"ContactFlowId"}, - "connectSourcePhoneNumber":{"shape":"SourcePhoneNumber"}, "id":{ "shape":"CampaignId", "location":"uri", "locationName":"id" - } + }, + "connectContactFlowId":{"shape":"ContactFlowId"}, + "connectSourcePhoneNumber":{"shape":"SourcePhoneNumber"}, + "answerMachineDetectionConfig":{"shape":"AnswerMachineDetectionConfig"} } }, "ValidationException":{ diff --git a/models/apis/connectcampaigns/2021-01-30/docs-2.json b/models/apis/connectcampaigns/2021-01-30/docs-2.json index 0a631c46ca8..bee3ddef72c 100644 --- a/models/apis/connectcampaigns/2021-01-30/docs-2.json +++ b/models/apis/connectcampaigns/2021-01-30/docs-2.json @@ -31,6 +31,12 @@ "refs": { } }, + "AgentlessDialerConfig": { + "base": "

Agentless Dialer config

", + "refs": { + "DialerConfig$agentlessDialerConfig": null + } + }, "AnswerMachineDetectionConfig": { "base": "

Answering Machine Detection config

", "refs": { @@ -236,6 +242,14 @@ "UpdateCampaignDialerConfigRequest$dialerConfig": null } }, + "DialingCapacity": { + "base": "

Allocates dialing capacity for this campaign between multiple active campaigns

", + "refs": { + "AgentlessDialerConfig$dialingCapacity": null, + "PredictiveDialerConfig$dialingCapacity": null, + "ProgressiveDialerConfig$dialingCapacity": null + } + }, "Enabled": { "base": "

Boolean to indicate if custom encryption has been enabled.

", "refs": { diff --git a/models/apis/connectcampaigns/2021-01-30/endpoint-rule-set-1.json b/models/apis/connectcampaigns/2021-01-30/endpoint-rule-set-1.json new file mode 100644 index 00000000000..59d03098d77 --- /dev/null +++ b/models/apis/connectcampaigns/2021-01-30/endpoint-rule-set-1.json @@ -0,0 +1,314 @@ +{ + "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": [ + { + "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": [ + { + "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": [], + "endpoint": { + "url": "https://connect-campaigns-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": [], + "endpoint": { + "url": "https://connect-campaigns-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": [], + "endpoint": { + "url": "https://connect-campaigns.{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://connect-campaigns.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/connectcampaigns/2021-01-30/endpoint-tests-1.json b/models/apis/connectcampaigns/2021-01-30/endpoint-tests-1.json new file mode 100644 index 00000000000..724d5f23b55 --- /dev/null +++ b/models/apis/connectcampaigns/2021-01-30/endpoint-tests-1.json @@ -0,0 +1,353 @@ +{ + "testCases": [ + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns-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://connect-campaigns-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://connect-campaigns.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns-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://connect-campaigns-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://connect-campaigns.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://connect-campaigns.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://connect-campaigns-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://connect-campaigns-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://connect-campaigns.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://connect-campaigns.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://connect-campaigns-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://connect-campaigns.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://connect-campaigns-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://connect-campaigns.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/connectparticipant/2018-09-07/api-2.json b/models/apis/connectparticipant/2018-09-07/api-2.json index 70534637c4c..6c780edc2b5 100644 --- a/models/apis/connectparticipant/2018-09-07/api-2.json +++ b/models/apis/connectparticipant/2018-09-07/api-2.json @@ -45,6 +45,22 @@ {"shape":"ValidationException"} ] }, + "DescribeView":{ + "name":"DescribeView", + "http":{ + "method":"GET", + "requestUri":"/participant/views/{ViewToken}" + }, + "input":{"shape":"DescribeViewRequest"}, + "output":{"shape":"DescribeViewResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ] + }, "DisconnectParticipant":{ "name":"DisconnectParticipant", "http":{ @@ -138,6 +154,7 @@ } }, "shapes":{ + "ARN":{"type":"string"}, "AccessDeniedException":{ "type":"structure", "required":["Message"], @@ -308,6 +325,31 @@ "ConnectionCredentials":{"shape":"ConnectionCredentials"} } }, + "DescribeViewRequest":{ + "type":"structure", + "required":[ + "ViewToken", + "ConnectionToken" + ], + "members":{ + "ViewToken":{ + "shape":"ViewToken", + "location":"uri", + "locationName":"ViewToken" + }, + "ConnectionToken":{ + "shape":"ParticipantToken", + "location":"header", + "locationName":"X-Amz-Bearer" + } + } + }, + "DescribeViewResponse":{ + "type":"structure", + "members":{ + "View":{"shape":"View"} + } + }, "DisconnectParticipantRequest":{ "type":"structure", "required":["ConnectionToken"], @@ -454,7 +496,8 @@ "enum":[ "AGENT", "CUSTOMER", - "SYSTEM" + "SYSTEM", + "CUSTOM_BOT" ] }, "ParticipantToken":{ @@ -489,6 +532,29 @@ "type":"list", "member":{"shape":"Receipt"} }, + "ResourceId":{"type":"string"}, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"Message"}, + "ResourceId":{"shape":"ResourceId"}, + "ResourceType":{"shape":"ResourceType"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "ResourceType":{ + "type":"string", + "enum":[ + "CONTACT", + "CONTACT_FLOW", + "INSTANCE", + "PARTICIPANT", + "HIERARCHY_LEVEL", + "HIERARCHY_GROUP", + "USER" + ] + }, "ScanDirection":{ "type":"string", "enum":[ @@ -656,6 +722,62 @@ "error":{"httpStatusCode":400}, "exception":true }, + "View":{ + "type":"structure", + "members":{ + "Id":{"shape":"ViewId"}, + "Arn":{"shape":"ARN"}, + "Name":{"shape":"ViewName"}, + "Version":{"shape":"ViewVersion"}, + "Content":{"shape":"ViewContent"} + } + }, + "ViewAction":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^([\\p{L}\\p{N}_.:\\/=+\\-@()']+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@()']*)$", + "sensitive":true + }, + "ViewActions":{ + "type":"list", + "member":{"shape":"ViewAction"} + }, + "ViewContent":{ + "type":"structure", + "members":{ + "InputSchema":{"shape":"ViewInputSchema"}, + "Template":{"shape":"ViewTemplate"}, + "Actions":{"shape":"ViewActions"} + } + }, + "ViewId":{ + "type":"string", + "max":500, + "min":1, + "pattern":"^[a-zA-Z0-9\\_\\-:\\/$]+$" + }, + "ViewInputSchema":{ + "type":"string", + "sensitive":true + }, + "ViewName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^([\\p{L}\\p{N}_.:\\/=+\\-@()']+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@()']*)$", + "sensitive":true + }, + "ViewTemplate":{ + "type":"string", + "sensitive":true + }, + "ViewToken":{ + "type":"string", + "max":1000, + "min":1 + }, + "ViewVersion":{"type":"integer"}, "Websocket":{ "type":"structure", "members":{ diff --git a/models/apis/connectparticipant/2018-09-07/docs-2.json b/models/apis/connectparticipant/2018-09-07/docs-2.json index 3ef442e006b..a1c616651b1 100644 --- a/models/apis/connectparticipant/2018-09-07/docs-2.json +++ b/models/apis/connectparticipant/2018-09-07/docs-2.json @@ -4,6 +4,7 @@ "operations": { "CompleteAttachmentUpload": "

Allows you to confirm that the attachment has been uploaded using the pre-signed URL provided in StartAttachmentUpload API.

ConnectionToken is used for invoking this API instead of ParticipantToken.

The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

", "CreateParticipantConnection": "

Creates the participant's connection.

ParticipantToken is used for invoking this API instead of ConnectionToken.

The participant token is valid for the lifetime of the participant – until they are part of a contact.

The response URL for WEBSOCKET Type has a connect expiry timeout of 100s. Clients must manually connect to the returned websocket URL and subscribe to the desired topic.

For chat, you need to publish the following on the established websocket connection:

{\"topic\":\"aws/subscribe\",\"content\":{\"topics\":[\"aws/chat\"]}}

Upon websocket URL expiry, as specified in the response ConnectionExpiry parameter, clients need to call this API again to obtain a new websocket URL and perform the same steps as before.

Message streaming support: This API can also be used together with the StartContactStreaming API to create a participant connection for chat contacts that are not using a websocket. For more information about message streaming, Enable real-time chat message streaming in the Amazon Connect Administrator Guide.

Feature specifications: For information about feature specifications, such as the allowed number of open websocket connections per participant, see Feature specifications in the Amazon Connect Administrator Guide.

The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

", + "DescribeView": "

Retrieves the view for the specified view token.

", "DisconnectParticipant": "

Disconnects a participant.

ConnectionToken is used for invoking this API instead of ParticipantToken.

The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

", "GetAttachment": "

Provides a pre-signed URL for download of a completed attachment. This is an asynchronous API for use with active contacts.

ConnectionToken is used for invoking this API instead of ParticipantToken.

The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

", "GetTranscript": "

Retrieves a transcript of the session, including details about any attachments. For information about accessing past chat contact transcripts for a persistent chat, see Enable persistent chat.

ConnectionToken is used for invoking this API instead of ParticipantToken.

The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

", @@ -12,6 +13,12 @@ "StartAttachmentUpload": "

Provides a pre-signed Amazon S3 URL in response for uploading the file directly to S3.

ConnectionToken is used for invoking this API instead of ParticipantToken.

The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

" }, "shapes": { + "ARN": { + "base": null, + "refs": { + "View$Arn": "

The Amazon Resource Name (ARN) of the view.

" + } + }, "AccessDeniedException": { "base": "

You do not have sufficient access to perform this action.

", "refs": { @@ -139,7 +146,7 @@ "ConnectionTypeList": { "base": null, "refs": { - "CreateParticipantConnectionRequest$Type": "

Type of connection information required. This can be omitted if ConnectParticipant is true.

" + "CreateParticipantConnectionRequest$Type": "

Type of connection information required. If you need CONNECTION_CREDENTIALS along with marking participant as connected, pass CONNECTION_CREDENTIALS in Type.

" } }, "ContactId": { @@ -168,6 +175,16 @@ "refs": { } }, + "DescribeViewRequest": { + "base": null, + "refs": { + } + }, + "DescribeViewResponse": { + "base": null, + "refs": { + } + }, "DisconnectParticipantRequest": { "base": null, "refs": { @@ -246,6 +263,7 @@ "refs": { "AccessDeniedException$Message": null, "InternalServerException$Message": null, + "ResourceNotFoundException$Message": null, "ServiceQuotaExceededException$Message": null, "ThrottlingException$Message": null } @@ -295,6 +313,7 @@ "CompleteAttachmentUploadRequest$ConnectionToken": "

The authentication token associated with the participant's connection.

", "ConnectionCredentials$ConnectionToken": "

The connection token.

", "CreateParticipantConnectionRequest$ParticipantToken": "

This is a header parameter.

The ParticipantToken as obtained from StartChatContact API response.

", + "DescribeViewRequest$ConnectionToken": "

The connection token.

", "DisconnectParticipantRequest$ConnectionToken": "

The authentication token associated with the participant's connection.

", "GetAttachmentRequest$ConnectionToken": "

The authentication token associated with the participant's connection.

", "GetTranscriptRequest$ConnectionToken": "

The authentication token associated with the participant's connection.

", @@ -334,6 +353,23 @@ "MessageMetadata$Receipts": "

The list of receipt information for a message for different recipients.

" } }, + "ResourceId": { + "base": null, + "refs": { + "ResourceNotFoundException$ResourceId": "

The identifier of the resource.

" + } + }, + "ResourceNotFoundException": { + "base": "

The resource was not found.

", + "refs": { + } + }, + "ResourceType": { + "base": null, + "refs": { + "ResourceNotFoundException$ResourceType": "

The type of Amazon Connect resource.

" + } + }, "ScanDirection": { "base": null, "refs": { @@ -433,6 +469,66 @@ "refs": { } }, + "View": { + "base": "

A view resource object. Contains metadata and content necessary to render the view.

", + "refs": { + "DescribeViewResponse$View": "

A view resource object. Contains metadata and content necessary to render the view.

" + } + }, + "ViewAction": { + "base": null, + "refs": { + "ViewActions$member": null + } + }, + "ViewActions": { + "base": null, + "refs": { + "ViewContent$Actions": "

A list of actions possible from the view

" + } + }, + "ViewContent": { + "base": "

View content containing all content necessary to render a view except for runtime input data.

", + "refs": { + "View$Content": "

View content containing all content necessary to render a view except for runtime input data.

" + } + }, + "ViewId": { + "base": null, + "refs": { + "View$Id": "

The identifier of the view.

" + } + }, + "ViewInputSchema": { + "base": null, + "refs": { + "ViewContent$InputSchema": "

The schema representing the input data that the view template must be supplied to render.

" + } + }, + "ViewName": { + "base": null, + "refs": { + "View$Name": "

The name of the view.

" + } + }, + "ViewTemplate": { + "base": null, + "refs": { + "ViewContent$Template": "

The view template representing the structure of the view.

" + } + }, + "ViewToken": { + "base": null, + "refs": { + "DescribeViewRequest$ViewToken": "

An encrypted token originating from the interactive message of a ShowView block operation. Represents the desired view.

" + } + }, + "ViewVersion": { + "base": null, + "refs": { + "View$Version": "

The current version of the view.

" + } + }, "Websocket": { "base": "

The websocket for the participant's connection.

", "refs": { diff --git a/models/apis/connectparticipant/2018-09-07/endpoint-rule-set-1.json b/models/apis/connectparticipant/2018-09-07/endpoint-rule-set-1.json index 1662572daf8..eaed7a9924e 100644 --- a/models/apis/connectparticipant/2018-09-07/endpoint-rule-set-1.json +++ b/models/apis/connectparticipant/2018-09-07/endpoint-rule-set-1.json @@ -58,52 +58,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -111,13 +115,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -127,92 +140,83 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", + "fn": "getAttr", "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" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://participant.connect-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, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], @@ -221,155 +225,115 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, + "aws-us-gov", { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" ] } ] } ], - "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" - } - ] - } - ] + "endpoint": { + "url": "https://participant.connect.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://participant.connect-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, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "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" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "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}", + "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" } ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://participant.connect.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/connectparticipant/2018-09-07/endpoint-tests-1.json b/models/apis/connectparticipant/2018-09-07/endpoint-tests-1.json index 3811e928b32..3a270c6ff31 100644 --- a/models/apis/connectparticipant/2018-09-07/endpoint-tests-1.json +++ b/models/apis/connectparticipant/2018-09-07/endpoint-tests-1.json @@ -8,9 +8,9 @@ } }, "params": { - "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true } }, { @@ -21,9 +21,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -34,9 +34,9 @@ } }, "params": { - "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -47,9 +47,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -60,9 +60,9 @@ } }, "params": { - "UseDualStack": true, "Region": "cn-north-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true } }, { @@ -73,9 +73,9 @@ } }, "params": { - "UseDualStack": false, "Region": "cn-north-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -86,9 +86,9 @@ } }, "params": { - "UseDualStack": true, "Region": "cn-north-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -99,9 +99,9 @@ } }, "params": { - "UseDualStack": false, "Region": "cn-north-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -112,9 +112,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-gov-west-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -125,9 +125,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-gov-west-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -138,9 +138,9 @@ } }, "params": { - "UseDualStack": true, "Region": "us-gov-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true } }, { @@ -151,9 +151,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-gov-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -164,9 +164,9 @@ } }, "params": { - "UseDualStack": true, "Region": "us-gov-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -177,9 +177,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-gov-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -188,9 +188,9 @@ "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": true, + "UseDualStack": true } }, { @@ -201,9 +201,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-iso-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -212,9 +212,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "Region": "us-iso-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -225,9 +225,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-iso-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -236,9 +236,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 } }, { @@ -249,9 +249,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -260,9 +260,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 } }, { @@ -273,9 +273,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -286,9 +286,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -300,8 +300,8 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -311,9 +311,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" } }, @@ -323,9 +323,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/models/apis/customer-profiles/2020-08-15/api-2.json b/models/apis/customer-profiles/2020-08-15/api-2.json index 64f028fbc65..8540c36e983 100644 --- a/models/apis/customer-profiles/2020-08-15/api-2.json +++ b/models/apis/customer-profiles/2020-08-15/api-2.json @@ -889,7 +889,8 @@ "Province":{"shape":"string1To255"}, "Country":{"shape":"string1To255"}, "PostalCode":{"shape":"string1To255"} - } + }, + "sensitive":true }, "AddressList":{ "type":"list", @@ -962,7 +963,8 @@ "members":{ "Attributes":{"shape":"AttributeList"}, "Expression":{"shape":"string1To255"} - } + }, + "sensitive":true }, "AttributeItem":{ "type":"structure", @@ -1002,7 +1004,8 @@ "Attributes":{ "type":"map", "key":{"shape":"string1To255"}, - "value":{"shape":"string1To255"} + "value":{"shape":"string1To255"}, + "sensitive":true }, "AutoMerging":{ "type":"structure", @@ -1062,7 +1065,8 @@ "Range":{"shape":"Range"}, "ObjectCount":{"shape":"ObjectCount"}, "Threshold":{"shape":"Threshold"} - } + }, + "sensitive":true }, "ConflictResolution":{ "type":"structure", @@ -1254,29 +1258,29 @@ "location":"uri", "locationName":"DomainName" }, - "AccountNumber":{"shape":"string1To255"}, - "AdditionalInformation":{"shape":"string1To1000"}, + "AccountNumber":{"shape":"sensitiveString1To255"}, + "AdditionalInformation":{"shape":"sensitiveString1To1000"}, "PartyType":{"shape":"PartyType"}, - "BusinessName":{"shape":"string1To255"}, - "FirstName":{"shape":"string1To255"}, - "MiddleName":{"shape":"string1To255"}, - "LastName":{"shape":"string1To255"}, - "BirthDate":{"shape":"string1To255"}, + "BusinessName":{"shape":"sensitiveString1To255"}, + "FirstName":{"shape":"sensitiveString1To255"}, + "MiddleName":{"shape":"sensitiveString1To255"}, + "LastName":{"shape":"sensitiveString1To255"}, + "BirthDate":{"shape":"sensitiveString1To255"}, "Gender":{"shape":"Gender"}, - "PhoneNumber":{"shape":"string1To255"}, - "MobilePhoneNumber":{"shape":"string1To255"}, - "HomePhoneNumber":{"shape":"string1To255"}, - "BusinessPhoneNumber":{"shape":"string1To255"}, - "EmailAddress":{"shape":"string1To255"}, - "PersonalEmailAddress":{"shape":"string1To255"}, - "BusinessEmailAddress":{"shape":"string1To255"}, + "PhoneNumber":{"shape":"sensitiveString1To255"}, + "MobilePhoneNumber":{"shape":"sensitiveString1To255"}, + "HomePhoneNumber":{"shape":"sensitiveString1To255"}, + "BusinessPhoneNumber":{"shape":"sensitiveString1To255"}, + "EmailAddress":{"shape":"sensitiveString1To255"}, + "PersonalEmailAddress":{"shape":"sensitiveString1To255"}, + "BusinessEmailAddress":{"shape":"sensitiveString1To255"}, "Address":{"shape":"Address"}, "ShippingAddress":{"shape":"Address"}, "MailingAddress":{"shape":"Address"}, "BillingAddress":{"shape":"Address"}, "Attributes":{"shape":"Attributes"}, - "PartyTypeString":{"shape":"string1To255"}, - "GenderString":{"shape":"string1To255"} + "PartyTypeString":{"shape":"sensitiveString1To255"}, + "GenderString":{"shape":"sensitiveString1To255"} } }, "CreateProfileResponse":{ @@ -1624,7 +1628,8 @@ "FieldMap":{ "type":"map", "key":{"shape":"name"}, - "value":{"shape":"ObjectTypeField"} + "value":{"shape":"ObjectTypeField"}, + "sensitive":true }, "FieldNameList":{ "type":"list", @@ -1672,7 +1677,8 @@ "SourceFlowConfig":{"shape":"SourceFlowConfig"}, "Tasks":{"shape":"Tasks"}, "TriggerConfig":{"shape":"TriggerConfig"} - } + }, + "sensitive":true }, "FlowDescription":{ "type":"string", @@ -1698,7 +1704,8 @@ "MALE", "FEMALE", "UNSPECIFIED" - ] + ], + "sensitive":true }, "GetAutoMergingPreviewRequest":{ "type":"structure", @@ -1991,7 +1998,7 @@ ], "members":{ "ObjectTypeName":{"shape":"typeName"}, - "Description":{"shape":"text"}, + "Description":{"shape":"sensitiveText"}, "TemplateId":{"shape":"name"}, "ExpirationDays":{"shape":"expirationDaysInteger"}, "EncryptionKey":{"shape":"encryptionKey"}, @@ -2231,7 +2238,8 @@ "KeyMap":{ "type":"map", "key":{"shape":"name"}, - "value":{"shape":"ObjectTypeKeyList"} + "value":{"shape":"ObjectTypeKeyList"}, + "sensitive":true }, "KmsArn":{ "type":"string", @@ -2923,7 +2931,8 @@ "INDIVIDUAL", "BUSINESS", "OTHER" - ] + ], + "sensitive":true }, "PhoneNumberList":{ "type":"list", @@ -2935,30 +2944,30 @@ "type":"structure", "members":{ "ProfileId":{"shape":"uuid"}, - "AccountNumber":{"shape":"string1To255"}, - "AdditionalInformation":{"shape":"string1To1000"}, + "AccountNumber":{"shape":"sensitiveString1To255"}, + "AdditionalInformation":{"shape":"sensitiveString1To1000"}, "PartyType":{"shape":"PartyType"}, - "BusinessName":{"shape":"string1To255"}, - "FirstName":{"shape":"string1To255"}, - "MiddleName":{"shape":"string1To255"}, - "LastName":{"shape":"string1To255"}, - "BirthDate":{"shape":"string1To255"}, + "BusinessName":{"shape":"sensitiveString1To255"}, + "FirstName":{"shape":"sensitiveString1To255"}, + "MiddleName":{"shape":"sensitiveString1To255"}, + "LastName":{"shape":"sensitiveString1To255"}, + "BirthDate":{"shape":"sensitiveString1To255"}, "Gender":{"shape":"Gender"}, - "PhoneNumber":{"shape":"string1To255"}, - "MobilePhoneNumber":{"shape":"string1To255"}, - "HomePhoneNumber":{"shape":"string1To255"}, - "BusinessPhoneNumber":{"shape":"string1To255"}, - "EmailAddress":{"shape":"string1To255"}, - "PersonalEmailAddress":{"shape":"string1To255"}, - "BusinessEmailAddress":{"shape":"string1To255"}, + "PhoneNumber":{"shape":"sensitiveString1To255"}, + "MobilePhoneNumber":{"shape":"sensitiveString1To255"}, + "HomePhoneNumber":{"shape":"sensitiveString1To255"}, + "BusinessPhoneNumber":{"shape":"sensitiveString1To255"}, + "EmailAddress":{"shape":"sensitiveString1To255"}, + "PersonalEmailAddress":{"shape":"sensitiveString1To255"}, + "BusinessEmailAddress":{"shape":"sensitiveString1To255"}, "Address":{"shape":"Address"}, "ShippingAddress":{"shape":"Address"}, "MailingAddress":{"shape":"Address"}, "BillingAddress":{"shape":"Address"}, "Attributes":{"shape":"Attributes"}, "FoundByItems":{"shape":"foundByList"}, - "PartyTypeString":{"shape":"string1To255"}, - "GenderString":{"shape":"string1To255"} + "PartyTypeString":{"shape":"sensitiveString1To255"}, + "GenderString":{"shape":"sensitiveString1To255"} } }, "ProfileIdList":{ @@ -2981,7 +2990,8 @@ }, "ProfileObjectTypeList":{ "type":"list", - "member":{"shape":"ListProfileObjectTypeItem"} + "member":{"shape":"ListProfileObjectTypeItem"}, + "sensitive":true }, "ProfileObjectTypeTemplateList":{ "type":"list", @@ -3069,7 +3079,7 @@ "location":"uri", "locationName":"ObjectTypeName" }, - "Description":{"shape":"text"}, + "Description":{"shape":"sensitiveText"}, "TemplateId":{"shape":"name"}, "ExpirationDays":{"shape":"expirationDaysInteger"}, "EncryptionKey":{"shape":"encryptionKey"}, @@ -3088,7 +3098,7 @@ ], "members":{ "ObjectTypeName":{"shape":"typeName"}, - "Description":{"shape":"text"}, + "Description":{"shape":"sensitiveText"}, "TemplateId":{"shape":"name"}, "ExpirationDays":{"shape":"expirationDaysInteger"}, "EncryptionKey":{"shape":"encryptionKey"}, @@ -3407,7 +3417,8 @@ "MAXIMUM", "AVERAGE", "MAX_OCCURRENCE" - ] + ], + "sensitive":true }, "Status":{ "type":"string", @@ -3591,12 +3602,14 @@ "Province":{"shape":"string0To255"}, "Country":{"shape":"string0To255"}, "PostalCode":{"shape":"string0To255"} - } + }, + "sensitive":true }, "UpdateAttributes":{ "type":"map", "key":{"shape":"string1To255"}, - "value":{"shape":"string0To255"} + "value":{"shape":"string0To255"}, + "sensitive":true }, "UpdateCalculatedAttributeDefinitionRequest":{ "type":"structure", @@ -3683,29 +3696,29 @@ "locationName":"DomainName" }, "ProfileId":{"shape":"uuid"}, - "AdditionalInformation":{"shape":"string0To1000"}, - "AccountNumber":{"shape":"string0To255"}, + "AdditionalInformation":{"shape":"sensitiveString0To1000"}, + "AccountNumber":{"shape":"sensitiveString0To255"}, "PartyType":{"shape":"PartyType"}, - "BusinessName":{"shape":"string0To255"}, - "FirstName":{"shape":"string0To255"}, - "MiddleName":{"shape":"string0To255"}, - "LastName":{"shape":"string0To255"}, - "BirthDate":{"shape":"string0To255"}, + "BusinessName":{"shape":"sensitiveString0To255"}, + "FirstName":{"shape":"sensitiveString0To255"}, + "MiddleName":{"shape":"sensitiveString0To255"}, + "LastName":{"shape":"sensitiveString0To255"}, + "BirthDate":{"shape":"sensitiveString0To255"}, "Gender":{"shape":"Gender"}, - "PhoneNumber":{"shape":"string0To255"}, - "MobilePhoneNumber":{"shape":"string0To255"}, - "HomePhoneNumber":{"shape":"string0To255"}, - "BusinessPhoneNumber":{"shape":"string0To255"}, - "EmailAddress":{"shape":"string0To255"}, - "PersonalEmailAddress":{"shape":"string0To255"}, - "BusinessEmailAddress":{"shape":"string0To255"}, + "PhoneNumber":{"shape":"sensitiveString0To255"}, + "MobilePhoneNumber":{"shape":"sensitiveString0To255"}, + "HomePhoneNumber":{"shape":"sensitiveString0To255"}, + "BusinessPhoneNumber":{"shape":"sensitiveString0To255"}, + "EmailAddress":{"shape":"sensitiveString0To255"}, + "PersonalEmailAddress":{"shape":"sensitiveString0To255"}, + "BusinessEmailAddress":{"shape":"sensitiveString0To255"}, "Address":{"shape":"UpdateAddress"}, "ShippingAddress":{"shape":"UpdateAddress"}, "MailingAddress":{"shape":"UpdateAddress"}, "BillingAddress":{"shape":"UpdateAddress"}, "Attributes":{"shape":"UpdateAttributes"}, - "PartyTypeString":{"shape":"string0To255"}, - "GenderString":{"shape":"string0To255"} + "PartyTypeString":{"shape":"sensitiveString0To255"}, + "GenderString":{"shape":"sensitiveString0To255"} } }, "UpdateProfileResponse":{ @@ -3852,14 +3865,39 @@ "min":1, "pattern":".*" }, - "sqsQueueUrl":{ + "sensitiveString0To1000":{ + "type":"string", + "max":1000, + "min":0, + "sensitive":true + }, + "sensitiveString0To255":{ "type":"string", "max":255, - "min":0 + "min":0, + "sensitive":true }, - "string0To1000":{ + "sensitiveString1To1000":{ "type":"string", "max":1000, + "min":1, + "sensitive":true + }, + "sensitiveString1To255":{ + "type":"string", + "max":255, + "min":1, + "sensitive":true + }, + "sensitiveText":{ + "type":"string", + "max":1000, + "min":1, + "sensitive":true + }, + "sqsQueueUrl":{ + "type":"string", + "max":255, "min":0 }, "string0To255":{ @@ -3885,7 +3923,8 @@ "stringifiedJson":{ "type":"string", "max":256000, - "min":1 + "min":1, + "sensitive":true }, "text":{ "type":"string", diff --git a/models/apis/customer-profiles/2020-08-15/docs-2.json b/models/apis/customer-profiles/2020-08-15/docs-2.json index 121daf6cb3c..9040f8e9569 100644 --- a/models/apis/customer-profiles/2020-08-15/docs-2.json +++ b/models/apis/customer-profiles/2020-08-15/docs-2.json @@ -1914,36 +1914,15 @@ "S3ExportingConfig$S3KeyName": "

The S3 key name of the location where Identity Resolution Jobs write result files.

" } }, - "sqsQueueUrl": { - "base": null, - "refs": { - "CreateDomainRequest$DeadLetterQueueUrl": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue.

", - "CreateDomainResponse$DeadLetterQueueUrl": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.

", - "GetDomainResponse$DeadLetterQueueUrl": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.

", - "UpdateDomainRequest$DeadLetterQueueUrl": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications. If specified as an empty string, it will clear any existing value. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue.

", - "UpdateDomainResponse$DeadLetterQueueUrl": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.

" - } - }, - "string0To1000": { + "sensitiveString0To1000": { "base": null, "refs": { "UpdateProfileRequest$AdditionalInformation": "

Any additional information relevant to the customer’s profile.

" } }, - "string0To255": { + "sensitiveString0To255": { "base": null, "refs": { - "UpdateAddress$Address1": "

The first line of a customer address.

", - "UpdateAddress$Address2": "

The second line of a customer address.

", - "UpdateAddress$Address3": "

The third line of a customer address.

", - "UpdateAddress$Address4": "

The fourth line of a customer address.

", - "UpdateAddress$City": "

The city in which a customer lives.

", - "UpdateAddress$County": "

The county in which a customer lives.

", - "UpdateAddress$State": "

The state in which a customer lives.

", - "UpdateAddress$Province": "

The province in which a customer lives.

", - "UpdateAddress$Country": "

The country in which a customer lives.

", - "UpdateAddress$PostalCode": "

The postal code of a customer address.

", - "UpdateAttributes$value": null, "UpdateProfileRequest$AccountNumber": "

A unique account number that you have given to the customer.

", "UpdateProfileRequest$BusinessName": "

The name of the customer’s business.

", "UpdateProfileRequest$FirstName": "

The customer’s first name.

", @@ -1961,14 +1940,88 @@ "UpdateProfileRequest$GenderString": "

An alternative to Gender which accepts any string as input.

" } }, - "string1To1000": { + "sensitiveString1To1000": { "base": null, "refs": { "CreateProfileRequest$AdditionalInformation": "

Any additional information relevant to the customer’s profile.

", - "EventStreamDestinationDetails$Message": "

The human-readable string that corresponds to the error or success while enabling the streaming destination.

", "Profile$AdditionalInformation": "

Any additional information relevant to the customer’s profile.

" } }, + "sensitiveString1To255": { + "base": null, + "refs": { + "CreateProfileRequest$AccountNumber": "

A unique account number that you have given to the customer.

", + "CreateProfileRequest$BusinessName": "

The name of the customer’s business.

", + "CreateProfileRequest$FirstName": "

The customer’s first name.

", + "CreateProfileRequest$MiddleName": "

The customer’s middle name.

", + "CreateProfileRequest$LastName": "

The customer’s last name.

", + "CreateProfileRequest$BirthDate": "

The customer’s birth date.

", + "CreateProfileRequest$PhoneNumber": "

The customer’s phone number, which has not been specified as a mobile, home, or business number.

", + "CreateProfileRequest$MobilePhoneNumber": "

The customer’s mobile phone number.

", + "CreateProfileRequest$HomePhoneNumber": "

The customer’s home phone number.

", + "CreateProfileRequest$BusinessPhoneNumber": "

The customer’s business phone number.

", + "CreateProfileRequest$EmailAddress": "

The customer’s email address, which has not been specified as a personal or business address.

", + "CreateProfileRequest$PersonalEmailAddress": "

The customer’s personal email address.

", + "CreateProfileRequest$BusinessEmailAddress": "

The customer’s business email address.

", + "CreateProfileRequest$PartyTypeString": "

An alternative to PartyType which accepts any string as input.

", + "CreateProfileRequest$GenderString": "

An alternative to Gender which accepts any string as input.

", + "Profile$AccountNumber": "

A unique account number that you have given to the customer.

", + "Profile$BusinessName": "

The name of the customer’s business.

", + "Profile$FirstName": "

The customer’s first name.

", + "Profile$MiddleName": "

The customer’s middle name.

", + "Profile$LastName": "

The customer’s last name.

", + "Profile$BirthDate": "

The customer’s birth date.

", + "Profile$PhoneNumber": "

The customer's phone number, which has not been specified as a mobile, home, or business number.

", + "Profile$MobilePhoneNumber": "

The customer’s mobile phone number.

", + "Profile$HomePhoneNumber": "

The customer’s home phone number.

", + "Profile$BusinessPhoneNumber": "

The customer’s home phone number.

", + "Profile$EmailAddress": "

The customer’s email address, which has not been specified as a personal or business address.

", + "Profile$PersonalEmailAddress": "

The customer’s personal email address.

", + "Profile$BusinessEmailAddress": "

The customer’s business email address.

", + "Profile$PartyTypeString": "

An alternative to PartyType which accepts any string as input.

", + "Profile$GenderString": "

An alternative to Gender which accepts any string as input.

" + } + }, + "sensitiveText": { + "base": null, + "refs": { + "GetProfileObjectTypeResponse$Description": "

The description of the profile object type.

", + "PutProfileObjectTypeRequest$Description": "

Description of the profile object type.

", + "PutProfileObjectTypeResponse$Description": "

Description of the profile object type.

" + } + }, + "sqsQueueUrl": { + "base": null, + "refs": { + "CreateDomainRequest$DeadLetterQueueUrl": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue.

", + "CreateDomainResponse$DeadLetterQueueUrl": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.

", + "GetDomainResponse$DeadLetterQueueUrl": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.

", + "UpdateDomainRequest$DeadLetterQueueUrl": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications. If specified as an empty string, it will clear any existing value. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue.

", + "UpdateDomainResponse$DeadLetterQueueUrl": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.

" + } + }, + "string0To255": { + "base": null, + "refs": { + "UpdateAddress$Address1": "

The first line of a customer address.

", + "UpdateAddress$Address2": "

The second line of a customer address.

", + "UpdateAddress$Address3": "

The third line of a customer address.

", + "UpdateAddress$Address4": "

The fourth line of a customer address.

", + "UpdateAddress$City": "

The city in which a customer lives.

", + "UpdateAddress$County": "

The county in which a customer lives.

", + "UpdateAddress$State": "

The state in which a customer lives.

", + "UpdateAddress$Province": "

The province in which a customer lives.

", + "UpdateAddress$Country": "

The country in which a customer lives.

", + "UpdateAddress$PostalCode": "

The postal code of a customer address.

", + "UpdateAttributes$value": null + } + }, + "string1To1000": { + "base": null, + "refs": { + "EventStreamDestinationDetails$Message": "

The human-readable string that corresponds to the error or success while enabling the streaming destination.

" + } + }, "string1To255": { "base": null, "refs": { @@ -1995,21 +2048,6 @@ "CreateEventStreamRequest$Uri": "

The StreamARN of the destination to deliver profile events to. For example, arn:aws:kinesis:region:account-id:stream/stream-name

", "CreateEventStreamResponse$EventStreamArn": "

A unique identifier for the event stream.

", "CreateIntegrationWorkflowResponse$Message": "

A message indicating create request was received.

", - "CreateProfileRequest$AccountNumber": "

A unique account number that you have given to the customer.

", - "CreateProfileRequest$BusinessName": "

The name of the customer’s business.

", - "CreateProfileRequest$FirstName": "

The customer’s first name.

", - "CreateProfileRequest$MiddleName": "

The customer’s middle name.

", - "CreateProfileRequest$LastName": "

The customer’s last name.

", - "CreateProfileRequest$BirthDate": "

The customer’s birth date.

", - "CreateProfileRequest$PhoneNumber": "

The customer’s phone number, which has not been specified as a mobile, home, or business number.

", - "CreateProfileRequest$MobilePhoneNumber": "

The customer’s mobile phone number.

", - "CreateProfileRequest$HomePhoneNumber": "

The customer’s home phone number.

", - "CreateProfileRequest$BusinessPhoneNumber": "

The customer’s business phone number.

", - "CreateProfileRequest$EmailAddress": "

The customer’s email address, which has not been specified as a personal or business address.

", - "CreateProfileRequest$PersonalEmailAddress": "

The customer’s personal email address.

", - "CreateProfileRequest$BusinessEmailAddress": "

The customer’s business email address.

", - "CreateProfileRequest$PartyTypeString": "

An alternative to PartyType which accepts any string as input.

", - "CreateProfileRequest$GenderString": "

An alternative to Gender which accepts any string as input.

", "DeleteIntegrationRequest$Uri": "

The URI of the S3 bucket or any other type of data source.

", "DeleteProfileObjectRequest$ProfileObjectUniqueKey": "

The unique identifier of the profile object generated by the service.

", "DeleteWorkflowRequest$WorkflowId": "

Unique identifier for the workflow.

", @@ -2043,21 +2081,6 @@ "MatchingRuleAttributeList$member": null, "ObjectTypeNames$key": null, "PhoneNumberList$member": null, - "Profile$AccountNumber": "

A unique account number that you have given to the customer.

", - "Profile$BusinessName": "

The name of the customer’s business.

", - "Profile$FirstName": "

The customer’s first name.

", - "Profile$MiddleName": "

The customer’s middle name.

", - "Profile$LastName": "

The customer’s last name.

", - "Profile$BirthDate": "

The customer’s birth date.

", - "Profile$PhoneNumber": "

The customer's phone number, which has not been specified as a mobile, home, or business number.

", - "Profile$MobilePhoneNumber": "

The customer’s mobile phone number.

", - "Profile$HomePhoneNumber": "

The customer’s home phone number.

", - "Profile$BusinessPhoneNumber": "

The customer’s home phone number.

", - "Profile$EmailAddress": "

The customer’s email address, which has not been specified as a personal or business address.

", - "Profile$PersonalEmailAddress": "

The customer’s personal email address.

", - "Profile$BusinessEmailAddress": "

The customer’s business email address.

", - "Profile$PartyTypeString": "

An alternative to PartyType which accepts any string as input.

", - "Profile$GenderString": "

An alternative to Gender which accepts any string as input.

", "PutIntegrationRequest$Uri": "

The URI of the S3 bucket or any other type of data source.

", "PutIntegrationResponse$Uri": "

The URI of the S3 bucket or any other type of data source.

", "PutIntegrationResponse$WorkflowId": "

Unique identifier for the workflow.

", @@ -2090,13 +2113,10 @@ "CreateCalculatedAttributeDefinitionRequest$Description": "

The description of the calculated attribute.

", "CreateCalculatedAttributeDefinitionResponse$Description": "

The description of the calculated attribute.

", "GetCalculatedAttributeDefinitionResponse$Description": "

The description of the calculated attribute.

", - "GetProfileObjectTypeResponse$Description": "

The description of the profile object type.

", "ListCalculatedAttributeDefinitionItem$Description": "

The threshold for the calculated attribute.

", "ListProfileObjectTypeItem$Description": "

Description of the profile object type.

", "ObjectTypeField$Source": "

A field of a ProfileObject. For example: _source.FirstName, where “_source” is a ProfileObjectType of a Zendesk user and “FirstName” is a field in that ObjectType.

", "ObjectTypeField$Target": "

The location of the data in the standard ProfileObject model. For example: _profile.Address.PostalCode.

", - "PutProfileObjectTypeRequest$Description": "

Description of the profile object type.

", - "PutProfileObjectTypeResponse$Description": "

Description of the profile object type.

", "UpdateCalculatedAttributeDefinitionRequest$Description": "

The description of the calculated attribute.

", "UpdateCalculatedAttributeDefinitionResponse$Description": "

The description of the calculated attribute.

" } diff --git a/models/apis/customer-profiles/2020-08-15/endpoint-rule-set-1.json b/models/apis/customer-profiles/2020-08-15/endpoint-rule-set-1.json index a70609892ae..02edb0b68db 100644 --- a/models/apis/customer-profiles/2020-08-15/endpoint-rule-set-1.json +++ b/models/apis/customer-profiles/2020-08-15/endpoint-rule-set-1.json @@ -58,52 +58,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -111,13 +115,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -127,224 +140,175 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://profile-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://profile-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, { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://profile-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://profile-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, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://profile.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [], "endpoint": { - "url": "https://profile.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://profile.{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://profile.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/ecs/2014-11-13/api-2.json b/models/apis/ecs/2014-11-13/api-2.json index b2e11b2e416..3d339ff3a0c 100644 --- a/models/apis/ecs/2014-11-13/api-2.json +++ b/models/apis/ecs/2014-11-13/api-2.json @@ -3161,7 +3161,8 @@ "awsvpcTrunking", "containerInsights", "fargateFIPSMode", - "tagResourceAuthorization" + "tagResourceAuthorization", + "fargateTaskRetirementWaitPeriod" ] }, "Settings":{ diff --git a/models/apis/ecs/2014-11-13/docs-2.json b/models/apis/ecs/2014-11-13/docs-2.json index f6006add98a..98846c08df7 100644 --- a/models/apis/ecs/2014-11-13/docs-2.json +++ b/models/apis/ecs/2014-11-13/docs-2.json @@ -35,7 +35,7 @@ "ListTaskDefinitionFamilies": "

Returns a list of task definition families that are registered to your account. This list includes task definition families that no longer have any ACTIVE task definition revisions.

You can filter out task definition families that don't contain any ACTIVE task definition revisions by setting the status parameter to ACTIVE. You can also filter the results with the familyPrefix parameter.

", "ListTaskDefinitions": "

Returns a list of task definitions that are registered to your account. You can filter the results by family name with the familyPrefix parameter or by status with the status parameter.

", "ListTasks": "

Returns a list of tasks. You can filter the results by cluster, task definition family, container instance, launch type, what IAM principal started the task, or by the desired status of the task.

Recently stopped tasks might appear in the returned results.

", - "PutAccountSetting": "

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.

Amazon ECS is introducing tagging authorization for resource creation. Users must have permissions for actions that create the resource, such as ecsCreateCluster. If tags are specified when you create a resource, Amazon Web Services performs additional authorization to verify if users or roles have permissions to create tags. Therefore, you must grant explicit permissions to use the ecs:TagResource action. For more information, see Grant permission to tag resources on creation in the Amazon ECS Developer Guide.

", + "PutAccountSetting": "

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 you specify serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat, 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 you specify awsvpcTrunking, 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 you specify containerInsights, 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.

Amazon ECS is introducing tagging authorization for resource creation. Users must have permissions for actions that create the resource, such as ecsCreateCluster. If tags are specified when you create a resource, Amazon Web Services performs additional authorization to verify if users or roles have permissions to create tags. Therefore, you must grant explicit permissions to use the ecs:TagResource action. For more information, see Grant permission to tag resources on creation in the Amazon ECS Developer Guide.

When Amazon Web Services determines that a security or infrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod to configure the wait time to retire a Fargate task. For information about the Fargate tasks maintenance, see Amazon Web Services Fargate task maintenance in the Amazon ECS Developer Guide.

", "PutAccountSettingDefault": "

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": "

Create or update an attribute on an Amazon ECS resource. If the attribute doesn't exist, it's created. If the attribute exists, its value is replaced with the specified value. To delete an attribute, use DeleteAttributes. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

", "PutClusterCapacityProviders": "

Modifies the available capacity providers and the default capacity provider strategy for a cluster.

You must specify both the available capacity providers and a default capacity provider strategy for the cluster. If the specified cluster has existing capacity providers associated with it, you must specify all existing capacity providers in addition to any new ones you want to add. Any existing capacity providers that are associated with a cluster that are omitted from a PutClusterCapacityProviders API call will be disassociated with the cluster. You can only disassociate an existing capacity provider from a cluster if it's not being used by any existing tasks.

When creating a service or running a task on a cluster, if no capacity provider or launch type is specified, then the cluster's default capacity provider strategy is used. We recommend that you define a default capacity provider strategy for your cluster. However, you must specify an empty array ([]) to bypass defining a default strategy.

", @@ -1119,7 +1119,7 @@ "Cluster$pendingTasksCount": "

The number of tasks in the cluster that are in the PENDING state.

", "Cluster$activeServicesCount": "

The number of services that are running on the cluster in an ACTIVE state. You can view these services with ListServices.

", "ContainerDefinition$cpu": "

The number of cpu units 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.

This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level cpu value.

You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the Amazon EC2 Instances detail page by 1,024.

Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units.

On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see CPU share constraint in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version:

On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as 0, which Windows interprets as 1% of one CPU.

", - "ContainerInstance$runningTasksCount": "

The number of tasks on the container instance that are in the RUNNING status.

", + "ContainerInstance$runningTasksCount": "

The number of tasks on the container instance that have a desired status (desiredStatus) of RUNNING.

", "ContainerInstance$pendingTasksCount": "

The number of tasks on the container instance that are in the PENDING status.

", "Deployment$desiredCount": "

The most recent desired count of tasks that was specified for the service to deploy or maintain.

", "Deployment$pendingCount": "

The number of tasks in the deployment that are in the PENDING status.

", @@ -1369,7 +1369,7 @@ "ManagedScaling": { "base": "

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.

", "refs": { - "AutoScalingGroupProvider$managedScaling": "

he managed scaling settings for the Auto Scaling group capacity provider.

", + "AutoScalingGroupProvider$managedScaling": "

The managed scaling settings for the Auto Scaling group capacity provider.

", "AutoScalingGroupProviderUpdate$managedScaling": "

The managed scaling settings for the Auto Scaling group capacity provider.

" } }, @@ -1487,8 +1487,8 @@ "PidMode": { "base": null, "refs": { - "RegisterTaskDefinitionRequest$pidMode": "

The process namespace to use for the containers in the task. The valid values are host or task. If host is specified, then all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run reference.

If the host PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see Docker security.

This parameter is not supported for Windows containers or tasks run on Fargate.

", - "TaskDefinition$pidMode": "

The process namespace to use for the containers in the task. The valid values are host or task. If host is specified, then all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run reference.

If the host PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see Docker security.

This parameter is not supported for Windows containers or tasks run on Fargate.

" + "RegisterTaskDefinitionRequest$pidMode": "

The process namespace to use for the containers in the task. The valid values are host or task. On Fargate for Linux containers, the only valid value is task. For example, monitoring sidecars might need pidMode to access information about other containers running in the same task.

If host is specified, all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.

If task is specified, all containers within the specified task share the same process namespace.

If no value is specified, the default is a private namespace for each container. For more information, see PID settings in the Docker run reference.

If the host PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see Docker security.

This parameter is not supported for Windows containers.

This parameter is only supported for tasks that are hosted on Fargate if the tasks are using platform version 1.4.0 or later (Linux). This isn't supported for Windows containers on Fargate.

", + "TaskDefinition$pidMode": "

The process namespace to use for the containers in the task. The valid values are host or task. On Fargate for Linux containers, the only valid value is task. For example, monitoring sidecars might need pidMode to access information about other containers running in the same task.

If host is specified, all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.

If task is specified, all containers within the specified task share the same process namespace.

If no value is specified, the default is a private namespace for each container. For more information, see PID settings in the Docker run reference.

If the host PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see Docker security.

This parameter is not supported for Windows containers.

This parameter is only supported for tasks that are hosted on Fargate if the tasks are using platform version 1.4.0 or later (Linux). This isn't supported for Windows containers on Fargate.

" } }, "PlacementConstraint": { @@ -1935,8 +1935,8 @@ "refs": { "DeleteAccountSettingRequest$name": "

The resource name to disable the account setting for. 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.

", "ListAccountSettingsRequest$name": "

The name of the account setting you want to list the settings for.

", - "PutAccountSettingDefaultRequest$name": "

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. If tagResourceAuthorization is specified, the opt-in option for tagging resources on creation is affected. For information about the opt-in timeline, see Tagging authorization timeline in the Amazon ECS Developer Guide.

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.

", - "PutAccountSettingRequest$name": "

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. If tagResourceAuthorization is specified, the opt-in option for tagging resources on creation is affected. For information about the opt-in timeline, see Tagging authorization timeline in the Amazon ECS Developer Guide.

", + "PutAccountSettingDefaultRequest$name": "

The resource name for which to modify the account setting. If you specify serviceLongArnFormat, the ARN for your Amazon ECS services is affected. If you specify taskLongArnFormat, the ARN and resource ID for your Amazon ECS tasks is affected. If you specify containerInstanceLongArnFormat, the ARN and resource ID for your Amazon ECS container instances is affected. If you specify awsvpcTrunking, the ENI limit for your Amazon ECS container instances is affected. If you specify containerInsights, the default setting for Amazon Web Services CloudWatch Container Insights for your clusters is affected. If you specify tagResourceAuthorization, the opt-in option for tagging resources on creation is affected. For information about the opt-in timeline, see Tagging authorization timeline in the Amazon ECS Developer Guide. If you specify fargateTaskRetirementWaitPeriod, the default wait time to retire a Fargate task due to required maintenance 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.

When Amazon Web Services determines that a security or infrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod to set the wait time to retire a Fargate task to the default. For information about the Fargate tasks maintenance, see Amazon Web Services Fargate task maintenance in the Amazon ECS Developer Guide.

", + "PutAccountSettingRequest$name": "

The Amazon ECS resource name for which to modify the account setting. If you specify serviceLongArnFormat, the ARN for your Amazon ECS services is affected. If you specify taskLongArnFormat, the ARN and resource ID for your Amazon ECS tasks is affected. If you specify containerInstanceLongArnFormat, the ARN and resource ID for your Amazon ECS container instances is affected. If you specify awsvpcTrunking, the elastic network interface (ENI) limit for your Amazon ECS container instances is affected. If you specify containerInsights, the default setting for Amazon Web Services CloudWatch Container Insights for your clusters is affected. If you specify fargateFIPSMode, Fargate FIPS 140 compliance is affected. If you specify tagResourceAuthorization, the opt-in option for tagging resources on creation is affected. For information about the opt-in timeline, see Tagging authorization timeline in the Amazon ECS Developer Guide. If you specify fargateTaskRetirementWaitPeriod, the wait time to retire a Fargate task is affected.

", "Setting$name": "

The Amazon ECS resource name.

" } }, @@ -2182,9 +2182,9 @@ "PortMapping$containerPortRange": "

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 can call DescribeTasks to view the hostPortRange which are the host ports that are bound to the container ports.

", "ProtectedTask$taskArn": "

The task ARN.

", "ProxyConfiguration$containerName": "

The name of the container that will serve as the App Mesh proxy.

", - "PutAccountSettingDefaultRequest$value": "

The account setting value for the specified principal ARN. Accepted values are enabled, disabled, on, and off.

", - "PutAccountSettingRequest$value": "

The account setting value for the specified principal ARN. Accepted values are enabled, disabled, on, and off.

", - "PutAccountSettingRequest$principalArn": "

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.

", + "PutAccountSettingDefaultRequest$value": "

The account setting value for the specified principal ARN. Accepted values are enabled, disabled, on, and off.

When you specify fargateTaskRetirementWaitPeriod for the name, the following are the valid values:

", + "PutAccountSettingRequest$value": "

The account setting value for the specified principal ARN. Accepted values are enabled, disabled, on, and off.

When you specify fargateTaskRetirementWaitPeriod for the name, the following are the valid values:

", + "PutAccountSettingRequest$principalArn": "

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.

You must use the root user when you set the Fargate wait time (fargateTaskRetirementWaitPeriod).

Federated users assume the account setting of the root user and can't have explicit account settings set for them.

", "PutAttributesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to apply attributes. If you do not specify a cluster, the default cluster is assumed.

", "PutClusterCapacityProvidersRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster to modify the capacity provider settings for. If you don't specify a cluster, the default cluster is assumed.

", "RegisterContainerInstanceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster to register your container instance with. If you do not specify a cluster, the default cluster is assumed.

", @@ -2258,7 +2258,7 @@ "SubmitTaskStateChangeRequest$reason": "

The reason for the state change request.

", "SubmitTaskStateChangeResponse$acknowledgment": "

Acknowledgement of the state change.

", "SystemControl$namespace": "

The namespaced kernel parameter to set a value for.

", - "SystemControl$value": "

The value for the namespaced kernel parameter that's specified in namespace.

", + "SystemControl$value": "

The namespaced kernel parameter to set a value for.

Valid IPC namespace values: \"kernel.msgmax\" | \"kernel.msgmnb\" | \"kernel.msgmni\" | \"kernel.sem\" | \"kernel.shmall\" | \"kernel.shmmax\" | \"kernel.shmmni\" | \"kernel.shm_rmid_forced\", and Sysctls that start with \"fs.mqueue.*\"

Valid network namespace values: Sysctls that start with \"net.*\"

All of these values are supported by Fargate.

", "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource to add tags to. Currently, the supported resources are Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container instances.

", "Task$availabilityZone": "

The Availability Zone for the task.

", "Task$capacityProviderName": "

The capacity provider that's associated with the task.

", @@ -2411,7 +2411,7 @@ "SystemControls": { "base": null, "refs": { - "ContainerDefinition$systemControls": "

A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in the Create a container section of the Docker Remote API and the --sysctl option to docker run.

We don't recommended that you specify network-related systemControls parameters for multiple containers in a single task that also uses either the awsvpc or host network modes. For tasks that use the awsvpc network mode, the container that's started last determines which systemControls parameters take effect. For tasks that use the host network mode, it changes the container instance's namespaced kernel parameters as well as the containers.

" + "ContainerDefinition$systemControls": "

A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in the Create a container section of the Docker Remote API and the --sysctl option to docker run. For example, you can configure net.ipv4.tcp_keepalive_time setting to maintain longer lived connections.

We don't recommended that you specify network-related systemControls parameters for multiple containers in a single task that also uses either the awsvpc or host network modes. For tasks that use the awsvpc network mode, the container that's started last determines which systemControls parameters take effect. For tasks that use the host network mode, it changes the container instance's namespaced kernel parameters as well as the containers.

This parameter is not supported for Windows containers.

This parameter is only supported for tasks that are hosted on Fargate if the tasks are using platform version 1.4.0 or later (Linux). This isn't supported for Windows containers on Fargate.

" } }, "Tag": { diff --git a/models/apis/events/2015-10-07/docs-2.json b/models/apis/events/2015-10-07/docs-2.json index 6f1dadec1e7..42d89b4a35a 100644 --- a/models/apis/events/2015-10-07/docs-2.json +++ b/models/apis/events/2015-10-07/docs-2.json @@ -43,7 +43,7 @@ "PutPartnerEvents": "

This is used by SaaS partners to write events to a customer's partner event bus. Amazon Web Services customers do not use this operation.

", "PutPermission": "

Running PutPermission permits the specified Amazon Web Services account or Amazon Web Services organization to put events to the specified event bus. Amazon EventBridge (CloudWatch Events) rules in your account are triggered by these events arriving to an event bus in your account.

For another account to send events to your account, that external account must have an EventBridge rule with your account's event bus as a target.

To enable multiple Amazon Web Services accounts to put events to your event bus, run PutPermission once for each of these accounts. Or, if all the accounts are members of the same Amazon Web Services organization, you can run PutPermission once specifying Principal as \"*\" and specifying the Amazon Web Services organization ID in Condition, to grant permissions to all accounts in that organization.

If you grant permissions using an organization, then accounts in that organization must specify a RoleArn with proper permissions when they use PutTarget to add your account's event bus as a target. For more information, see Sending and Receiving Events Between Amazon Web Services Accounts in the Amazon EventBridge User Guide.

The permission policy on the event bus cannot exceed 10 KB in size.

", "PutRule": "

Creates or updates the specified rule. Rules are enabled by default, or based on value of the state. You can disable a rule using DisableRule.

A single rule watches for events from a single event bus. Events generated by Amazon Web Services services go to your account's default event bus. Events generated by SaaS partner services or applications go to the matching partner event bus. If you have custom applications or services, you can specify whether their events go to your default event bus or a custom event bus that you have created. For more information, see CreateEventBus.

If you are updating an existing rule, the rule is replaced with what you specify in this PutRule command. If you omit arguments in PutRule, the old values for those arguments are not kept. Instead, they are replaced with null values.

When you create or update a rule, incoming events might not immediately start matching to new or updated rules. Allow a short period of time for changes to take effect.

A rule must contain at least an EventPattern or ScheduleExpression. Rules with EventPatterns are triggered when a matching event is observed. Rules with ScheduleExpressions self-trigger based on the given schedule. A rule can have both an EventPattern and a ScheduleExpression, in which case the rule triggers on matching events as well as on a schedule.

When you initially create a rule, you can optionally assign one or more tags to the rule. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only rules with certain tag values. To use the PutRule operation and assign tags, you must have both the events:PutRule and events:TagResource permissions.

If you are updating an existing rule, any tags you specify in the PutRule operation are ignored. To update the tags of an existing rule, use TagResource and UntagResource.

Most services in Amazon Web Services treat : or / as the same character in Amazon Resource Names (ARNs). However, EventBridge uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event you want to match.

In EventBridge, it is possible to create rules that lead to infinite loops, where a rule is fired repeatedly. For example, a rule might detect that ACLs have changed on an S3 bucket, and trigger software to change them to the desired state. If the rule is not written carefully, the subsequent change to the ACLs fires the rule again, creating an infinite loop.

To prevent this, write the rules so that the triggered actions do not re-fire the same rule. For example, your rule could fire only if ACLs are found to be in a bad state, instead of after any change.

An infinite loop can quickly cause higher than expected charges. We recommend that you use budgeting, which alerts you when charges exceed your specified limit. For more information, see Managing Your Costs with Budgets.

", - "PutTargets": "

Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule.

Targets are the resources that are invoked when a rule is triggered.

You can configure the following as targets for Events:

Creating rules with built-in targets is supported only in the Management Console. The built-in targets are EC2 CreateSnapshot API call, EC2 RebootInstances API call, EC2 StopInstances API call, and EC2 TerminateInstances API call.

For some target types, PutTargets provides target-specific parameters. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the KinesisParameters argument. To invoke a command on multiple EC2 instances with one rule, you can use the RunCommandParameters field.

To be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions. For Lambda and Amazon SNS resources, EventBridge relies on resource-based policies. For EC2 instances, Kinesis Data Streams, Step Functions state machines and API Gateway REST APIs, EventBridge relies on IAM roles that you specify in the RoleARN argument in PutTargets. For more information, see Authentication and Access Control in the Amazon EventBridge User Guide.

If another Amazon Web Services account is in the same region and has granted you permission (using PutPermission), you can send events to that account. Set that account's event bus as a target of the rules in your account. To send the matched events to the other account, specify that account's event bus as the Arn value when you run PutTargets. If your account sends events to another account, your account is charged for each sent event. Each event sent to another account is charged as a custom event. The account receiving the event is not charged. For more information, see Amazon EventBridge Pricing.

Input, InputPath, and InputTransformer are not available with PutTarget if the target is an event bus of a different Amazon Web Services account.

If you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a RoleArn with proper permissions in the Target structure. For more information, see Sending and Receiving Events Between Amazon Web Services Accounts in the Amazon EventBridge User Guide.

For more information about enabling cross-account events, see PutPermission.

Input, InputPath, and InputTransformer are mutually exclusive and optional parameters of a target. When a rule is triggered due to a matched event:

When you specify InputPath or InputTransformer, you must use JSON dot notation, not bracket notation.

When you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked. Allow a short period of time for changes to take effect.

This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code.

", + "PutTargets": "

Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule.

Targets are the resources that are invoked when a rule is triggered.

You can configure the following as targets for Events:

Creating rules with built-in targets is supported only in the Amazon Web Services Management Console. The built-in targets are EC2 CreateSnapshot API call, EC2 RebootInstances API call, EC2 StopInstances API call, and EC2 TerminateInstances API call.

For some target types, PutTargets provides target-specific parameters. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the KinesisParameters argument. To invoke a command on multiple EC2 instances with one rule, you can use the RunCommandParameters field.

To be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions. For Lambda and Amazon SNS resources, EventBridge relies on resource-based policies. For EC2 instances, Kinesis Data Streams, Step Functions state machines and API Gateway REST APIs, EventBridge relies on IAM roles that you specify in the RoleARN argument in PutTargets. For more information, see Authentication and Access Control in the Amazon EventBridge User Guide.

If another Amazon Web Services account is in the same region and has granted you permission (using PutPermission), you can send events to that account. Set that account's event bus as a target of the rules in your account. To send the matched events to the other account, specify that account's event bus as the Arn value when you run PutTargets. If your account sends events to another account, your account is charged for each sent event. Each event sent to another account is charged as a custom event. The account receiving the event is not charged. For more information, see Amazon EventBridge Pricing.

Input, InputPath, and InputTransformer are not available with PutTarget if the target is an event bus of a different Amazon Web Services account.

If you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a RoleArn with proper permissions in the Target structure. For more information, see Sending and Receiving Events Between Amazon Web Services Accounts in the Amazon EventBridge User Guide.

For more information about enabling cross-account events, see PutPermission.

Input, InputPath, and InputTransformer are mutually exclusive and optional parameters of a target. When a rule is triggered due to a matched event:

When you specify InputPath or InputTransformer, you must use JSON dot notation, not bracket notation.

When you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked. Allow a short period of time for changes to take effect.

This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code.

", "RemovePermission": "

Revokes the permission of another Amazon Web Services account to be able to put events to the specified event bus. Specify the account to revoke by the StatementId value that you associated with the account when you granted it permission with PutPermission. You can find the StatementId by using DescribeEventBus.

", "RemoveTargets": "

Removes the specified targets from the specified rule. When the rule is triggered, those targets are no longer be invoked.

When you remove a target, when the associated rule triggers, removed targets might continue to be invoked. Allow a short period of time for changes to take effect.

This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code.

", "StartReplay": "

Starts the specified replay. Events are not necessarily replayed in the exact same order that they were added to the archive. A replay processes events to replay based on the time in the event, and replays them using 1 minute intervals. If you specify an EventStartTime and an EventEndTime that covers a 20 minute time range, the events are replayed from the first minute of that 20 minute range first. Then the events from the second minute are replayed. You can use DescribeReplay to determine the progress of a replay. The value returned for EventLastReplayedTime indicates the time within the specified time range associated with the last event replayed.

", diff --git a/models/apis/events/2015-10-07/endpoint-rule-set-1.json b/models/apis/events/2015-10-07/endpoint-rule-set-1.json new file mode 100644 index 00000000000..439d2e2f6fe --- /dev/null +++ b/models/apis/events/2015-10-07/endpoint-rule-set-1.json @@ -0,0 +1,352 @@ +{ + "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": [ + { + "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": [ + { + "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": [], + "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, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "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" + }, + { + "conditions": [], + "endpoint": { + "url": "https://events-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": [], + "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" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://events.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/events/2015-10-07/endpoint-tests-1.json b/models/apis/events/2015-10-07/endpoint-tests-1.json new file mode 100644 index 00000000000..13e90754337 --- /dev/null +++ b/models/apis/events/2015-10-07/endpoint-tests-1.json @@ -0,0 +1,678 @@ +{ + "testCases": [ + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.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 disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-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://events-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://events.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "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": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.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://events.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "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": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "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": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "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": { + "Region": "us-iso-west-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://events-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-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "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, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-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 custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/grafana/2020-08-18/api-2.json b/models/apis/grafana/2020-08-18/api-2.json index f9aa1a73826..b4b989c8a59 100644 --- a/models/apis/grafana/2020-08-18/api-2.json +++ b/models/apis/grafana/2020-08-18/api-2.json @@ -1009,7 +1009,8 @@ }, "RoleValueList":{ "type":"list", - "member":{"shape":"RoleValue"} + "member":{"shape":"RoleValue"}, + "sensitive":true }, "RoleValues":{ "type":"structure", @@ -1053,7 +1054,7 @@ "SecurityGroupIds":{ "type":"list", "member":{"shape":"SecurityGroupId"}, - "max":100, + "max":5, "min":1 }, "ServiceQuotaExceededException":{ @@ -1093,8 +1094,8 @@ "SubnetIds":{ "type":"list", "member":{"shape":"SubnetId"}, - "max":100, - "min":1 + "max":6, + "min":2 }, "TagKey":{ "type":"string", diff --git a/models/apis/grafana/2020-08-18/endpoint-rule-set-1.json b/models/apis/grafana/2020-08-18/endpoint-rule-set-1.json index d4486287034..6c513fce87e 100644 --- a/models/apis/grafana/2020-08-18/endpoint-rule-set-1.json +++ b/models/apis/grafana/2020-08-18/endpoint-rule-set-1.json @@ -58,52 +58,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -111,13 +115,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -127,224 +140,175 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", + "fn": "getAttr", "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" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "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, { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "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" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "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" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "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" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [], "endpoint": { - "url": "https://grafana.{Region}.{PartitionResult#dnsSuffix}", + "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" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/health/2016-08-04/api-2.json b/models/apis/health/2016-08-04/api-2.json index bb3958e7376..96a0db2df8b 100644 --- a/models/apis/health/2016-08-04/api-2.json +++ b/models/apis/health/2016-08-04/api-2.json @@ -64,6 +64,16 @@ "output":{"shape":"DescribeEntityAggregatesResponse"}, "idempotent":true }, + "DescribeEntityAggregatesForOrganization":{ + "name":"DescribeEntityAggregatesForOrganization", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEntityAggregatesForOrganizationRequest"}, + "output":{"shape":"DescribeEntityAggregatesForOrganizationResponse"}, + "idempotent":true + }, "DescribeEventAggregates":{ "name":"DescribeEventAggregates", "http":{ @@ -178,6 +188,18 @@ } }, "shapes":{ + "AccountEntityAggregate":{ + "type":"structure", + "members":{ + "accountId":{"shape":"eventArn"}, + "count":{"shape":"count"}, + "statuses":{"shape":"entityStatuses"} + } + }, + "AccountEntityAggregatesList":{ + "type":"list", + "member":{"shape":"AccountEntityAggregate"} + }, "AffectedEntity":{ "type":"structure", "members":{ @@ -228,12 +250,16 @@ }, "DescribeAffectedEntitiesForOrganizationRequest":{ "type":"structure", - "required":["organizationEntityFilters"], "members":{ - "organizationEntityFilters":{"shape":"OrganizationEntityFiltersList"}, + "organizationEntityFilters":{ + "shape":"OrganizationEntityFiltersList", + "deprecated":true, + "deprecatedMessage":"This property is deprecated, use organizationEntityAccountFilters instead." + }, "locale":{"shape":"locale"}, "nextToken":{"shape":"nextToken"}, - "maxResults":{"shape":"maxResultsLowerRange"} + "maxResults":{"shape":"maxResultsLowerRange"}, + "organizationEntityAccountFilters":{"shape":"OrganizationEntityAccountFiltersList"} } }, "DescribeAffectedEntitiesForOrganizationResponse":{ @@ -261,6 +287,20 @@ "nextToken":{"shape":"nextToken"} } }, + "DescribeEntityAggregatesForOrganizationRequest":{ + "type":"structure", + "required":["eventArns"], + "members":{ + "eventArns":{"shape":"OrganizationEventArnsList"}, + "awsAccountIds":{"shape":"OrganizationAccountIdsList"} + } + }, + "DescribeEntityAggregatesForOrganizationResponse":{ + "type":"structure", + "members":{ + "organizationEntityAggregates":{"shape":"OrganizationEntityAggregatesList"} + } + }, "DescribeEntityAggregatesRequest":{ "type":"structure", "members":{ @@ -390,11 +430,21 @@ "healthServiceAccessStatusForOrganization":{"shape":"healthServiceAccessStatusForOrganization"} } }, + "EntityAccountFilter":{ + "type":"structure", + "required":["eventArn"], + "members":{ + "eventArn":{"shape":"eventArn"}, + "awsAccountId":{"shape":"accountId"}, + "statusCodes":{"shape":"entityStatusCodeList"} + } + }, "EntityAggregate":{ "type":"structure", "members":{ "eventArn":{"shape":"eventArn"}, - "count":{"shape":"count"} + "count":{"shape":"count"}, + "statuses":{"shape":"entityStatuses"} } }, "EntityAggregateList":{ @@ -541,6 +591,12 @@ }, "exception":true }, + "OrganizationAccountIdsList":{ + "type":"list", + "member":{"shape":"accountId"}, + "max":25, + "min":1 + }, "OrganizationAffectedEntitiesErrorItem":{ "type":"structure", "members":{ @@ -550,6 +606,25 @@ "errorMessage":{"shape":"string"} } }, + "OrganizationEntityAccountFiltersList":{ + "type":"list", + "member":{"shape":"EntityAccountFilter"}, + "max":10, + "min":1 + }, + "OrganizationEntityAggregate":{ + "type":"structure", + "members":{ + "eventArn":{"shape":"eventArn"}, + "count":{"shape":"count"}, + "statuses":{"shape":"entityStatuses"}, + "accounts":{"shape":"AccountEntityAggregatesList"} + } + }, + "OrganizationEntityAggregatesList":{ + "type":"list", + "member":{"shape":"OrganizationEntityAggregate"} + }, "OrganizationEntityFiltersList":{ "type":"list", "member":{"shape":"EventAccountFilter"}, @@ -571,6 +646,12 @@ "statusCode":{"shape":"eventStatusCode"} } }, + "OrganizationEventArnsList":{ + "type":"list", + "member":{"shape":"eventArn"}, + "max":25, + "min":1 + }, "OrganizationEventDetailFiltersList":{ "type":"list", "member":{"shape":"EventAccountFilter"}, @@ -671,15 +752,22 @@ "enum":[ "IMPAIRED", "UNIMPAIRED", - "UNKNOWN" + "UNKNOWN", + "PENDING", + "RESOLVED" ] }, "entityStatusCodeList":{ "type":"list", "member":{"shape":"entityStatusCode"}, - "max":3, + "max":5, "min":1 }, + "entityStatuses":{ + "type":"map", + "key":{"shape":"entityStatusCode"}, + "value":{"shape":"count"} + }, "entityUrl":{"type":"string"}, "entityValue":{ "type":"string", diff --git a/models/apis/health/2016-08-04/docs-2.json b/models/apis/health/2016-08-04/docs-2.json index 6a252897543..6e941fcabad 100644 --- a/models/apis/health/2016-08-04/docs-2.json +++ b/models/apis/health/2016-08-04/docs-2.json @@ -6,6 +6,7 @@ "DescribeAffectedEntities": "

Returns a list of entities that have been affected by the specified events, based on the specified filter criteria. Entities can refer to individual customer resources, groups of customer resources, or any other construct, depending on the Amazon Web Service. Events that have impact beyond that of the affected entities, or where the extent of impact is unknown, include at least one entity indicating this.

At least one event ARN is required.

", "DescribeAffectedEntitiesForOrganization": "

Returns a list of entities that have been affected by one or more events for one or more accounts in your organization in Organizations, based on the filter criteria. Entities can refer to individual customer resources, groups of customer resources, or any other construct, depending on the Amazon Web Service.

At least one event Amazon Resource Name (ARN) and account ID are required.

Before you can call this operation, you must first enable Health to work with Organizations. To do this, call the EnableHealthServiceAccessForOrganization operation from your organization's management account.

", "DescribeEntityAggregates": "

Returns the number of entities that are affected by each of the specified events.

", + "DescribeEntityAggregatesForOrganization": "

Returns a list of entity aggregates for your Organizations that are affected by each of the specified events.

", "DescribeEventAggregates": "

Returns the number of events of each event type (issue, scheduled change, and account notification). If no filter is specified, the counts of all events in each category are returned.

This API operation uses pagination. Specify the nextToken parameter in the next request to return more results.

", "DescribeEventDetails": "

Returns detailed information about one or more specified events. Information includes standard event data (Amazon Web Services Region, service, and so on, as returned by DescribeEvents), a detailed event description, and possible additional metadata that depends upon the nature of the event. Affected entities are not included. To retrieve the entities, use the DescribeAffectedEntities operation.

If a specified event can't be retrieved, an error message is returned for that event.

This operation supports resource-level permissions. You can use this operation to allow or deny access to specific Health events. For more information, see Resource- and action-based conditions in the Health User Guide.

", "DescribeEventDetailsForOrganization": "

Returns detailed information about one or more specified events for one or more Amazon Web Services accounts in your organization. This information includes standard event data (such as the Amazon Web Services Region and service), an event description, and (depending on the event) possible metadata. This operation doesn't return affected entities, such as the resources related to the event. To return affected entities, use the DescribeAffectedEntitiesForOrganization operation.

Before you can call this operation, you must first enable Health to work with Organizations. To do this, call the EnableHealthServiceAccessForOrganization operation from your organization's management account.

When you call the DescribeEventDetailsForOrganization operation, specify the organizationEventDetailFilters object in the request. Depending on the Health event type, note the following differences:

For more information, see Event.

This operation doesn't support resource-level permissions. You can't use this operation to allow or deny access to specific Health events. For more information, see Resource- and action-based conditions in the Health User Guide.

", @@ -17,6 +18,18 @@ "EnableHealthServiceAccessForOrganization": "

Enables Health to work with Organizations. You can use the organizational view feature to aggregate events from all Amazon Web Services accounts in your organization in a centralized location.

This operation also creates a service-linked role for the management account in the organization.

To call this operation, you must meet the following requirements:

If you don't have the required support plan, you can instead use the Health console to enable the organizational view feature. For more information, see Aggregating Health events in the Health User Guide.

" }, "shapes": { + "AccountEntityAggregate": { + "base": "

The number of entities in an account that are impacted by a specific event aggregated by the entity status codes.

", + "refs": { + "AccountEntityAggregatesList$member": null + } + }, + "AccountEntityAggregatesList": { + "base": null, + "refs": { + "OrganizationEntityAggregate$accounts": "

A list of entity aggregates for each of the specified accounts in your organization that are affected by a specific event. If there are no awsAccountIds provided in the request, this field will be empty in the response.

" + } + }, "AffectedEntity": { "base": "

Information about an entity that is affected by a Health event.

", "refs": { @@ -73,6 +86,16 @@ "refs": { } }, + "DescribeEntityAggregatesForOrganizationRequest": { + "base": null, + "refs": { + } + }, + "DescribeEntityAggregatesForOrganizationResponse": { + "base": null, + "refs": { + } + }, "DescribeEntityAggregatesRequest": { "base": null, "refs": { @@ -172,6 +195,12 @@ "refs": { } }, + "EntityAccountFilter": { + "base": "

A JSON set of elements including the awsAccountId, eventArn and a set of statusCodes.

", + "refs": { + "OrganizationEntityAccountFiltersList$member": null + } + }, "EntityAggregate": { "base": "

The number of entities that are affected by one or more events. Returned by the DescribeEntityAggregates operation.

", "refs": { @@ -297,12 +326,36 @@ "refs": { } }, + "OrganizationAccountIdsList": { + "base": null, + "refs": { + "DescribeEntityAggregatesForOrganizationRequest$awsAccountIds": "

A list of 12-digit Amazon Web Services account numbers that contains the affected entities.

" + } + }, "OrganizationAffectedEntitiesErrorItem": { "base": "

Error information returned when a DescribeAffectedEntitiesForOrganization operation can't find or process a specific entity.

", "refs": { "DescribeAffectedEntitiesForOrganizationFailedSet$member": null } }, + "OrganizationEntityAccountFiltersList": { + "base": null, + "refs": { + "DescribeAffectedEntitiesForOrganizationRequest$organizationEntityAccountFilters": "

A JSON set of elements including the awsAccountId, eventArn and a set of statusCodes.

" + } + }, + "OrganizationEntityAggregate": { + "base": "

The aggregate results of entities affected by the specified event in your organization. The results are aggregated by the entity status codes for the specified set of accountsIDs.

", + "refs": { + "OrganizationEntityAggregatesList$member": null + } + }, + "OrganizationEntityAggregatesList": { + "base": null, + "refs": { + "DescribeEntityAggregatesForOrganizationResponse$organizationEntityAggregates": "

The list of entity aggregates for each of the specified accounts that are affected by each of the specified events.

" + } + }, "OrganizationEntityFiltersList": { "base": null, "refs": { @@ -315,6 +368,12 @@ "OrganizationEventList$member": null } }, + "OrganizationEventArnsList": { + "base": null, + "refs": { + "DescribeEntityAggregatesForOrganizationRequest$eventArns": "

A list of event ARNs (unique identifiers). For example: \"arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456\", \"arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101\"

" + } + }, "OrganizationEventDetailFiltersList": { "base": null, "refs": { @@ -354,7 +413,9 @@ "base": null, "refs": { "AffectedEntity$awsAccountId": "

The 12-digit Amazon Web Services account number that contains the affected entity.

", + "EntityAccountFilter$awsAccountId": "

The 12-digit Amazon Web Services account numbers that contains the affected entities.

", "EventAccountFilter$awsAccountId": "

The 12-digit Amazon Web Services account numbers that contains the affected entities.

", + "OrganizationAccountIdsList$member": null, "OrganizationAffectedEntitiesErrorItem$awsAccountId": "

The 12-digit Amazon Web Services account numbers that contains the affected entities.

", "OrganizationEventDetails$awsAccountId": "

The 12-digit Amazon Web Services account numbers that contains the affected entities.

", "OrganizationEventDetailsErrorItem$awsAccountId": "

Error information returned when a DescribeEventDetailsForOrganization operation can't find a specified event.

", @@ -396,8 +457,11 @@ "count": { "base": null, "refs": { + "AccountEntityAggregate$count": "

The number of entities that match the filter criteria for the specified events.

", "EntityAggregate$count": "

The number of entities that match the criteria for the specified events.

", - "EventAggregate$count": "

The number of events of the associated issue type.

" + "EventAggregate$count": "

The number of events of the associated issue type.

", + "OrganizationEntityAggregate$count": "

The number of entities for the organization that match the filter criteria for the specified events.

", + "entityStatuses$value": null } }, "dateTimeRangeList": { @@ -428,15 +492,25 @@ "base": null, "refs": { "AffectedEntity$statusCode": "

The most recent status of the entity affected by the event. The possible values are IMPAIRED, UNIMPAIRED, and UNKNOWN.

", - "entityStatusCodeList$member": null + "entityStatusCodeList$member": null, + "entityStatuses$key": null } }, "entityStatusCodeList": { "base": null, "refs": { + "EntityAccountFilter$statusCodes": "

A list of entity status codes.

", "EntityFilter$statusCodes": "

A list of entity status codes (IMPAIRED, UNIMPAIRED, or UNKNOWN).

" } }, + "entityStatuses": { + "base": null, + "refs": { + "AccountEntityAggregate$statuses": "

The number of affected entities aggregated by the entity status codes.

", + "EntityAggregate$statuses": "

The number of affected entities aggregated by the entity status codes.

", + "OrganizationEntityAggregate$statuses": "

The number of affected entities aggregated by the entitiy status codes.

" + } + }, "entityUrl": { "base": null, "refs": { @@ -467,15 +541,19 @@ "eventArn": { "base": null, "refs": { + "AccountEntityAggregate$accountId": "

The 12-digit Amazon Web Services account numbers that contains the affected entities.

", "AffectedEntity$eventArn": "

The unique identifier for the event. The event ARN has the arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID format.

For example, an event ARN might look like the following:

arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456

", "DescribeAffectedAccountsForOrganizationRequest$eventArn": "

The unique identifier for the event. The event ARN has the arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID format.

For example, an event ARN might look like the following:

arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456

", + "EntityAccountFilter$eventArn": "

The unique identifier for the event. The event ARN has the arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID format.

For example, an event ARN might look like the following:

arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456

", "EntityAggregate$eventArn": "

The unique identifier for the event. The event ARN has the arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID format.

For example, an event ARN might look like the following:

arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456

", "Event$arn": "

The unique identifier for the event. The event ARN has the arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID format.

For example, an event ARN might look like the following:

arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456

", "EventAccountFilter$eventArn": "

The unique identifier for the event. The event ARN has the arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID format.

For example, an event ARN might look like the following:

arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456

", "EventArnsList$member": null, "EventDetailsErrorItem$eventArn": "

The unique identifier for the event. The event ARN has the arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID format.

For example, an event ARN might look like the following:

arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456

", "OrganizationAffectedEntitiesErrorItem$eventArn": "

The unique identifier for the event. The event ARN has the arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID format.

For example, an event ARN might look like the following:

arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456

", + "OrganizationEntityAggregate$eventArn": "

A list of event ARNs (unique identifiers). For example: \"arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456\", \"arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101\"

", "OrganizationEvent$arn": "

The unique identifier for the event. The event ARN has the arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID format.

For example, an event ARN might look like the following:

arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456

", + "OrganizationEventArnsList$member": null, "OrganizationEventDetailsErrorItem$eventArn": "

The unique identifier for the event. The event ARN has the arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID format.

For example, an event ARN might look like the following:

arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456

", "eventArnList$member": null } diff --git a/models/apis/health/2016-08-04/endpoint-rule-set-1.json b/models/apis/health/2016-08-04/endpoint-rule-set-1.json index d8ace323eae..407b069f5da 100644 --- a/models/apis/health/2016-08-04/endpoint-rule-set-1.json +++ b/models/apis/health/2016-08-04/endpoint-rule-set-1.json @@ -58,52 +58,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -111,13 +115,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -127,278 +140,229 @@ { "fn": "booleanEquals", "argv": [ + true, { - "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", + "fn": "getAttr", "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://health-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://health-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://health-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, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://health.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] - }, - { - "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" - ] - } - ], + "conditions": [], "endpoint": { - "url": "https://global.health.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "health", - "signingRegion": "us-east-1" - } - ] - }, + "url": "https://health-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": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ + true, { - "fn": "stringEquals", + "fn": "getAttr", "argv": [ { - "ref": "Region" + "ref": "PartitionResult" }, - "aws-cn-global" + "supportsDualStack" ] } - ], - "endpoint": { - "url": "https://global.health.amazonaws.com.cn", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "health", - "signingRegion": "cn-northwest-1" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [], "endpoint": { - "url": "https://health.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://health.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://global.health.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://global.health.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://health.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/ivs/2020-07-14/docs-2.json b/models/apis/ivs/2020-07-14/docs-2.json index ffc7a0d83e4..4740de7ec2a 100644 --- a/models/apis/ivs/2020-07-14/docs-2.json +++ b/models/apis/ivs/2020-07-14/docs-2.json @@ -212,10 +212,10 @@ "ChannelType": { "base": null, "refs": { - "Channel$type": "

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Some types generate multiple qualities (renditions) from the original input; this automatically gives viewers the best experience for their devices and network conditions. Some types provide transcoded video; transcoding allows higher playback quality across a range of download speeds. Default: STANDARD. Valid values:

Optional transcode presets (available for the ADVANCED types) allow you to trade off available download bandwidth and video quality, to optimize the viewing experience. There are two presets:

", - "ChannelSummary$type": "

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Some types generate multiple qualities (renditions) from the original input; this automatically gives viewers the best experience for their devices and network conditions. Some types provide transcoded video; transcoding allows higher playback quality across a range of download speeds. Default: STANDARD. Valid values:

Optional transcode presets (available for the ADVANCED types) allow you to trade off available download bandwidth and video quality, to optimize the viewing experience. There are two presets:

", - "CreateChannelRequest$type": "

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Some types generate multiple qualities (renditions) from the original input; this automatically gives viewers the best experience for their devices and network conditions. Some types provide transcoded video; transcoding allows higher playback quality across a range of download speeds. Default: STANDARD. Valid values:

Optional transcode presets (available for the ADVANCED types) allow you to trade off available download bandwidth and video quality, to optimize the viewing experience. There are two presets:

", - "UpdateChannelRequest$type": "

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Some types generate multiple qualities (renditions) from the original input; this automatically gives viewers the best experience for their devices and network conditions. Some types provide transcoded video; transcoding allows higher playback quality across a range of download speeds. Default: STANDARD. Valid values:

Optional transcode presets (available for the ADVANCED types) allow you to trade off available download bandwidth and video quality, to optimize the viewing experience. There are two presets:

" + "Channel$type": "

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

", + "ChannelSummary$type": "

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

", + "CreateChannelRequest$type": "

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

", + "UpdateChannelRequest$type": "

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

" } }, "Channels": { diff --git a/models/apis/ivs/2020-07-14/endpoint-rule-set-1.json b/models/apis/ivs/2020-07-14/endpoint-rule-set-1.json index ca8bf0f0e37..fe19a2be5be 100644 --- a/models/apis/ivs/2020-07-14/endpoint-rule-set-1.json +++ b/models/apis/ivs/2020-07-14/endpoint-rule-set-1.json @@ -58,52 +58,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -111,13 +115,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -127,224 +140,175 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", + "fn": "getAttr", "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" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://ivs-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, { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "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" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://ivs-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, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "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" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "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}", + "url": "https://ivs.{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://ivs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/kafkaconnect/2021-09-14/api-2.json b/models/apis/kafkaconnect/2021-09-14/api-2.json index 59904d817a7..8632fb1dd48 100644 --- a/models/apis/kafkaconnect/2021-09-14/api-2.json +++ b/models/apis/kafkaconnect/2021-09-14/api-2.json @@ -412,7 +412,7 @@ ], "members":{ "capacity":{"shape":"Capacity"}, - "connectorConfiguration":{"shape":"SyntheticCreateConnectorRequest__mapOf__string"}, + "connectorConfiguration":{"shape":"__sensitive__mapOf__string"}, "connectorDescription":{"shape":"__stringMax1024"}, "connectorName":{"shape":"__stringMin1Max128"}, "kafkaCluster":{"shape":"KafkaCluster"}, @@ -465,7 +465,7 @@ "members":{ "description":{"shape":"__stringMax1024"}, "name":{"shape":"__stringMin1Max128"}, - "propertiesFileContent":{"shape":"SyntheticCreateWorkerConfigurationRequest__string"} + "propertiesFileContent":{"shape":"__sensitiveString"} } }, "CreateWorkerConfigurationResponse":{ @@ -612,7 +612,7 @@ "members":{ "capacity":{"shape":"CapacityDescription"}, "connectorArn":{"shape":"__string"}, - "connectorConfiguration":{"shape":"SyntheticDescribeConnectorResponse__mapOf__string"}, + "connectorConfiguration":{"shape":"__sensitive__mapOf__string"}, "connectorDescription":{"shape":"__string"}, "connectorName":{"shape":"__string"}, "connectorState":{"shape":"ConnectorState"}, @@ -996,26 +996,6 @@ "message":{"shape":"__string"} } }, - "SyntheticCreateConnectorRequest__mapOf__string":{ - "type":"map", - "key":{"shape":"__string"}, - "value":{"shape":"__string"}, - "sensitive":true - }, - "SyntheticCreateWorkerConfigurationRequest__string":{ - "type":"string", - "sensitive":true - }, - "SyntheticDescribeConnectorResponse__mapOf__string":{ - "type":"map", - "key":{"shape":"__string"}, - "value":{"shape":"__string"}, - "sensitive":true - }, - "SyntheticWorkerConfigurationRevisionDescription__string":{ - "type":"string", - "sensitive":true - }, "TooManyRequestsException":{ "type":"structure", "members":{ @@ -1104,7 +1084,7 @@ "members":{ "creationTime":{"shape":"__timestampIso8601"}, "description":{"shape":"__string"}, - "propertiesFileContent":{"shape":"SyntheticWorkerConfigurationRevisionDescription__string"}, + "propertiesFileContent":{"shape":"__sensitiveString"}, "revision":{"shape":"__long"} } }, @@ -1189,6 +1169,16 @@ "max":9223372036854775807, "min":1 }, + "__sensitiveString":{ + "type":"string", + "sensitive":true + }, + "__sensitive__mapOf__string":{ + "type":"map", + "key":{"shape":"__string"}, + "value":{"shape":"__string"}, + "sensitive":true + }, "__string":{"type":"string"}, "__stringMax1024":{ "type":"string", diff --git a/models/apis/kafkaconnect/2021-09-14/docs-2.json b/models/apis/kafkaconnect/2021-09-14/docs-2.json index 82294ea3b03..ba345141973 100644 --- a/models/apis/kafkaconnect/2021-09-14/docs-2.json +++ b/models/apis/kafkaconnect/2021-09-14/docs-2.json @@ -475,30 +475,6 @@ "DescribeCustomPluginResponse$stateDescription": "

Details about the state of a custom plugin.

" } }, - "SyntheticCreateConnectorRequest__mapOf__string": { - "base": null, - "refs": { - "CreateConnectorRequest$connectorConfiguration": "

A map of keys to values that represent the configuration for the connector.

" - } - }, - "SyntheticCreateWorkerConfigurationRequest__string": { - "base": null, - "refs": { - "CreateWorkerConfigurationRequest$propertiesFileContent": "

Base64 encoded contents of connect-distributed.properties file.

" - } - }, - "SyntheticDescribeConnectorResponse__mapOf__string": { - "base": null, - "refs": { - "DescribeConnectorResponse$connectorConfiguration": "

A map of keys to values that represent the configuration for the connector.

" - } - }, - "SyntheticWorkerConfigurationRevisionDescription__string": { - "base": null, - "refs": { - "WorkerConfigurationRevisionDescription$propertiesFileContent": "

Base64 encoded contents of the connect-distributed.properties file.

" - } - }, "TooManyRequestsException": { "base": "

HTTP Status Code 429: Limit exceeded. Resource limit reached.

", "refs": { @@ -686,6 +662,20 @@ "WorkerConfiguration$revision": "

The revision of the worker configuration.

" } }, + "__sensitiveString": { + "base": null, + "refs": { + "CreateWorkerConfigurationRequest$propertiesFileContent": "

Base64 encoded contents of connect-distributed.properties file.

", + "WorkerConfigurationRevisionDescription$propertiesFileContent": "

Base64 encoded contents of the connect-distributed.properties file.

" + } + }, + "__sensitive__mapOf__string": { + "base": null, + "refs": { + "CreateConnectorRequest$connectorConfiguration": "

A map of keys to values that represent the configuration for the connector.

", + "DescribeConnectorResponse$connectorConfiguration": "

A map of keys to values that represent the configuration for the connector.

" + } + }, "__string": { "base": null, "refs": { @@ -761,10 +751,6 @@ "ServiceUnavailableException$message": null, "StateDescription$code": "

A code that describes the state of a resource.

", "StateDescription$message": "

A message that describes the state of a resource.

", - "SyntheticCreateConnectorRequest__mapOf__string$key": null, - "SyntheticCreateConnectorRequest__mapOf__string$value": null, - "SyntheticDescribeConnectorResponse__mapOf__string$key": null, - "SyntheticDescribeConnectorResponse__mapOf__string$value": null, "TooManyRequestsException$message": null, "UnauthorizedException$message": null, "UpdateConnectorRequest$connectorArn": "

The Amazon Resource Name (ARN) of the connector that you want to update.

", @@ -777,7 +763,9 @@ "WorkerConfigurationSummary$description": "

The description of a worker configuration.

", "WorkerConfigurationSummary$name": "

The name of the worker configuration.

", "WorkerConfigurationSummary$workerConfigurationArn": "

The Amazon Resource Name (ARN) of the worker configuration.

", - "__listOf__string$member": null + "__listOf__string$member": null, + "__sensitive__mapOf__string$key": null, + "__sensitive__mapOf__string$value": null } }, "__stringMax1024": { diff --git a/models/apis/kafkaconnect/2021-09-14/endpoint-rule-set-1.json b/models/apis/kafkaconnect/2021-09-14/endpoint-rule-set-1.json new file mode 100644 index 00000000000..c5b90d3def0 --- /dev/null +++ b/models/apis/kafkaconnect/2021-09-14/endpoint-rule-set-1.json @@ -0,0 +1,314 @@ +{ + "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": [ + { + "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": [ + { + "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": [], + "endpoint": { + "url": "https://kafkaconnect-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": [], + "endpoint": { + "url": "https://kafkaconnect-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": [], + "endpoint": { + "url": "https://kafkaconnect.{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://kafkaconnect.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/kafkaconnect/2021-09-14/endpoint-tests-1.json b/models/apis/kafkaconnect/2021-09-14/endpoint-tests-1.json new file mode 100644 index 00000000000..85a1b319e43 --- /dev/null +++ b/models/apis/kafkaconnect/2021-09-14/endpoint-tests-1.json @@ -0,0 +1,509 @@ +{ + "testCases": [ + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.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://kafkaconnect.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-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://kafkaconnect-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://kafkaconnect.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-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://kafkaconnect-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://kafkaconnect.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://kafkaconnect.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://kafkaconnect-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://kafkaconnect-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://kafkaconnect.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://kafkaconnect.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://kafkaconnect-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://kafkaconnect.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://kafkaconnect-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://kafkaconnect.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/payment-cryptography-data/2022-02-03/api-2.json b/models/apis/payment-cryptography-data/2022-02-03/api-2.json index 58b9ebb823d..f6460898de7 100644 --- a/models/apis/payment-cryptography-data/2022-02-03/api-2.json +++ b/models/apis/payment-cryptography-data/2022-02-03/api-2.json @@ -471,8 +471,7 @@ "type":"structure", "required":[ "CipherText", - "KeyArn", - "KeyCheckValue" + "KeyArn" ], "members":{ "CipherText":{"shape":"HexEvenLengthBetween16And4096"}, @@ -540,7 +539,7 @@ "GenerationAttributes":{"shape":"MacAttributes"}, "KeyIdentifier":{"shape":"KeyArnOrKeyAliasType"}, "MacLength":{"shape":"IntegerRangeBetween4And16"}, - "MessageData":{"shape":"HexLengthBetween2And4096"} + "MessageData":{"shape":"HexEvenLengthBetween2And4096"} } }, "GenerateMacOutput":{ @@ -596,6 +595,13 @@ "PinData":{"shape":"PinData"} } }, + "HexEvenLengthBetween16And32":{ + "type":"string", + "max":32, + "min":16, + "pattern":"^(?:[0-9a-fA-F][0-9a-fA-F])+$", + "sensitive":true + }, "HexEvenLengthBetween16And4064":{ "type":"string", "max":4064, @@ -610,6 +616,20 @@ "pattern":"^(?:[0-9a-fA-F][0-9a-fA-F])+$", "sensitive":true }, + "HexEvenLengthBetween2And4096":{ + "type":"string", + "max":4096, + "min":2, + "pattern":"^(?:[0-9a-fA-F][0-9a-fA-F])+$", + "sensitive":true + }, + "HexEvenLengthBetween4And128":{ + "type":"string", + "max":128, + "min":4, + "pattern":"^(?:[0-9a-fA-F][0-9a-fA-F])+$", + "sensitive":true + }, "HexLength16Or32":{ "type":"string", "max":32, @@ -653,12 +673,6 @@ "min":2, "pattern":"^[0-9a-fA-F]+$" }, - "HexLengthBetween2And4096":{ - "type":"string", - "max":4096, - "min":2, - "pattern":"^[0-9a-fA-F]+$" - }, "HexLengthBetween2And8":{ "type":"string", "max":8, @@ -1144,7 +1158,7 @@ "OutgoingTranslationAttributes" ], "members":{ - "EncryptedPinBlock":{"shape":"HexLengthBetween16And32"}, + "EncryptedPinBlock":{"shape":"HexEvenLengthBetween16And32"}, "IncomingDukptAttributes":{"shape":"DukptDerivationAttributes"}, "IncomingKeyIdentifier":{"shape":"KeyArnOrKeyAliasType"}, "IncomingTranslationAttributes":{"shape":"TranslationIsoFormats"}, @@ -1303,9 +1317,9 @@ ], "members":{ "KeyIdentifier":{"shape":"KeyArnOrKeyAliasType"}, - "Mac":{"shape":"HexLengthBetween4And128"}, + "Mac":{"shape":"HexEvenLengthBetween4And128"}, "MacLength":{"shape":"IntegerRangeBetween4And16"}, - "MessageData":{"shape":"HexLengthBetween2And4096"}, + "MessageData":{"shape":"HexEvenLengthBetween2And4096"}, "VerificationAttributes":{"shape":"MacAttributes"} } }, diff --git a/models/apis/payment-cryptography-data/2022-02-03/docs-2.json b/models/apis/payment-cryptography-data/2022-02-03/docs-2.json index ef4cdc964f6..a33c4d25e78 100644 --- a/models/apis/payment-cryptography-data/2022-02-03/docs-2.json +++ b/models/apis/payment-cryptography-data/2022-02-03/docs-2.json @@ -217,6 +217,12 @@ "refs": { } }, + "HexEvenLengthBetween16And32": { + "base": null, + "refs": { + "TranslatePinDataInput$EncryptedPinBlock": "

The encrypted PIN block data that Amazon Web Services Payment Cryptography translates.

" + } + }, "HexEvenLengthBetween16And4064": { "base": null, "refs": { @@ -233,6 +239,19 @@ "ReEncryptDataOutput$CipherText": "

The encrypted ciphertext.

" } }, + "HexEvenLengthBetween2And4096": { + "base": null, + "refs": { + "GenerateMacInput$MessageData": "

The data for which a MAC is under generation.

", + "VerifyMacInput$MessageData": "

The data on for which MAC is under verification.

" + } + }, + "HexEvenLengthBetween4And128": { + "base": null, + "refs": { + "VerifyMacInput$Mac": "

The MAC being verified.

" + } + }, "HexLength16Or32": { "base": null, "refs": { @@ -254,7 +273,6 @@ "refs": { "GeneratePinDataOutput$EncryptedPinBlock": "

The PIN block encrypted under PEK from Amazon Web Services Payment Cryptography. The encrypted PIN block is a composite of PAN (Primary Account Number) and PIN (Personal Identification Number), generated in accordance with ISO 9564 standard.

", "Ibm3624PinOffset$EncryptedPinBlock": "

The encrypted PIN block data. According to ISO 9564 standard, a PIN Block is an encoded representation of a payment card Personal Account Number (PAN) and the cardholder Personal Identification Number (PIN).

", - "TranslatePinDataInput$EncryptedPinBlock": "

The encrypted PIN block data that Amazon Web Services Payment Cryptography translates.

", "TranslatePinDataOutput$PinBlock": "

The ougoing encrypted PIN block data after tranlation.

", "VerifyPinDataInput$EncryptedPinBlock": "

The encrypted PIN block data that Amazon Web Services Payment Cryptography verifies.

", "VisaPinVerificationValue$EncryptedPinBlock": "

The encrypted PIN block data to verify.

" @@ -292,13 +310,6 @@ "SessionKeyMastercard$ApplicationTransactionCounter": "

The transaction counter that is provided by the terminal during transaction processing.

" } }, - "HexLengthBetween2And4096": { - "base": null, - "refs": { - "GenerateMacInput$MessageData": "

The data for which a MAC is under generation.

", - "VerifyMacInput$MessageData": "

The data on for which MAC is under verification.

" - } - }, "HexLengthBetween2And8": { "base": null, "refs": { @@ -311,8 +322,7 @@ "HexLengthBetween4And128": { "base": null, "refs": { - "GenerateMacOutput$Mac": "

The MAC cryptogram generated within Amazon Web Services Payment Cryptography.

", - "VerifyMacInput$Mac": "

The MAC being verified.

" + "GenerateMacOutput$Mac": "

The MAC cryptogram generated within Amazon Web Services Payment Cryptography.

" } }, "HexLengthEquals1": { diff --git a/models/apis/payment-cryptography-data/2022-02-03/endpoint-tests-1.json b/models/apis/payment-cryptography-data/2022-02-03/endpoint-tests-1.json index b78414e0682..1c130cc08ba 100644 --- a/models/apis/payment-cryptography-data/2022-02-03/endpoint-tests-1.json +++ b/models/apis/payment-cryptography-data/2022-02-03/endpoint-tests-1.json @@ -1,54 +1,54 @@ { "testCases": [ { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dataplane.payment-cryptography-fips.us-gov-east-1.api.aws" + "url": "https://dataplane.payment-cryptography-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-gov-east-1", "UseDualStack": true } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataplane.payment-cryptography-fips.us-gov-east-1.amazonaws.com" + "url": "https://dataplane.payment-cryptography-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "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 us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dataplane.payment-cryptography.us-gov-east-1.api.aws" + "url": "https://dataplane.payment-cryptography.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "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 us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataplane.payment-cryptography.us-gov-east-1.amazonaws.com" + "url": "https://dataplane.payment-cryptography.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-gov-east-1", "UseDualStack": false } }, @@ -60,8 +60,8 @@ } }, "params": { - "UseFIPS": true, "Region": "cn-north-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -73,8 +73,8 @@ } }, "params": { - "UseFIPS": true, "Region": "cn-north-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -86,8 +86,8 @@ } }, "params": { - "UseFIPS": false, "Region": "cn-north-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -99,108 +99,108 @@ } }, "params": { - "UseFIPS": false, "Region": "cn-north-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-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://dataplane.payment-cryptography-fips.us-gov-east-1.api.aws" + } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-iso-east-1", "UseDualStack": true } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataplane.payment-cryptography-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://dataplane.payment-cryptography-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-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-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://dataplane.payment-cryptography.us-gov-east-1.api.aws" + } }, "params": { + "Region": "us-gov-east-1", "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-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataplane.payment-cryptography.us-iso-east-1.c2s.ic.gov" + "url": "https://dataplane.payment-cryptography.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-iso-east-1", "UseDualStack": 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 enabled", "expect": { - "endpoint": { - "url": "https://dataplane.payment-cryptography-fips.us-east-1.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, - "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://dataplane.payment-cryptography-fips.us-east-1.amazonaws.com" + "url": "https://dataplane.payment-cryptography-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "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://dataplane.payment-cryptography.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "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://dataplane.payment-cryptography.us-east-1.amazonaws.com" + "url": "https://dataplane.payment-cryptography.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false } }, @@ -210,8 +210,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 } }, @@ -223,8 +223,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -234,8 +234,8 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, "Region": "us-isob-east-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -247,21 +247,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" } @@ -272,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" } @@ -284,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/models/apis/runtime.sagemaker/2017-05-13/api-2.json b/models/apis/runtime.sagemaker/2017-05-13/api-2.json index 9af5513b244..eda54b4961b 100644 --- a/models/apis/runtime.sagemaker/2017-05-13/api-2.json +++ b/models/apis/runtime.sagemaker/2017-05-13/api-2.json @@ -43,6 +43,23 @@ {"shape":"ServiceUnavailable"}, {"shape":"ValidationError"} ] + }, + "InvokeEndpointWithResponseStream":{ + "name":"InvokeEndpointWithResponseStream", + "http":{ + "method":"POST", + "requestUri":"/endpoints/{EndpointName}/invocations-response-stream" + }, + "input":{"shape":"InvokeEndpointWithResponseStreamInput"}, + "output":{"shape":"InvokeEndpointWithResponseStreamOutput"}, + "errors":[ + {"shape":"InternalFailure"}, + {"shape":"ServiceUnavailable"}, + {"shape":"ValidationError"}, + {"shape":"ModelError"}, + {"shape":"ModelStreamError"}, + {"shape":"InternalStreamFailure"} + ] } }, "shapes":{ @@ -68,6 +85,7 @@ "max":63, "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" }, + "ErrorCode":{"type":"string"}, "Header":{ "type":"string", "max":1024, @@ -105,6 +123,15 @@ "fault":true, "synthetic":true }, + "InternalStreamFailure":{ + "type":"structure", + "members":{ + "Message":{"shape":"Message"} + }, + "exception":true, + "fault":true, + "synthetic":true + }, "InvocationTimeoutSecondsHeader":{ "type":"integer", "max":3600, @@ -254,6 +281,75 @@ }, "payload":"Body" }, + "InvokeEndpointWithResponseStreamInput":{ + "type":"structure", + "required":[ + "EndpointName", + "Body" + ], + "members":{ + "EndpointName":{ + "shape":"EndpointName", + "location":"uri", + "locationName":"EndpointName" + }, + "Body":{"shape":"BodyBlob"}, + "ContentType":{ + "shape":"Header", + "location":"header", + "locationName":"Content-Type" + }, + "Accept":{ + "shape":"Header", + "location":"header", + "locationName":"X-Amzn-SageMaker-Accept" + }, + "CustomAttributes":{ + "shape":"CustomAttributesHeader", + "location":"header", + "locationName":"X-Amzn-SageMaker-Custom-Attributes" + }, + "TargetVariant":{ + "shape":"TargetVariantHeader", + "location":"header", + "locationName":"X-Amzn-SageMaker-Target-Variant" + }, + "TargetContainerHostname":{ + "shape":"TargetContainerHostnameHeader", + "location":"header", + "locationName":"X-Amzn-SageMaker-Target-Container-Hostname" + }, + "InferenceId":{ + "shape":"InferenceId", + "location":"header", + "locationName":"X-Amzn-SageMaker-Inference-Id" + } + }, + "payload":"Body" + }, + "InvokeEndpointWithResponseStreamOutput":{ + "type":"structure", + "required":["Body"], + "members":{ + "Body":{"shape":"ResponseStream"}, + "ContentType":{ + "shape":"Header", + "location":"header", + "locationName":"X-Amzn-SageMaker-Content-Type" + }, + "InvokedProductionVariant":{ + "shape":"Header", + "location":"header", + "locationName":"x-Amzn-Invoked-Production-Variant" + }, + "CustomAttributes":{ + "shape":"CustomAttributesHeader", + "location":"header", + "locationName":"X-Amzn-SageMaker-Custom-Attributes" + } + }, + "payload":"Body" + }, "LogStreamArn":{"type":"string"}, "Message":{ "type":"string", @@ -279,11 +375,43 @@ "exception":true, "synthetic":true }, + "ModelStreamError":{ + "type":"structure", + "members":{ + "Message":{"shape":"Message"}, + "ErrorCode":{"shape":"ErrorCode"} + }, + "exception":true, + "synthetic":true + }, + "PartBlob":{ + "type":"blob", + "sensitive":true + }, + "PayloadPart":{ + "type":"structure", + "members":{ + "Bytes":{ + "shape":"PartBlob", + "eventpayload":true + } + }, + "event":true + }, "RequestTTLSecondsHeader":{ "type":"integer", "max":21600, "min":60 }, + "ResponseStream":{ + "type":"structure", + "members":{ + "PayloadPart":{"shape":"PayloadPart"}, + "ModelStreamError":{"shape":"ModelStreamError"}, + "InternalStreamFailure":{"shape":"InternalStreamFailure"} + }, + "eventstream":true + }, "ServiceUnavailable":{ "type":"structure", "members":{ diff --git a/models/apis/runtime.sagemaker/2017-05-13/docs-2.json b/models/apis/runtime.sagemaker/2017-05-13/docs-2.json index b508047c4a9..ef559a3f6f9 100644 --- a/models/apis/runtime.sagemaker/2017-05-13/docs-2.json +++ b/models/apis/runtime.sagemaker/2017-05-13/docs-2.json @@ -3,22 +3,26 @@ "service": "

The Amazon SageMaker runtime API.

", "operations": { "InvokeEndpoint": "

After you deploy a model into production using Amazon SageMaker hosting services, your client applications use this API to get inferences from the model hosted at the specified endpoint.

For an overview of Amazon SageMaker, see How It Works.

Amazon SageMaker strips all POST headers except those supported by the API. Amazon SageMaker might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax.

Calls to InvokeEndpoint are authenticated by using Amazon Web Services Signature Version 4. For information, see Authenticating Requests (Amazon Web Services Signature Version 4) in the Amazon S3 API Reference.

A customer's model containers must respond to requests within 60 seconds. The model itself can have a maximum processing time of 60 seconds before responding to invocations. If your model is going to take 50-60 seconds of processing time, the SDK socket timeout should be set to be 70 seconds.

Endpoints are scoped to an individual account, and are not public. The URL does not contain the account ID, but Amazon SageMaker determines the account ID from the authentication token that is supplied by the caller.

", - "InvokeEndpointAsync": "

After you deploy a model into production using Amazon SageMaker hosting services, your client applications use this API to get inferences from the model hosted at the specified endpoint in an asynchronous manner.

Inference requests sent to this API are enqueued for asynchronous processing. The processing of the inference request may or may not complete before you receive a response from this API. The response from this API will not contain the result of the inference request but contain information about where you can locate it.

Amazon SageMaker strips all POST headers except those supported by the API. Amazon SageMaker might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax.

Calls to InvokeEndpointAsync are authenticated by using Amazon Web Services Signature Version 4. For information, see Authenticating Requests (Amazon Web Services Signature Version 4) in the Amazon S3 API Reference.

" + "InvokeEndpointAsync": "

After you deploy a model into production using Amazon SageMaker hosting services, your client applications use this API to get inferences from the model hosted at the specified endpoint in an asynchronous manner.

Inference requests sent to this API are enqueued for asynchronous processing. The processing of the inference request may or may not complete before you receive a response from this API. The response from this API will not contain the result of the inference request but contain information about where you can locate it.

Amazon SageMaker strips all POST headers except those supported by the API. Amazon SageMaker might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax.

Calls to InvokeEndpointAsync are authenticated by using Amazon Web Services Signature Version 4. For information, see Authenticating Requests (Amazon Web Services Signature Version 4) in the Amazon S3 API Reference.

", + "InvokeEndpointWithResponseStream": "

Invokes a model at the specified endpoint to return the inference response as a stream. The inference stream provides the response payload incrementally as a series of parts. Before you can get an inference stream, you must have access to a model that's deployed using Amazon SageMaker hosting services, and the container for that model must support inference streaming.

For more information that can help you use this API, see the following sections in the Amazon SageMaker Developer Guide:

Amazon SageMaker strips all POST headers except those supported by the API. Amazon SageMaker might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax.

Calls to InvokeEndpointWithResponseStream are authenticated by using Amazon Web Services Signature Version 4. For information, see Authenticating Requests (Amazon Web Services Signature Version 4) in the Amazon S3 API Reference.

" }, "shapes": { "BodyBlob": { "base": null, "refs": { "InvokeEndpointInput$Body": "

Provides input data, in the format specified in the ContentType request header. Amazon SageMaker passes all of the data in the body to the model.

For information about the format of the request body, see Common Data Formats-Inference.

", - "InvokeEndpointOutput$Body": "

Includes the inference provided by the model.

For information about the format of the response body, see Common Data Formats-Inference.

If the explainer is activated, the body includes the explanations provided by the model. For more information, see the Response section under Invoke the Endpoint in the Developer Guide.

" + "InvokeEndpointOutput$Body": "

Includes the inference provided by the model.

For information about the format of the response body, see Common Data Formats-Inference.

If the explainer is activated, the body includes the explanations provided by the model. For more information, see the Response section under Invoke the Endpoint in the Developer Guide.

", + "InvokeEndpointWithResponseStreamInput$Body": "

Provides input data, in the format specified in the ContentType request header. Amazon SageMaker passes all of the data in the body to the model.

For information about the format of the request body, see Common Data Formats-Inference.

" } }, "CustomAttributesHeader": { "base": null, "refs": { - "InvokeEndpointAsyncInput$CustomAttributes": "

Provides additional information about a request for an inference submitted to a model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is forwarded verbatim. You could use this value, for example, to provide an ID that you can use to track a request or to provide other metadata that a service endpoint was programmed to process. The value must consist of no more than 1024 visible US-ASCII characters as specified in Section 3.3.6. Field Value Components of the Hypertext Transfer Protocol (HTTP/1.1).

The code in your model is responsible for setting or updating any custom attributes in the response. If your code does not set this value in the response, an empty value is returned. For example, if a custom attribute represents the trace ID, your model can prepend the custom attribute with Trace ID: in your post-processing function.

This feature is currently supported in the Amazon Web Services SDKs but not in the Amazon SageMaker Python SDK.

", - "InvokeEndpointInput$CustomAttributes": "

Provides additional information about a request for an inference submitted to a model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is forwarded verbatim. You could use this value, for example, to provide an ID that you can use to track a request or to provide other metadata that a service endpoint was programmed to process. The value must consist of no more than 1024 visible US-ASCII characters as specified in Section 3.3.6. Field Value Components of the Hypertext Transfer Protocol (HTTP/1.1).

The code in your model is responsible for setting or updating any custom attributes in the response. If your code does not set this value in the response, an empty value is returned. For example, if a custom attribute represents the trace ID, your model can prepend the custom attribute with Trace ID: in your post-processing function.

This feature is currently supported in the Amazon Web Services SDKs but not in the Amazon SageMaker Python SDK.

", - "InvokeEndpointOutput$CustomAttributes": "

Provides additional information in the response about the inference returned by a model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is forwarded verbatim. You could use this value, for example, to return an ID received in the CustomAttributes header of a request or other metadata that a service endpoint was programmed to produce. The value must consist of no more than 1024 visible US-ASCII characters as specified in Section 3.3.6. Field Value Components of the Hypertext Transfer Protocol (HTTP/1.1). If the customer wants the custom attribute returned, the model must set the custom attribute to be included on the way back.

The code in your model is responsible for setting or updating any custom attributes in the response. If your code does not set this value in the response, an empty value is returned. For example, if a custom attribute represents the trace ID, your model can prepend the custom attribute with Trace ID: in your post-processing function.

This feature is currently supported in the Amazon Web Services SDKs but not in the Amazon SageMaker Python SDK.

" + "InvokeEndpointAsyncInput$CustomAttributes": "

Provides additional information about a request for an inference submitted to a model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is forwarded verbatim. You could use this value, for example, to provide an ID that you can use to track a request or to provide other metadata that a service endpoint was programmed to process. The value must consist of no more than 1024 visible US-ASCII characters as specified in Section 3.3.6. Field Value Components of the Hypertext Transfer Protocol (HTTP/1.1).

The code in your model is responsible for setting or updating any custom attributes in the response. If your code does not set this value in the response, an empty value is returned. For example, if a custom attribute represents the trace ID, your model can prepend the custom attribute with Trace ID: in your post-processing function.

This feature is currently supported in the Amazon Web Services SDKs but not in the Amazon SageMaker Python SDK.

", + "InvokeEndpointInput$CustomAttributes": "

Provides additional information about a request for an inference submitted to a model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is forwarded verbatim. You could use this value, for example, to provide an ID that you can use to track a request or to provide other metadata that a service endpoint was programmed to process. The value must consist of no more than 1024 visible US-ASCII characters as specified in Section 3.3.6. Field Value Components of the Hypertext Transfer Protocol (HTTP/1.1).

The code in your model is responsible for setting or updating any custom attributes in the response. If your code does not set this value in the response, an empty value is returned. For example, if a custom attribute represents the trace ID, your model can prepend the custom attribute with Trace ID: in your post-processing function.

This feature is currently supported in the Amazon Web Services SDKs but not in the Amazon SageMaker Python SDK.

", + "InvokeEndpointOutput$CustomAttributes": "

Provides additional information in the response about the inference returned by a model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is forwarded verbatim. You could use this value, for example, to return an ID received in the CustomAttributes header of a request or other metadata that a service endpoint was programmed to produce. The value must consist of no more than 1024 visible US-ASCII characters as specified in Section 3.3.6. Field Value Components of the Hypertext Transfer Protocol (HTTP/1.1). If the customer wants the custom attribute returned, the model must set the custom attribute to be included on the way back.

The code in your model is responsible for setting or updating any custom attributes in the response. If your code does not set this value in the response, an empty value is returned. For example, if a custom attribute represents the trace ID, your model can prepend the custom attribute with Trace ID: in your post-processing function.

This feature is currently supported in the Amazon Web Services SDKs but not in the Amazon SageMaker Python SDK.

", + "InvokeEndpointWithResponseStreamInput$CustomAttributes": "

Provides additional information about a request for an inference submitted to a model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is forwarded verbatim. You could use this value, for example, to provide an ID that you can use to track a request or to provide other metadata that a service endpoint was programmed to process. The value must consist of no more than 1024 visible US-ASCII characters as specified in Section 3.3.6. Field Value Components of the Hypertext Transfer Protocol (HTTP/1.1).

The code in your model is responsible for setting or updating any custom attributes in the response. If your code does not set this value in the response, an empty value is returned. For example, if a custom attribute represents the trace ID, your model can prepend the custom attribute with Trace ID: in your post-processing function.

This feature is currently supported in the Amazon Web Services SDKs but not in the Amazon SageMaker Python SDK.

", + "InvokeEndpointWithResponseStreamOutput$CustomAttributes": "

Provides additional information in the response about the inference returned by a model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is forwarded verbatim. You could use this value, for example, to return an ID received in the CustomAttributes header of a request or other metadata that a service endpoint was programmed to produce. The value must consist of no more than 1024 visible US-ASCII characters as specified in Section 3.3.6. Field Value Components of the Hypertext Transfer Protocol (HTTP/1.1). If the customer wants the custom attribute returned, the model must set the custom attribute to be included on the way back.

The code in your model is responsible for setting or updating any custom attributes in the response. If your code does not set this value in the response, an empty value is returned. For example, if a custom attribute represents the trace ID, your model can prepend the custom attribute with Trace ID: in your post-processing function.

This feature is currently supported in the Amazon Web Services SDKs but not in the Amazon SageMaker Python SDK.

" } }, "EnableExplanationsHeader": { @@ -30,29 +34,41 @@ "EndpointName": { "base": null, "refs": { - "InvokeEndpointAsyncInput$EndpointName": "

The name of the endpoint that you specified when you created the endpoint using the CreateEndpoint API.

", - "InvokeEndpointInput$EndpointName": "

The name of the endpoint that you specified when you created the endpoint using the CreateEndpoint API.

" + "InvokeEndpointAsyncInput$EndpointName": "

The name of the endpoint that you specified when you created the endpoint using the CreateEndpoint API.

", + "InvokeEndpointInput$EndpointName": "

The name of the endpoint that you specified when you created the endpoint using the CreateEndpoint API.

", + "InvokeEndpointWithResponseStreamInput$EndpointName": "

The name of the endpoint that you specified when you created the endpoint using the CreateEndpoint API.

" + } + }, + "ErrorCode": { + "base": null, + "refs": { + "ModelStreamError$ErrorCode": "

This error can have the following error codes:

ModelInvocationTimeExceeded

The model failed to finish sending the response within the timeout period allowed by Amazon SageMaker.

StreamBroken

The Transmission Control Protocol (TCP) connection between the client and the model was reset or closed.

" } }, "Header": { "base": null, "refs": { "InvokeEndpointAsyncInput$ContentType": "

The MIME type of the input data in the request body.

", - "InvokeEndpointAsyncInput$Accept": "

The desired MIME type of the inference in the response.

", + "InvokeEndpointAsyncInput$Accept": "

The desired MIME type of the inference response from the model container.

", "InvokeEndpointAsyncOutput$InferenceId": "

Identifier for an inference request. This will be the same as the InferenceId specified in the input. Amazon SageMaker will generate an identifier for you if you do not specify one.

", "InvokeEndpointAsyncOutput$OutputLocation": "

The Amazon S3 URI where the inference response payload is stored.

", "InvokeEndpointAsyncOutput$FailureLocation": "

The Amazon S3 URI where the inference failure response payload is stored.

", "InvokeEndpointInput$ContentType": "

The MIME type of the input data in the request body.

", - "InvokeEndpointInput$Accept": "

The desired MIME type of the inference in the response.

", - "InvokeEndpointOutput$ContentType": "

The MIME type of the inference returned in the response body.

", - "InvokeEndpointOutput$InvokedProductionVariant": "

Identifies the production variant that was invoked.

" + "InvokeEndpointInput$Accept": "

The desired MIME type of the inference response from the model container.

", + "InvokeEndpointOutput$ContentType": "

The MIME type of the inference returned from the model container.

", + "InvokeEndpointOutput$InvokedProductionVariant": "

Identifies the production variant that was invoked.

", + "InvokeEndpointWithResponseStreamInput$ContentType": "

The MIME type of the input data in the request body.

", + "InvokeEndpointWithResponseStreamInput$Accept": "

The desired MIME type of the inference response from the model container.

", + "InvokeEndpointWithResponseStreamOutput$ContentType": "

The MIME type of the inference returned from the model container.

", + "InvokeEndpointWithResponseStreamOutput$InvokedProductionVariant": "

Identifies the production variant that was invoked.

" } }, "InferenceId": { "base": null, "refs": { "InvokeEndpointAsyncInput$InferenceId": "

The identifier for the inference request. Amazon SageMaker will generate an identifier for you if none is specified.

", - "InvokeEndpointInput$InferenceId": "

If you provide a value, it is added to the captured data when you enable data capture on the endpoint. For information about data capture, see Capture Data.

" + "InvokeEndpointInput$InferenceId": "

If you provide a value, it is added to the captured data when you enable data capture on the endpoint. For information about data capture, see Capture Data.

", + "InvokeEndpointWithResponseStreamInput$InferenceId": "

An identifier that you assign to your request.

" } }, "InputLocationHeader": { @@ -71,6 +87,12 @@ "refs": { } }, + "InternalStreamFailure": { + "base": "

The stream processing failed because of an unknown error, exception or failure. Try your request again.

", + "refs": { + "ResponseStream$InternalStreamFailure": "

The stream processing failed because of an unknown error, exception or failure. Try your request again.

" + } + }, "InvocationTimeoutSecondsHeader": { "base": null, "refs": { @@ -97,6 +119,16 @@ "refs": { } }, + "InvokeEndpointWithResponseStreamInput": { + "base": null, + "refs": { + } + }, + "InvokeEndpointWithResponseStreamOutput": { + "base": null, + "refs": { + } + }, "LogStreamArn": { "base": null, "refs": { @@ -108,9 +140,11 @@ "refs": { "InternalDependencyException$Message": null, "InternalFailure$Message": null, + "InternalStreamFailure$Message": null, "ModelError$Message": null, "ModelError$OriginalMessage": "

Original message.

", "ModelNotReadyException$Message": null, + "ModelStreamError$Message": null, "ServiceUnavailable$Message": null, "ValidationError$Message": null } @@ -125,12 +159,36 @@ "refs": { } }, + "ModelStreamError": { + "base": "

An error occurred while streaming the response body. This error can have the following error codes:

ModelInvocationTimeExceeded

The model failed to finish sending the response within the timeout period allowed by Amazon SageMaker.

StreamBroken

The Transmission Control Protocol (TCP) connection between the client and the model was reset or closed.

", + "refs": { + "ResponseStream$ModelStreamError": "

An error occurred while streaming the response body. This error can have the following error codes:

ModelInvocationTimeExceeded

The model failed to finish sending the response within the timeout period allowed by Amazon SageMaker.

StreamBroken

The Transmission Control Protocol (TCP) connection between the client and the model was reset or closed.

" + } + }, + "PartBlob": { + "base": null, + "refs": { + "PayloadPart$Bytes": "

A blob that contains part of the response for your streaming inference request.

" + } + }, + "PayloadPart": { + "base": "

A wrapper for pieces of the payload that's returned in response to a streaming inference request. A streaming inference response consists of one or more payload parts.

", + "refs": { + "ResponseStream$PayloadPart": "

A wrapper for pieces of the payload that's returned in response to a streaming inference request. A streaming inference response consists of one or more payload parts.

" + } + }, "RequestTTLSecondsHeader": { "base": null, "refs": { "InvokeEndpointAsyncInput$RequestTTLSeconds": "

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.

" } }, + "ResponseStream": { + "base": "

A stream of payload parts. Each part contains a portion of the response for a streaming inference request.

", + "refs": { + "InvokeEndpointWithResponseStreamOutput$Body": null + } + }, "ServiceUnavailable": { "base": "

The service is unavailable. Try your call again.

", "refs": { @@ -145,7 +203,8 @@ "TargetContainerHostnameHeader": { "base": null, "refs": { - "InvokeEndpointInput$TargetContainerHostname": "

If the endpoint hosts multiple containers and is configured to use direct invocation, this parameter specifies the host name of the container to invoke.

" + "InvokeEndpointInput$TargetContainerHostname": "

If the endpoint hosts multiple containers and is configured to use direct invocation, this parameter specifies the host name of the container to invoke.

", + "InvokeEndpointWithResponseStreamInput$TargetContainerHostname": "

If the endpoint hosts multiple containers and is configured to use direct invocation, this parameter specifies the host name of the container to invoke.

" } }, "TargetModelHeader": { @@ -157,7 +216,8 @@ "TargetVariantHeader": { "base": null, "refs": { - "InvokeEndpointInput$TargetVariant": "

Specify the production variant to send the inference request to when invoking an endpoint that is running two or more variants. Note that this parameter overrides the default behavior for the endpoint, which is to distribute the invocation traffic based on the variant weights.

For information about how to use variant targeting to perform a/b testing, see Test models in production

" + "InvokeEndpointInput$TargetVariant": "

Specify the production variant to send the inference request to when invoking an endpoint that is running two or more variants. Note that this parameter overrides the default behavior for the endpoint, which is to distribute the invocation traffic based on the variant weights.

For information about how to use variant targeting to perform a/b testing, see Test models in production

", + "InvokeEndpointWithResponseStreamInput$TargetVariant": "

Specify the production variant to send the inference request to when invoking an endpoint that is running two or more variants. Note that this parameter overrides the default behavior for the endpoint, which is to distribute the invocation traffic based on the variant weights.

For information about how to use variant targeting to perform a/b testing, see Test models in production

" } }, "ValidationError": { diff --git a/models/apis/runtime.sagemaker/2017-05-13/endpoint-rule-set-1.json b/models/apis/runtime.sagemaker/2017-05-13/endpoint-rule-set-1.json index 1df2646e75f..6abcf0015eb 100644 --- a/models/apis/runtime.sagemaker/2017-05-13/endpoint-rule-set-1.json +++ b/models/apis/runtime.sagemaker/2017-05-13/endpoint-rule-set-1.json @@ -58,52 +58,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -111,13 +115,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -127,92 +140,83 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://runtime.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "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, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], @@ -221,180 +225,140 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, + "aws", { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" ] } ] } ], - "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" - } - ] - } - ] + "endpoint": { + "url": "https://runtime-fips.sagemaker.{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", + "fn": "stringEquals", "argv": [ - true, + "aws-us-gov", { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsDualStack" + "name" ] } ] } ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - } - ] + "endpoint": { + "url": "https://runtime.sagemaker.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, { "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" + "endpoint": { + "url": "https://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, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [], "endpoint": { - "url": "https://runtime.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "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" } ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://runtime.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/runtime.sagemaker/2017-05-13/endpoint-tests-1.json b/models/apis/runtime.sagemaker/2017-05-13/endpoint-tests-1.json index 65c9d77c5c9..3317c56fa53 100644 --- a/models/apis/runtime.sagemaker/2017-05-13/endpoint-tests-1.json +++ b/models/apis/runtime.sagemaker/2017-05-13/endpoint-tests-1.json @@ -8,8 +8,8 @@ } }, "params": { - "UseFIPS": false, "Region": "af-south-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -21,8 +21,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -34,8 +34,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -47,8 +47,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -60,8 +60,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-3", + "UseFIPS": false, "UseDualStack": false } }, @@ -73,8 +73,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-south-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -86,8 +86,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-southeast-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -99,8 +99,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-southeast-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -112,8 +112,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ca-central-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -125,8 +125,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-central-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -138,8 +138,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-north-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -151,8 +151,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-south-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -164,8 +164,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-west-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -177,8 +177,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-west-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -190,8 +190,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-west-3", + "UseFIPS": false, "UseDualStack": false } }, @@ -203,8 +203,8 @@ } }, "params": { - "UseFIPS": false, "Region": "me-south-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -216,8 +216,8 @@ } }, "params": { - "UseFIPS": false, "Region": "sa-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -229,8 +229,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -242,8 +242,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -255,8 +255,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-east-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -268,8 +268,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-east-2", + "UseFIPS": true, "UseDualStack": false } }, @@ -281,8 +281,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-west-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -294,8 +294,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-west-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -307,8 +307,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-west-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -320,8 +320,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-west-2", + "UseFIPS": true, "UseDualStack": false } }, @@ -333,8 +333,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -346,8 +346,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -359,8 +359,8 @@ } }, "params": { - "UseFIPS": false, "Region": "cn-north-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -372,8 +372,8 @@ } }, "params": { - "UseFIPS": false, "Region": "cn-northwest-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -385,8 +385,8 @@ } }, "params": { - "UseFIPS": true, "Region": "cn-north-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -398,8 +398,8 @@ } }, "params": { - "UseFIPS": true, "Region": "cn-north-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -411,8 +411,8 @@ } }, "params": { - "UseFIPS": false, "Region": "cn-north-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -424,8 +424,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-gov-west-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -437,8 +437,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-gov-west-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -450,8 +450,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-gov-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -463,8 +463,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-gov-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -476,8 +476,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-gov-east-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -489,8 +489,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-gov-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -502,8 +502,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-iso-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -513,8 +513,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, "Region": "us-iso-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -526,8 +526,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-iso-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -537,8 +537,8 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, "Region": "us-iso-east-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -548,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 } }, @@ -561,8 +561,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -572,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 } }, @@ -585,8 +585,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-isob-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -598,8 +598,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -623,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" } @@ -635,8 +635,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/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index a28a2519712..6f0dffc32b6 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -3349,6 +3349,7 @@ "endpoints" : { "ap-northeast-1" : { }, "ap-northeast-2" : { }, + "ap-northeast-3" : { }, "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, @@ -3387,6 +3388,7 @@ "deprecated" : true, "hostname" : "cognito-identity-fips.us-west-2.amazonaws.com" }, + "il-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -3419,6 +3421,7 @@ "endpoints" : { "ap-northeast-1" : { }, "ap-northeast-2" : { }, + "ap-northeast-3" : { }, "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, @@ -3457,6 +3460,7 @@ "deprecated" : true, "hostname" : "cognito-idp-fips.us-west-2.amazonaws.com" }, + "il-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -10084,6 +10088,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -10119,6 +10124,7 @@ "deprecated" : true, "hostname" : "license-manager-user-subscriptions-fips.us-west-2.amazonaws.com" }, + "il-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -12211,6 +12217,12 @@ }, "hostname" : "portal.sso.eu-west-3.amazonaws.com" }, + "il-central-1" : { + "credentialScope" : { + "region" : "il-central-1" + }, + "hostname" : "portal.sso.il-central-1.amazonaws.com" + }, "me-south-1" : { "credentialScope" : { "region" : "me-south-1" diff --git a/service/chimesdkmediapipelines/api.go b/service/chimesdkmediapipelines/api.go index 457ae4d96ce..f426fdc7950 100644 --- a/service/chimesdkmediapipelines/api.go +++ b/service/chimesdkmediapipelines/api.go @@ -6759,6 +6759,10 @@ type MediaInsightsPipeline struct { // The time at which the media insights pipeline was created. CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"` + // The statuses that the elements in a media insights pipeline can have during + // data processing. + ElementStatuses []*MediaInsightsPipelineElementStatus `type:"list"` + // The runtime configuration settings for a Kinesis recording video stream in // a media insights pipeline. KinesisVideoStreamRecordingSourceRuntimeConfiguration *KinesisVideoStreamRecordingSourceRuntimeConfiguration `type:"structure"` @@ -6823,6 +6827,12 @@ func (s *MediaInsightsPipeline) SetCreatedTimestamp(v time.Time) *MediaInsightsP return s } +// SetElementStatuses sets the ElementStatuses field's value. +func (s *MediaInsightsPipeline) SetElementStatuses(v []*MediaInsightsPipelineElementStatus) *MediaInsightsPipeline { + s.ElementStatuses = v + return s +} + // SetKinesisVideoStreamRecordingSourceRuntimeConfiguration sets the KinesisVideoStreamRecordingSourceRuntimeConfiguration field's value. func (s *MediaInsightsPipeline) SetKinesisVideoStreamRecordingSourceRuntimeConfiguration(v *KinesisVideoStreamRecordingSourceRuntimeConfiguration) *MediaInsightsPipeline { s.KinesisVideoStreamRecordingSourceRuntimeConfiguration = v @@ -7015,6 +7025,9 @@ type MediaInsightsPipelineConfigurationElement struct { // The voice analytics configuration settings in a media insights pipeline configuration // element. VoiceAnalyticsProcessorConfiguration *VoiceAnalyticsProcessorConfiguration `type:"structure"` + + // The configuration settings for the VoiceEnhancementSinkConfiguration element. + VoiceEnhancementSinkConfiguration *VoiceEnhancementSinkConfiguration `type:"structure"` } // String returns the string representation. @@ -7137,6 +7150,12 @@ func (s *MediaInsightsPipelineConfigurationElement) SetVoiceAnalyticsProcessorCo return s } +// SetVoiceEnhancementSinkConfiguration sets the VoiceEnhancementSinkConfiguration field's value. +func (s *MediaInsightsPipelineConfigurationElement) SetVoiceEnhancementSinkConfiguration(v *VoiceEnhancementSinkConfiguration) *MediaInsightsPipelineConfigurationElement { + s.VoiceEnhancementSinkConfiguration = v + return s +} + // A summary of the media insights pipeline configuration. type MediaInsightsPipelineConfigurationSummary struct { _ struct{} `type:"structure"` @@ -7191,6 +7210,47 @@ func (s *MediaInsightsPipelineConfigurationSummary) SetMediaInsightsPipelineConf return s } +// The status of the pipeline element. +type MediaInsightsPipelineElementStatus struct { + _ struct{} `type:"structure"` + + // The element's status. + Status *string `type:"string" enum:"MediaPipelineElementStatus"` + + // The type of status. + Type *string `type:"string" enum:"MediaInsightsPipelineConfigurationElementType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MediaInsightsPipelineElementStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MediaInsightsPipelineElementStatus) GoString() string { + return s.String() +} + +// SetStatus sets the Status field's value. +func (s *MediaInsightsPipelineElementStatus) SetStatus(v string) *MediaInsightsPipelineElementStatus { + s.Status = &v + return s +} + +// SetType sets the Type field's value. +func (s *MediaInsightsPipelineElementStatus) SetType(v string) *MediaInsightsPipelineElementStatus { + s.Type = &v + return s +} + // The connector pipeline. type MediaLiveConnectorPipeline struct { _ struct{} `type:"structure"` @@ -9370,7 +9430,7 @@ func (s UpdateMediaInsightsPipelineStatusOutput) GoString() string { return s.String() } -// Defines the configuration settings for a vertial layout. +// Defines the configuration settings for a vertical layout. type VerticalLayoutConfiguration struct { _ struct{} `type:"structure"` @@ -9661,6 +9721,39 @@ func (s *VoiceAnalyticsProcessorConfiguration) SetVoiceToneAnalysisStatus(v stri return s } +// A static structure that contains the configuration data for a VoiceEnhancementSinkConfiguration +// element. +type VoiceEnhancementSinkConfiguration struct { + _ struct{} `type:"structure"` + + // Disables the VoiceEnhancementSinkConfiguration element. + Disabled *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VoiceEnhancementSinkConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VoiceEnhancementSinkConfiguration) GoString() string { + return s.String() +} + +// SetDisabled sets the Disabled field's value. +func (s *VoiceEnhancementSinkConfiguration) SetDisabled(v bool) *VoiceEnhancementSinkConfiguration { + s.Disabled = &v + return s +} + const ( // ActiveSpeakerPositionTopLeft is a ActiveSpeakerPosition enum value ActiveSpeakerPositionTopLeft = "TopLeft" @@ -10133,6 +10226,9 @@ const ( // MediaInsightsPipelineConfigurationElementTypeS3recordingSink is a MediaInsightsPipelineConfigurationElementType enum value MediaInsightsPipelineConfigurationElementTypeS3recordingSink = "S3RecordingSink" + + // MediaInsightsPipelineConfigurationElementTypeVoiceEnhancementSink is a MediaInsightsPipelineConfigurationElementType enum value + MediaInsightsPipelineConfigurationElementTypeVoiceEnhancementSink = "VoiceEnhancementSink" ) // MediaInsightsPipelineConfigurationElementType_Values returns all elements of the MediaInsightsPipelineConfigurationElementType enum @@ -10146,6 +10242,47 @@ func MediaInsightsPipelineConfigurationElementType_Values() []string { MediaInsightsPipelineConfigurationElementTypeSqsQueueSink, MediaInsightsPipelineConfigurationElementTypeSnsTopicSink, MediaInsightsPipelineConfigurationElementTypeS3recordingSink, + MediaInsightsPipelineConfigurationElementTypeVoiceEnhancementSink, + } +} + +const ( + // MediaPipelineElementStatusNotStarted is a MediaPipelineElementStatus enum value + MediaPipelineElementStatusNotStarted = "NotStarted" + + // MediaPipelineElementStatusNotSupported is a MediaPipelineElementStatus enum value + MediaPipelineElementStatusNotSupported = "NotSupported" + + // MediaPipelineElementStatusInitializing is a MediaPipelineElementStatus enum value + MediaPipelineElementStatusInitializing = "Initializing" + + // MediaPipelineElementStatusInProgress is a MediaPipelineElementStatus enum value + MediaPipelineElementStatusInProgress = "InProgress" + + // MediaPipelineElementStatusFailed is a MediaPipelineElementStatus enum value + MediaPipelineElementStatusFailed = "Failed" + + // MediaPipelineElementStatusStopping is a MediaPipelineElementStatus enum value + MediaPipelineElementStatusStopping = "Stopping" + + // MediaPipelineElementStatusStopped is a MediaPipelineElementStatus enum value + MediaPipelineElementStatusStopped = "Stopped" + + // MediaPipelineElementStatusPaused is a MediaPipelineElementStatus enum value + MediaPipelineElementStatusPaused = "Paused" +) + +// MediaPipelineElementStatus_Values returns all elements of the MediaPipelineElementStatus enum +func MediaPipelineElementStatus_Values() []string { + return []string{ + MediaPipelineElementStatusNotStarted, + MediaPipelineElementStatusNotSupported, + MediaPipelineElementStatusInitializing, + MediaPipelineElementStatusInProgress, + MediaPipelineElementStatusFailed, + MediaPipelineElementStatusStopping, + MediaPipelineElementStatusStopped, + MediaPipelineElementStatusPaused, } } @@ -10191,6 +10328,9 @@ const ( // MediaPipelineStatusPaused is a MediaPipelineStatus enum value MediaPipelineStatusPaused = "Paused" + + // MediaPipelineStatusNotStarted is a MediaPipelineStatus enum value + MediaPipelineStatusNotStarted = "NotStarted" ) // MediaPipelineStatus_Values returns all elements of the MediaPipelineStatus enum @@ -10202,6 +10342,7 @@ func MediaPipelineStatus_Values() []string { MediaPipelineStatusStopping, MediaPipelineStatusStopped, MediaPipelineStatusPaused, + MediaPipelineStatusNotStarted, } } diff --git a/service/cloudhsm/api.go b/service/cloudhsm/api.go index 1794a882975..79ff3c71b1a 100644 --- a/service/cloudhsm/api.go +++ b/service/cloudhsm/api.go @@ -36,7 +36,12 @@ const opAddTagsToResource = "AddTagsToResource" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/AddTagsToResource +// +// Deprecated: This API is deprecated. func (c *CloudHSM) AddTagsToResourceRequest(input *AddTagsToResourceInput) (req *request.Request, output *AddTagsToResourceOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, AddTagsToResource, has been deprecated") + } op := &request.Operation{ Name: opAddTagsToResource, HTTPMethod: "POST", @@ -86,6 +91,8 @@ func (c *CloudHSM) AddTagsToResourceRequest(input *AddTagsToResourceInput) (req // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/AddTagsToResource +// +// Deprecated: This API is deprecated. func (c *CloudHSM) AddTagsToResource(input *AddTagsToResourceInput) (*AddTagsToResourceOutput, error) { req, out := c.AddTagsToResourceRequest(input) return out, req.Send() @@ -100,6 +107,8 @@ func (c *CloudHSM) AddTagsToResource(input *AddTagsToResourceInput) (*AddTagsToR // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) AddTagsToResourceWithContext(ctx aws.Context, input *AddTagsToResourceInput, opts ...request.Option) (*AddTagsToResourceOutput, error) { req, out := c.AddTagsToResourceRequest(input) req.SetContext(ctx) @@ -132,7 +141,12 @@ const opCreateHapg = "CreateHapg" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/CreateHapg +// +// Deprecated: This API is deprecated. func (c *CloudHSM) CreateHapgRequest(input *CreateHapgInput) (req *request.Request, output *CreateHapgOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, CreateHapg, has been deprecated") + } op := &request.Operation{ Name: opCreateHapg, HTTPMethod: "POST", @@ -181,6 +195,8 @@ func (c *CloudHSM) CreateHapgRequest(input *CreateHapgInput) (req *request.Reque // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/CreateHapg +// +// Deprecated: This API is deprecated. func (c *CloudHSM) CreateHapg(input *CreateHapgInput) (*CreateHapgOutput, error) { req, out := c.CreateHapgRequest(input) return out, req.Send() @@ -195,6 +211,8 @@ func (c *CloudHSM) CreateHapg(input *CreateHapgInput) (*CreateHapgOutput, error) // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) CreateHapgWithContext(ctx aws.Context, input *CreateHapgInput, opts ...request.Option) (*CreateHapgOutput, error) { req, out := c.CreateHapgRequest(input) req.SetContext(ctx) @@ -227,7 +245,12 @@ const opCreateHsm = "CreateHsm" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/CreateHsm +// +// Deprecated: This API is deprecated. func (c *CloudHSM) CreateHsmRequest(input *CreateHsmInput) (req *request.Request, output *CreateHsmOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, CreateHsm, has been deprecated") + } op := &request.Operation{ Name: opCreateHsm, HTTPMethod: "POST", @@ -285,6 +308,8 @@ func (c *CloudHSM) CreateHsmRequest(input *CreateHsmInput) (req *request.Request // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/CreateHsm +// +// Deprecated: This API is deprecated. func (c *CloudHSM) CreateHsm(input *CreateHsmInput) (*CreateHsmOutput, error) { req, out := c.CreateHsmRequest(input) return out, req.Send() @@ -299,6 +324,8 @@ func (c *CloudHSM) CreateHsm(input *CreateHsmInput) (*CreateHsmOutput, error) { // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) CreateHsmWithContext(ctx aws.Context, input *CreateHsmInput, opts ...request.Option) (*CreateHsmOutput, error) { req, out := c.CreateHsmRequest(input) req.SetContext(ctx) @@ -331,7 +358,12 @@ const opCreateLunaClient = "CreateLunaClient" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/CreateLunaClient +// +// Deprecated: This API is deprecated. func (c *CloudHSM) CreateLunaClientRequest(input *CreateLunaClientInput) (req *request.Request, output *CreateLunaClientOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, CreateLunaClient, has been deprecated") + } op := &request.Operation{ Name: opCreateLunaClient, HTTPMethod: "POST", @@ -379,6 +411,8 @@ func (c *CloudHSM) CreateLunaClientRequest(input *CreateLunaClientInput) (req *r // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/CreateLunaClient +// +// Deprecated: This API is deprecated. func (c *CloudHSM) CreateLunaClient(input *CreateLunaClientInput) (*CreateLunaClientOutput, error) { req, out := c.CreateLunaClientRequest(input) return out, req.Send() @@ -393,6 +427,8 @@ func (c *CloudHSM) CreateLunaClient(input *CreateLunaClientInput) (*CreateLunaCl // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) CreateLunaClientWithContext(ctx aws.Context, input *CreateLunaClientInput, opts ...request.Option) (*CreateLunaClientOutput, error) { req, out := c.CreateLunaClientRequest(input) req.SetContext(ctx) @@ -425,7 +461,12 @@ const opDeleteHapg = "DeleteHapg" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DeleteHapg +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DeleteHapgRequest(input *DeleteHapgInput) (req *request.Request, output *DeleteHapgOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, DeleteHapg, has been deprecated") + } op := &request.Operation{ Name: opDeleteHapg, HTTPMethod: "POST", @@ -473,6 +514,8 @@ func (c *CloudHSM) DeleteHapgRequest(input *DeleteHapgInput) (req *request.Reque // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DeleteHapg +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DeleteHapg(input *DeleteHapgInput) (*DeleteHapgOutput, error) { req, out := c.DeleteHapgRequest(input) return out, req.Send() @@ -487,6 +530,8 @@ func (c *CloudHSM) DeleteHapg(input *DeleteHapgInput) (*DeleteHapgOutput, error) // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DeleteHapgWithContext(ctx aws.Context, input *DeleteHapgInput, opts ...request.Option) (*DeleteHapgOutput, error) { req, out := c.DeleteHapgRequest(input) req.SetContext(ctx) @@ -519,7 +564,12 @@ const opDeleteHsm = "DeleteHsm" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DeleteHsm +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DeleteHsmRequest(input *DeleteHsmInput) (req *request.Request, output *DeleteHsmOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, DeleteHsm, has been deprecated") + } op := &request.Operation{ Name: opDeleteHsm, HTTPMethod: "POST", @@ -568,6 +618,8 @@ func (c *CloudHSM) DeleteHsmRequest(input *DeleteHsmInput) (req *request.Request // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DeleteHsm +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DeleteHsm(input *DeleteHsmInput) (*DeleteHsmOutput, error) { req, out := c.DeleteHsmRequest(input) return out, req.Send() @@ -582,6 +634,8 @@ func (c *CloudHSM) DeleteHsm(input *DeleteHsmInput) (*DeleteHsmOutput, error) { // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DeleteHsmWithContext(ctx aws.Context, input *DeleteHsmInput, opts ...request.Option) (*DeleteHsmOutput, error) { req, out := c.DeleteHsmRequest(input) req.SetContext(ctx) @@ -614,7 +668,12 @@ const opDeleteLunaClient = "DeleteLunaClient" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DeleteLunaClient +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DeleteLunaClientRequest(input *DeleteLunaClientInput) (req *request.Request, output *DeleteLunaClientOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, DeleteLunaClient, has been deprecated") + } op := &request.Operation{ Name: opDeleteLunaClient, HTTPMethod: "POST", @@ -662,6 +721,8 @@ func (c *CloudHSM) DeleteLunaClientRequest(input *DeleteLunaClientInput) (req *r // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DeleteLunaClient +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DeleteLunaClient(input *DeleteLunaClientInput) (*DeleteLunaClientOutput, error) { req, out := c.DeleteLunaClientRequest(input) return out, req.Send() @@ -676,6 +737,8 @@ func (c *CloudHSM) DeleteLunaClient(input *DeleteLunaClientInput) (*DeleteLunaCl // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DeleteLunaClientWithContext(ctx aws.Context, input *DeleteLunaClientInput, opts ...request.Option) (*DeleteLunaClientOutput, error) { req, out := c.DeleteLunaClientRequest(input) req.SetContext(ctx) @@ -708,7 +771,12 @@ const opDescribeHapg = "DescribeHapg" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DescribeHapg +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DescribeHapgRequest(input *DescribeHapgInput) (req *request.Request, output *DescribeHapgOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, DescribeHapg, has been deprecated") + } op := &request.Operation{ Name: opDescribeHapg, HTTPMethod: "POST", @@ -756,6 +824,8 @@ func (c *CloudHSM) DescribeHapgRequest(input *DescribeHapgInput) (req *request.R // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DescribeHapg +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DescribeHapg(input *DescribeHapgInput) (*DescribeHapgOutput, error) { req, out := c.DescribeHapgRequest(input) return out, req.Send() @@ -770,6 +840,8 @@ func (c *CloudHSM) DescribeHapg(input *DescribeHapgInput) (*DescribeHapgOutput, // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DescribeHapgWithContext(ctx aws.Context, input *DescribeHapgInput, opts ...request.Option) (*DescribeHapgOutput, error) { req, out := c.DescribeHapgRequest(input) req.SetContext(ctx) @@ -802,7 +874,12 @@ const opDescribeHsm = "DescribeHsm" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DescribeHsm +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DescribeHsmRequest(input *DescribeHsmInput) (req *request.Request, output *DescribeHsmOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, DescribeHsm, has been deprecated") + } op := &request.Operation{ Name: opDescribeHsm, HTTPMethod: "POST", @@ -851,6 +928,8 @@ func (c *CloudHSM) DescribeHsmRequest(input *DescribeHsmInput) (req *request.Req // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DescribeHsm +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DescribeHsm(input *DescribeHsmInput) (*DescribeHsmOutput, error) { req, out := c.DescribeHsmRequest(input) return out, req.Send() @@ -865,6 +944,8 @@ func (c *CloudHSM) DescribeHsm(input *DescribeHsmInput) (*DescribeHsmOutput, err // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DescribeHsmWithContext(ctx aws.Context, input *DescribeHsmInput, opts ...request.Option) (*DescribeHsmOutput, error) { req, out := c.DescribeHsmRequest(input) req.SetContext(ctx) @@ -897,7 +978,12 @@ const opDescribeLunaClient = "DescribeLunaClient" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DescribeLunaClient +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DescribeLunaClientRequest(input *DescribeLunaClientInput) (req *request.Request, output *DescribeLunaClientOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, DescribeLunaClient, has been deprecated") + } op := &request.Operation{ Name: opDescribeLunaClient, HTTPMethod: "POST", @@ -945,6 +1031,8 @@ func (c *CloudHSM) DescribeLunaClientRequest(input *DescribeLunaClientInput) (re // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/DescribeLunaClient +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DescribeLunaClient(input *DescribeLunaClientInput) (*DescribeLunaClientOutput, error) { req, out := c.DescribeLunaClientRequest(input) return out, req.Send() @@ -959,6 +1047,8 @@ func (c *CloudHSM) DescribeLunaClient(input *DescribeLunaClientInput) (*Describe // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) DescribeLunaClientWithContext(ctx aws.Context, input *DescribeLunaClientInput, opts ...request.Option) (*DescribeLunaClientOutput, error) { req, out := c.DescribeLunaClientRequest(input) req.SetContext(ctx) @@ -991,7 +1081,12 @@ const opGetConfig = "GetConfig" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/GetConfig +// +// Deprecated: This API is deprecated. func (c *CloudHSM) GetConfigRequest(input *GetConfigInput) (req *request.Request, output *GetConfigOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, GetConfig, has been deprecated") + } op := &request.Operation{ Name: opGetConfig, HTTPMethod: "POST", @@ -1040,6 +1135,8 @@ func (c *CloudHSM) GetConfigRequest(input *GetConfigInput) (req *request.Request // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/GetConfig +// +// Deprecated: This API is deprecated. func (c *CloudHSM) GetConfig(input *GetConfigInput) (*GetConfigOutput, error) { req, out := c.GetConfigRequest(input) return out, req.Send() @@ -1054,6 +1151,8 @@ func (c *CloudHSM) GetConfig(input *GetConfigInput) (*GetConfigOutput, error) { // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) GetConfigWithContext(ctx aws.Context, input *GetConfigInput, opts ...request.Option) (*GetConfigOutput, error) { req, out := c.GetConfigRequest(input) req.SetContext(ctx) @@ -1086,7 +1185,12 @@ const opListAvailableZones = "ListAvailableZones" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ListAvailableZones +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListAvailableZonesRequest(input *ListAvailableZonesInput) (req *request.Request, output *ListAvailableZonesOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, ListAvailableZones, has been deprecated") + } op := &request.Operation{ Name: opListAvailableZones, HTTPMethod: "POST", @@ -1134,6 +1238,8 @@ func (c *CloudHSM) ListAvailableZonesRequest(input *ListAvailableZonesInput) (re // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ListAvailableZones +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListAvailableZones(input *ListAvailableZonesInput) (*ListAvailableZonesOutput, error) { req, out := c.ListAvailableZonesRequest(input) return out, req.Send() @@ -1148,6 +1254,8 @@ func (c *CloudHSM) ListAvailableZones(input *ListAvailableZonesInput) (*ListAvai // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListAvailableZonesWithContext(ctx aws.Context, input *ListAvailableZonesInput, opts ...request.Option) (*ListAvailableZonesOutput, error) { req, out := c.ListAvailableZonesRequest(input) req.SetContext(ctx) @@ -1180,7 +1288,12 @@ const opListHapgs = "ListHapgs" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ListHapgs +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListHapgsRequest(input *ListHapgsInput) (req *request.Request, output *ListHapgsOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, ListHapgs, has been deprecated") + } op := &request.Operation{ Name: opListHapgs, HTTPMethod: "POST", @@ -1233,6 +1346,8 @@ func (c *CloudHSM) ListHapgsRequest(input *ListHapgsInput) (req *request.Request // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ListHapgs +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListHapgs(input *ListHapgsInput) (*ListHapgsOutput, error) { req, out := c.ListHapgsRequest(input) return out, req.Send() @@ -1247,6 +1362,8 @@ func (c *CloudHSM) ListHapgs(input *ListHapgsInput) (*ListHapgsOutput, error) { // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListHapgsWithContext(ctx aws.Context, input *ListHapgsInput, opts ...request.Option) (*ListHapgsOutput, error) { req, out := c.ListHapgsRequest(input) req.SetContext(ctx) @@ -1279,7 +1396,12 @@ const opListHsms = "ListHsms" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ListHsms +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListHsmsRequest(input *ListHsmsInput) (req *request.Request, output *ListHsmsOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, ListHsms, has been deprecated") + } op := &request.Operation{ Name: opListHsms, HTTPMethod: "POST", @@ -1333,6 +1455,8 @@ func (c *CloudHSM) ListHsmsRequest(input *ListHsmsInput) (req *request.Request, // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ListHsms +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListHsms(input *ListHsmsInput) (*ListHsmsOutput, error) { req, out := c.ListHsmsRequest(input) return out, req.Send() @@ -1347,6 +1471,8 @@ func (c *CloudHSM) ListHsms(input *ListHsmsInput) (*ListHsmsOutput, error) { // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListHsmsWithContext(ctx aws.Context, input *ListHsmsInput, opts ...request.Option) (*ListHsmsOutput, error) { req, out := c.ListHsmsRequest(input) req.SetContext(ctx) @@ -1379,7 +1505,12 @@ const opListLunaClients = "ListLunaClients" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ListLunaClients +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListLunaClientsRequest(input *ListLunaClientsInput) (req *request.Request, output *ListLunaClientsOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, ListLunaClients, has been deprecated") + } op := &request.Operation{ Name: opListLunaClients, HTTPMethod: "POST", @@ -1432,6 +1563,8 @@ func (c *CloudHSM) ListLunaClientsRequest(input *ListLunaClientsInput) (req *req // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ListLunaClients +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListLunaClients(input *ListLunaClientsInput) (*ListLunaClientsOutput, error) { req, out := c.ListLunaClientsRequest(input) return out, req.Send() @@ -1446,6 +1579,8 @@ func (c *CloudHSM) ListLunaClients(input *ListLunaClientsInput) (*ListLunaClient // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListLunaClientsWithContext(ctx aws.Context, input *ListLunaClientsInput, opts ...request.Option) (*ListLunaClientsOutput, error) { req, out := c.ListLunaClientsRequest(input) req.SetContext(ctx) @@ -1478,7 +1613,12 @@ const opListTagsForResource = "ListTagsForResource" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ListTagsForResource +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, ListTagsForResource, has been deprecated") + } op := &request.Operation{ Name: opListTagsForResource, HTTPMethod: "POST", @@ -1526,6 +1666,8 @@ func (c *CloudHSM) ListTagsForResourceRequest(input *ListTagsForResourceInput) ( // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ListTagsForResource +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { req, out := c.ListTagsForResourceRequest(input) return out, req.Send() @@ -1540,6 +1682,8 @@ func (c *CloudHSM) ListTagsForResource(input *ListTagsForResourceInput) (*ListTa // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { req, out := c.ListTagsForResourceRequest(input) req.SetContext(ctx) @@ -1572,7 +1716,12 @@ const opModifyHapg = "ModifyHapg" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ModifyHapg +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ModifyHapgRequest(input *ModifyHapgInput) (req *request.Request, output *ModifyHapgOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, ModifyHapg, has been deprecated") + } op := &request.Operation{ Name: opModifyHapg, HTTPMethod: "POST", @@ -1620,6 +1769,8 @@ func (c *CloudHSM) ModifyHapgRequest(input *ModifyHapgInput) (req *request.Reque // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ModifyHapg +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ModifyHapg(input *ModifyHapgInput) (*ModifyHapgOutput, error) { req, out := c.ModifyHapgRequest(input) return out, req.Send() @@ -1634,6 +1785,8 @@ func (c *CloudHSM) ModifyHapg(input *ModifyHapgInput) (*ModifyHapgOutput, error) // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ModifyHapgWithContext(ctx aws.Context, input *ModifyHapgInput, opts ...request.Option) (*ModifyHapgOutput, error) { req, out := c.ModifyHapgRequest(input) req.SetContext(ctx) @@ -1666,7 +1819,12 @@ const opModifyHsm = "ModifyHsm" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ModifyHsm +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ModifyHsmRequest(input *ModifyHsmInput) (req *request.Request, output *ModifyHsmOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, ModifyHsm, has been deprecated") + } op := &request.Operation{ Name: opModifyHsm, HTTPMethod: "POST", @@ -1720,6 +1878,8 @@ func (c *CloudHSM) ModifyHsmRequest(input *ModifyHsmInput) (req *request.Request // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ModifyHsm +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ModifyHsm(input *ModifyHsmInput) (*ModifyHsmOutput, error) { req, out := c.ModifyHsmRequest(input) return out, req.Send() @@ -1734,6 +1894,8 @@ func (c *CloudHSM) ModifyHsm(input *ModifyHsmInput) (*ModifyHsmOutput, error) { // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ModifyHsmWithContext(ctx aws.Context, input *ModifyHsmInput, opts ...request.Option) (*ModifyHsmOutput, error) { req, out := c.ModifyHsmRequest(input) req.SetContext(ctx) @@ -1766,7 +1928,12 @@ const opModifyLunaClient = "ModifyLunaClient" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ModifyLunaClient +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ModifyLunaClientRequest(input *ModifyLunaClientInput) (req *request.Request, output *ModifyLunaClientOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, ModifyLunaClient, has been deprecated") + } op := &request.Operation{ Name: opModifyLunaClient, HTTPMethod: "POST", @@ -1810,6 +1977,8 @@ func (c *CloudHSM) ModifyLunaClientRequest(input *ModifyLunaClientInput) (req *r // Indicates that an exception occurred in the AWS CloudHSM service. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/ModifyLunaClient +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ModifyLunaClient(input *ModifyLunaClientInput) (*ModifyLunaClientOutput, error) { req, out := c.ModifyLunaClientRequest(input) return out, req.Send() @@ -1824,6 +1993,8 @@ func (c *CloudHSM) ModifyLunaClient(input *ModifyLunaClientInput) (*ModifyLunaCl // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) ModifyLunaClientWithContext(ctx aws.Context, input *ModifyLunaClientInput, opts ...request.Option) (*ModifyLunaClientOutput, error) { req, out := c.ModifyLunaClientRequest(input) req.SetContext(ctx) @@ -1856,7 +2027,12 @@ const opRemoveTagsFromResource = "RemoveTagsFromResource" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/RemoveTagsFromResource +// +// Deprecated: This API is deprecated. func (c *CloudHSM) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, RemoveTagsFromResource, has been deprecated") + } op := &request.Operation{ Name: opRemoveTagsFromResource, HTTPMethod: "POST", @@ -1907,6 +2083,8 @@ func (c *CloudHSM) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceIn // Indicates that one or more of the request parameters are not valid. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/RemoveTagsFromResource +// +// Deprecated: This API is deprecated. func (c *CloudHSM) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) { req, out := c.RemoveTagsFromResourceRequest(input) return out, req.Send() @@ -1921,6 +2099,8 @@ func (c *CloudHSM) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (* // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: This API is deprecated. func (c *CloudHSM) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) { req, out := c.RemoveTagsFromResourceRequest(input) req.SetContext(ctx) diff --git a/service/cloudwatchevents/api.go b/service/cloudwatchevents/api.go index be96ecfec0b..7e562a7dc4c 100644 --- a/service/cloudwatchevents/api.go +++ b/service/cloudwatchevents/api.go @@ -3819,9 +3819,10 @@ func (c *CloudWatchEvents) PutTargetsRequest(input *PutTargetsInput) (req *reque // // - Step Functions state machines // -// Creating rules with built-in targets is supported only in the Management -// Console. The built-in targets are EC2 CreateSnapshot API call, EC2 RebootInstances -// API call, EC2 StopInstances API call, and EC2 TerminateInstances API call. +// Creating rules with built-in targets is supported only in the Amazon Web +// Services Management Console. The built-in targets are EC2 CreateSnapshot +// API call, EC2 RebootInstances API call, EC2 StopInstances API call, and EC2 +// TerminateInstances API call. // // For some target types, PutTargets provides target-specific parameters. If // the target is a Kinesis data stream, you can optionally specify which shard diff --git a/service/connectcampaigns/api.go b/service/connectcampaigns/api.go index c82a57e1459..81b7b50de88 100644 --- a/service/connectcampaigns/api.go +++ b/service/connectcampaigns/api.go @@ -2194,6 +2194,51 @@ func (s *AccessDeniedException) RequestID() string { return s.RespMetadata.RequestID } +// Agentless Dialer config +type AgentlessDialerConfig struct { + _ struct{} `type:"structure"` + + // Allocates dialing capacity for this campaign between multiple active campaigns + DialingCapacity *float64 `locationName:"dialingCapacity" min:"0.01" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AgentlessDialerConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AgentlessDialerConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AgentlessDialerConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AgentlessDialerConfig"} + if s.DialingCapacity != nil && *s.DialingCapacity < 0.01 { + invalidParams.Add(request.NewErrParamMinValue("DialingCapacity", 0.01)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDialingCapacity sets the DialingCapacity field's value. +func (s *AgentlessDialerConfig) SetDialingCapacity(v float64) *AgentlessDialerConfig { + s.DialingCapacity = &v + return s +} + // Answering Machine Detection config type AnswerMachineDetectionConfig struct { _ struct{} `type:"structure"` @@ -3084,6 +3129,9 @@ func (s *DialRequest) SetPhoneNumber(v string) *DialRequest { type DialerConfig struct { _ struct{} `type:"structure"` + // Agentless Dialer config + AgentlessDialerConfig *AgentlessDialerConfig `locationName:"agentlessDialerConfig" type:"structure"` + // Predictive Dialer config PredictiveDialerConfig *PredictiveDialerConfig `locationName:"predictiveDialerConfig" type:"structure"` @@ -3112,6 +3160,11 @@ func (s DialerConfig) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *DialerConfig) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DialerConfig"} + if s.AgentlessDialerConfig != nil { + if err := s.AgentlessDialerConfig.Validate(); err != nil { + invalidParams.AddNested("AgentlessDialerConfig", err.(request.ErrInvalidParams)) + } + } if s.PredictiveDialerConfig != nil { if err := s.PredictiveDialerConfig.Validate(); err != nil { invalidParams.AddNested("PredictiveDialerConfig", err.(request.ErrInvalidParams)) @@ -3129,6 +3182,12 @@ func (s *DialerConfig) Validate() error { return nil } +// SetAgentlessDialerConfig sets the AgentlessDialerConfig field's value. +func (s *DialerConfig) SetAgentlessDialerConfig(v *AgentlessDialerConfig) *DialerConfig { + s.AgentlessDialerConfig = v + return s +} + // SetPredictiveDialerConfig sets the PredictiveDialerConfig field's value. func (s *DialerConfig) SetPredictiveDialerConfig(v *PredictiveDialerConfig) *DialerConfig { s.PredictiveDialerConfig = v @@ -4227,9 +4286,7 @@ type OutboundCallConfig struct { // ID is the phone number specified in the queue. If you do not specify a queue, // the queue defined in the contact flow is used. If you do not specify a queue, // you must specify a source phone number. - // - // ConnectQueueId is a required field - ConnectQueueId *string `locationName:"connectQueueId" type:"string" required:"true"` + ConnectQueueId *string `locationName:"connectQueueId" type:"string"` // The phone number associated with the Amazon Connect instance, in E.164 format. // If you do not specify a source phone number, you must specify a queue. @@ -4260,9 +4317,6 @@ func (s *OutboundCallConfig) Validate() error { if s.ConnectContactFlowId == nil { invalidParams.Add(request.NewErrParamRequired("ConnectContactFlowId")) } - if s.ConnectQueueId == nil { - invalidParams.Add(request.NewErrParamRequired("ConnectQueueId")) - } if s.AnswerMachineDetectionConfig != nil { if err := s.AnswerMachineDetectionConfig.Validate(); err != nil { invalidParams.AddNested("AnswerMachineDetectionConfig", err.(request.ErrInvalidParams)) @@ -4379,6 +4433,9 @@ type PredictiveDialerConfig struct { // // BandwidthAllocation is a required field BandwidthAllocation *float64 `locationName:"bandwidthAllocation" type:"double" required:"true"` + + // Allocates dialing capacity for this campaign between multiple active campaigns + DialingCapacity *float64 `locationName:"dialingCapacity" min:"0.01" type:"double"` } // String returns the string representation. @@ -4405,6 +4462,9 @@ func (s *PredictiveDialerConfig) Validate() error { if s.BandwidthAllocation == nil { invalidParams.Add(request.NewErrParamRequired("BandwidthAllocation")) } + if s.DialingCapacity != nil && *s.DialingCapacity < 0.01 { + invalidParams.Add(request.NewErrParamMinValue("DialingCapacity", 0.01)) + } if invalidParams.Len() > 0 { return invalidParams @@ -4418,6 +4478,12 @@ func (s *PredictiveDialerConfig) SetBandwidthAllocation(v float64) *PredictiveDi return s } +// SetDialingCapacity sets the DialingCapacity field's value. +func (s *PredictiveDialerConfig) SetDialingCapacity(v float64) *PredictiveDialerConfig { + s.DialingCapacity = &v + return s +} + // Progressive Dialer config type ProgressiveDialerConfig struct { _ struct{} `type:"structure"` @@ -4426,6 +4492,9 @@ type ProgressiveDialerConfig struct { // // BandwidthAllocation is a required field BandwidthAllocation *float64 `locationName:"bandwidthAllocation" type:"double" required:"true"` + + // Allocates dialing capacity for this campaign between multiple active campaigns + DialingCapacity *float64 `locationName:"dialingCapacity" min:"0.01" type:"double"` } // String returns the string representation. @@ -4452,6 +4521,9 @@ func (s *ProgressiveDialerConfig) Validate() error { if s.BandwidthAllocation == nil { invalidParams.Add(request.NewErrParamRequired("BandwidthAllocation")) } + if s.DialingCapacity != nil && *s.DialingCapacity < 0.01 { + invalidParams.Add(request.NewErrParamMinValue("DialingCapacity", 0.01)) + } if invalidParams.Len() > 0 { return invalidParams @@ -4465,6 +4537,12 @@ func (s *ProgressiveDialerConfig) SetBandwidthAllocation(v float64) *Progressive return s } +// SetDialingCapacity sets the DialingCapacity field's value. +func (s *ProgressiveDialerConfig) SetDialingCapacity(v float64) *ProgressiveDialerConfig { + s.DialingCapacity = &v + return s +} + // PutDialRequestBatchRequest type PutDialRequestBatchInput struct { _ struct{} `type:"structure"` diff --git a/service/connectparticipant/api.go b/service/connectparticipant/api.go index 3fb43d47134..a0df68b1cf4 100644 --- a/service/connectparticipant/api.go +++ b/service/connectparticipant/api.go @@ -236,6 +236,98 @@ func (c *ConnectParticipant) CreateParticipantConnectionWithContext(ctx aws.Cont return out, req.Send() } +const opDescribeView = "DescribeView" + +// DescribeViewRequest generates a "aws/request.Request" representing the +// client's request for the DescribeView operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DescribeView for more information on using the DescribeView +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DescribeViewRequest method. +// req, resp := client.DescribeViewRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connectparticipant-2018-09-07/DescribeView +func (c *ConnectParticipant) DescribeViewRequest(input *DescribeViewInput) (req *request.Request, output *DescribeViewOutput) { + op := &request.Operation{ + Name: opDescribeView, + HTTPMethod: "GET", + HTTPPath: "/participant/views/{ViewToken}", + } + + if input == nil { + input = &DescribeViewInput{} + } + + output = &DescribeViewOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeView API operation for Amazon Connect Participant Service. +// +// Retrieves the view for the specified view token. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Participant Service's +// API operation DescribeView for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - InternalServerException +// This exception occurs when there is an internal failure in the Amazon Connect +// service. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ResourceNotFoundException +// The resource was not found. +// +// - ValidationException +// The input fails to satisfy the constraints specified by Amazon Connect. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connectparticipant-2018-09-07/DescribeView +func (c *ConnectParticipant) DescribeView(input *DescribeViewInput) (*DescribeViewOutput, error) { + req, out := c.DescribeViewRequest(input) + return out, req.Send() +} + +// DescribeViewWithContext is the same as DescribeView with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeView for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ConnectParticipant) DescribeViewWithContext(ctx aws.Context, input *DescribeViewInput, opts ...request.Option) (*DescribeViewOutput, error) { + req, out := c.DescribeViewRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDisconnectParticipant = "DisconnectParticipant" // DisconnectParticipantRequest generates a "aws/request.Request" representing the @@ -1218,8 +1310,9 @@ type CreateParticipantConnectionInput struct { // ParticipantToken is a required field ParticipantToken *string `location:"header" locationName:"X-Amz-Bearer" min:"1" type:"string" required:"true"` - // Type of connection information required. This can be omitted if ConnectParticipant - // is true. + // Type of connection information required. If you need CONNECTION_CREDENTIALS + // along with marking participant as connected, pass CONNECTION_CREDENTIALS + // in Type. Type []*string `min:"1" type:"list" enum:"ConnectionType"` } @@ -1319,6 +1412,105 @@ func (s *CreateParticipantConnectionOutput) SetWebsocket(v *Websocket) *CreatePa return s } +type DescribeViewInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The connection token. + // + // ConnectionToken is a required field + ConnectionToken *string `location:"header" locationName:"X-Amz-Bearer" min:"1" type:"string" required:"true"` + + // An encrypted token originating from the interactive message of a ShowView + // block operation. Represents the desired view. + // + // ViewToken is a required field + ViewToken *string `location:"uri" locationName:"ViewToken" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeViewInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeViewInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeViewInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeViewInput"} + if s.ConnectionToken == nil { + invalidParams.Add(request.NewErrParamRequired("ConnectionToken")) + } + if s.ConnectionToken != nil && len(*s.ConnectionToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ConnectionToken", 1)) + } + if s.ViewToken == nil { + invalidParams.Add(request.NewErrParamRequired("ViewToken")) + } + if s.ViewToken != nil && len(*s.ViewToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ViewToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConnectionToken sets the ConnectionToken field's value. +func (s *DescribeViewInput) SetConnectionToken(v string) *DescribeViewInput { + s.ConnectionToken = &v + return s +} + +// SetViewToken sets the ViewToken field's value. +func (s *DescribeViewInput) SetViewToken(v string) *DescribeViewInput { + s.ViewToken = &v + return s +} + +type DescribeViewOutput struct { + _ struct{} `type:"structure"` + + // A view resource object. Contains metadata and content necessary to render + // the view. + View *View `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeViewOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeViewOutput) GoString() string { + return s.String() +} + +// SetView sets the View field's value. +func (s *DescribeViewOutput) SetView(v *View) *DescribeViewOutput { + s.View = v + return s +} + type DisconnectParticipantInput struct { _ struct{} `type:"structure"` @@ -1970,6 +2162,76 @@ func (s *Receipt) SetRecipientParticipantId(v string) *Receipt { return s } +// The resource was not found. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` + + // The identifier of the resource. + ResourceId *string `type:"string"` + + // The type of Amazon Connect resource. + ResourceType *string `type:"string" enum:"ResourceType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + type SendEventInput struct { _ struct{} `type:"structure"` @@ -2733,6 +2995,140 @@ func (s *ValidationException) RequestID() string { return s.RespMetadata.RequestID } +// A view resource object. Contains metadata and content necessary to render +// the view. +type View struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the view. + Arn *string `type:"string"` + + // View content containing all content necessary to render a view except for + // runtime input data. + Content *ViewContent `type:"structure"` + + // The identifier of the view. + Id *string `min:"1" type:"string"` + + // The name of the view. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by View's + // String and GoString methods. + Name *string `min:"1" type:"string" sensitive:"true"` + + // The current version of the view. + Version *int64 `type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s View) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s View) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *View) SetArn(v string) *View { + s.Arn = &v + return s +} + +// SetContent sets the Content field's value. +func (s *View) SetContent(v *ViewContent) *View { + s.Content = v + return s +} + +// SetId sets the Id field's value. +func (s *View) SetId(v string) *View { + s.Id = &v + return s +} + +// SetName sets the Name field's value. +func (s *View) SetName(v string) *View { + s.Name = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *View) SetVersion(v int64) *View { + s.Version = &v + return s +} + +// View content containing all content necessary to render a view except for +// runtime input data. +type ViewContent struct { + _ struct{} `type:"structure"` + + // A list of actions possible from the view + Actions []*string `type:"list"` + + // The schema representing the input data that the view template must be supplied + // to render. + // + // InputSchema is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ViewContent's + // String and GoString methods. + InputSchema *string `type:"string" sensitive:"true"` + + // The view template representing the structure of the view. + // + // Template is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ViewContent's + // String and GoString methods. + Template *string `type:"string" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ViewContent) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ViewContent) GoString() string { + return s.String() +} + +// SetActions sets the Actions field's value. +func (s *ViewContent) SetActions(v []*string) *ViewContent { + s.Actions = v + return s +} + +// SetInputSchema sets the InputSchema field's value. +func (s *ViewContent) SetInputSchema(v string) *ViewContent { + s.InputSchema = &v + return s +} + +// SetTemplate sets the Template field's value. +func (s *ViewContent) SetTemplate(v string) *ViewContent { + s.Template = &v + return s +} + // The websocket for the participant's connection. type Websocket struct { _ struct{} `type:"structure"` @@ -2878,6 +3274,9 @@ const ( // ParticipantRoleSystem is a ParticipantRole enum value ParticipantRoleSystem = "SYSTEM" + + // ParticipantRoleCustomBot is a ParticipantRole enum value + ParticipantRoleCustomBot = "CUSTOM_BOT" ) // ParticipantRole_Values returns all elements of the ParticipantRole enum @@ -2886,6 +3285,43 @@ func ParticipantRole_Values() []string { ParticipantRoleAgent, ParticipantRoleCustomer, ParticipantRoleSystem, + ParticipantRoleCustomBot, + } +} + +const ( + // ResourceTypeContact is a ResourceType enum value + ResourceTypeContact = "CONTACT" + + // ResourceTypeContactFlow is a ResourceType enum value + ResourceTypeContactFlow = "CONTACT_FLOW" + + // ResourceTypeInstance is a ResourceType enum value + ResourceTypeInstance = "INSTANCE" + + // ResourceTypeParticipant is a ResourceType enum value + ResourceTypeParticipant = "PARTICIPANT" + + // ResourceTypeHierarchyLevel is a ResourceType enum value + ResourceTypeHierarchyLevel = "HIERARCHY_LEVEL" + + // ResourceTypeHierarchyGroup is a ResourceType enum value + ResourceTypeHierarchyGroup = "HIERARCHY_GROUP" + + // ResourceTypeUser is a ResourceType enum value + ResourceTypeUser = "USER" +) + +// ResourceType_Values returns all elements of the ResourceType enum +func ResourceType_Values() []string { + return []string{ + ResourceTypeContact, + ResourceTypeContactFlow, + ResourceTypeInstance, + ResourceTypeParticipant, + ResourceTypeHierarchyLevel, + ResourceTypeHierarchyGroup, + ResourceTypeUser, } } diff --git a/service/connectparticipant/connectparticipantiface/interface.go b/service/connectparticipant/connectparticipantiface/interface.go index 65a79241e33..ffaf7886699 100644 --- a/service/connectparticipant/connectparticipantiface/interface.go +++ b/service/connectparticipant/connectparticipantiface/interface.go @@ -68,6 +68,10 @@ type ConnectParticipantAPI interface { CreateParticipantConnectionWithContext(aws.Context, *connectparticipant.CreateParticipantConnectionInput, ...request.Option) (*connectparticipant.CreateParticipantConnectionOutput, error) CreateParticipantConnectionRequest(*connectparticipant.CreateParticipantConnectionInput) (*request.Request, *connectparticipant.CreateParticipantConnectionOutput) + DescribeView(*connectparticipant.DescribeViewInput) (*connectparticipant.DescribeViewOutput, error) + DescribeViewWithContext(aws.Context, *connectparticipant.DescribeViewInput, ...request.Option) (*connectparticipant.DescribeViewOutput, error) + DescribeViewRequest(*connectparticipant.DescribeViewInput) (*request.Request, *connectparticipant.DescribeViewOutput) + DisconnectParticipant(*connectparticipant.DisconnectParticipantInput) (*connectparticipant.DisconnectParticipantOutput, error) DisconnectParticipantWithContext(aws.Context, *connectparticipant.DisconnectParticipantInput, ...request.Option) (*connectparticipant.DisconnectParticipantOutput, error) DisconnectParticipantRequest(*connectparticipant.DisconnectParticipantInput) (*request.Request, *connectparticipant.DisconnectParticipantOutput) diff --git a/service/connectparticipant/errors.go b/service/connectparticipant/errors.go index a84b7d90dd0..8880b714425 100644 --- a/service/connectparticipant/errors.go +++ b/service/connectparticipant/errors.go @@ -27,6 +27,12 @@ const ( // service. ErrCodeInternalServerException = "InternalServerException" + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The resource was not found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + // ErrCodeServiceQuotaExceededException for service response error code // "ServiceQuotaExceededException". // @@ -50,6 +56,7 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "AccessDeniedException": newErrorAccessDeniedException, "ConflictException": newErrorConflictException, "InternalServerException": newErrorInternalServerException, + "ResourceNotFoundException": newErrorResourceNotFoundException, "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, "ThrottlingException": newErrorThrottlingException, "ValidationException": newErrorValidationException, diff --git a/service/customerprofiles/api.go b/service/customerprofiles/api.go index 58a14d48d34..429ec871cbd 100644 --- a/service/customerprofiles/api.go +++ b/service/customerprofiles/api.go @@ -5172,7 +5172,7 @@ func (s *AdditionalSearchKey) SetValues(v []*string) *AdditionalSearchKey { // A generic address associated with the customer that is not mailing, shipping, // or billing. type Address struct { - _ struct{} `type:"structure"` + _ struct{} `type:"structure" sensitive:"true"` // The first line of a customer address. Address1 *string `min:"1" type:"string"` @@ -5334,8 +5334,12 @@ type AppflowIntegration struct { // the source, Amazon AppFlow. Customer Profiles uses this information to create // an AppFlow flow on behalf of customers. // + // FlowDefinition is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AppflowIntegration's + // String and GoString methods. + // // FlowDefinition is a required field - FlowDefinition *FlowDefinition `type:"structure" required:"true"` + FlowDefinition *FlowDefinition `type:"structure" required:"true" sensitive:"true"` } // String returns the string representation. @@ -5626,7 +5630,7 @@ func (s *AppflowIntegrationWorkflowStep) SetStatus(v string) *AppflowIntegration // Mathematical expression and a list of attribute items specified in that expression. type AttributeDetails struct { - _ struct{} `type:"structure"` + _ struct{} `type:"structure" sensitive:"true"` // A list of attribute items specified in the mathematical expression. // @@ -6094,7 +6098,7 @@ func (s *Batch) SetStartTime(v time.Time) *Batch { // The conditions including range, object count, and threshold for the calculated // attribute. type Conditions struct { - _ struct{} `type:"structure"` + _ struct{} `type:"structure" sensitive:"true"` // The number of profile objects used for the calculated attribute. ObjectCount *int64 `min:"1" type:"integer"` @@ -6355,8 +6359,12 @@ type CreateCalculatedAttributeDefinitionInput struct { // Mathematical expression and a list of attribute items specified in that expression. // + // AttributeDetails is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateCalculatedAttributeDefinitionInput's + // String and GoString methods. + // // AttributeDetails is a required field - AttributeDetails *AttributeDetails `type:"structure" required:"true"` + AttributeDetails *AttributeDetails `type:"structure" required:"true" sensitive:"true"` // The unique name of the calculated attribute. // @@ -6365,7 +6373,11 @@ type CreateCalculatedAttributeDefinitionInput struct { // The conditions including range, object count, and threshold for the calculated // attribute. - Conditions *Conditions `type:"structure"` + // + // Conditions is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateCalculatedAttributeDefinitionInput's + // String and GoString methods. + Conditions *Conditions `type:"structure" sensitive:"true"` // The description of the calculated attribute. Description *string `min:"1" type:"string"` @@ -6380,8 +6392,12 @@ type CreateCalculatedAttributeDefinitionInput struct { // The aggregation operation to perform for the calculated attribute. // + // Statistic is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateCalculatedAttributeDefinitionInput's + // String and GoString methods. + // // Statistic is a required field - Statistic *string `type:"string" required:"true" enum:"Statistic"` + Statistic *string `type:"string" required:"true" enum:"Statistic" sensitive:"true"` // The tags used to organize, track, or control access for this resource. Tags map[string]*string `min:"1" type:"map"` @@ -6504,14 +6520,22 @@ type CreateCalculatedAttributeDefinitionOutput struct { _ struct{} `type:"structure"` // Mathematical expression and a list of attribute items specified in that expression. - AttributeDetails *AttributeDetails `type:"structure"` + // + // AttributeDetails is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateCalculatedAttributeDefinitionOutput's + // String and GoString methods. + AttributeDetails *AttributeDetails `type:"structure" sensitive:"true"` // The unique name of the calculated attribute. CalculatedAttributeName *string `min:"1" type:"string"` // The conditions including range, object count, and threshold for the calculated // attribute. - Conditions *Conditions `type:"structure"` + // + // Conditions is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateCalculatedAttributeDefinitionOutput's + // String and GoString methods. + Conditions *Conditions `type:"structure" sensitive:"true"` // The timestamp of when the calculated attribute definition was created. CreatedAt *time.Time `type:"timestamp"` @@ -6527,7 +6551,11 @@ type CreateCalculatedAttributeDefinitionOutput struct { LastUpdatedAt *time.Time `type:"timestamp"` // The aggregation operation to perform for the calculated attribute. - Statistic *string `type:"string" enum:"Statistic"` + // + // Statistic is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateCalculatedAttributeDefinitionOutput's + // String and GoString methods. + Statistic *string `type:"string" enum:"Statistic" sensitive:"true"` // The tags used to organize, track, or control access for this resource. Tags map[string]*string `min:"1" type:"map"` @@ -7186,32 +7214,68 @@ type CreateProfileInput struct { _ struct{} `type:"structure"` // A unique account number that you have given to the customer. - AccountNumber *string `min:"1" type:"string"` + // + // AccountNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + AccountNumber *string `min:"1" type:"string" sensitive:"true"` // Any additional information relevant to the customer’s profile. - AdditionalInformation *string `min:"1" type:"string"` + // + // AdditionalInformation is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + AdditionalInformation *string `min:"1" type:"string" sensitive:"true"` // A generic address associated with the customer that is not mailing, shipping, // or billing. - Address *Address `type:"structure"` + // + // Address is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + Address *Address `type:"structure" sensitive:"true"` // A key value pair of attributes of a customer profile. - Attributes map[string]*string `type:"map"` + // + // Attributes is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + Attributes map[string]*string `type:"map" sensitive:"true"` // The customer’s billing address. - BillingAddress *Address `type:"structure"` + // + // BillingAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + BillingAddress *Address `type:"structure" sensitive:"true"` // The customer’s birth date. - BirthDate *string `min:"1" type:"string"` + // + // BirthDate is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + BirthDate *string `min:"1" type:"string" sensitive:"true"` // The customer’s business email address. - BusinessEmailAddress *string `min:"1" type:"string"` + // + // BusinessEmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + BusinessEmailAddress *string `min:"1" type:"string" sensitive:"true"` // The name of the customer’s business. - BusinessName *string `min:"1" type:"string"` + // + // BusinessName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + BusinessName *string `min:"1" type:"string" sensitive:"true"` // The customer’s business phone number. - BusinessPhoneNumber *string `min:"1" type:"string"` + // + // BusinessPhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + BusinessPhoneNumber *string `min:"1" type:"string" sensitive:"true"` // The unique name of the domain. // @@ -7220,47 +7284,103 @@ type CreateProfileInput struct { // The customer’s email address, which has not been specified as a personal // or business address. - EmailAddress *string `min:"1" type:"string"` + // + // EmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + EmailAddress *string `min:"1" type:"string" sensitive:"true"` // The customer’s first name. - FirstName *string `min:"1" type:"string"` + // + // FirstName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + FirstName *string `min:"1" type:"string" sensitive:"true"` // The gender with which the customer identifies. - Gender *string `deprecated:"true" type:"string" enum:"Gender"` + // + // Gender is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + Gender *string `deprecated:"true" type:"string" enum:"Gender" sensitive:"true"` // An alternative to Gender which accepts any string as input. - GenderString *string `min:"1" type:"string"` + // + // GenderString is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + GenderString *string `min:"1" type:"string" sensitive:"true"` // The customer’s home phone number. - HomePhoneNumber *string `min:"1" type:"string"` + // + // HomePhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + HomePhoneNumber *string `min:"1" type:"string" sensitive:"true"` // The customer’s last name. - LastName *string `min:"1" type:"string"` + // + // LastName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + LastName *string `min:"1" type:"string" sensitive:"true"` // The customer’s mailing address. - MailingAddress *Address `type:"structure"` + // + // MailingAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + MailingAddress *Address `type:"structure" sensitive:"true"` // The customer’s middle name. - MiddleName *string `min:"1" type:"string"` + // + // MiddleName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + MiddleName *string `min:"1" type:"string" sensitive:"true"` // The customer’s mobile phone number. - MobilePhoneNumber *string `min:"1" type:"string"` + // + // MobilePhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + MobilePhoneNumber *string `min:"1" type:"string" sensitive:"true"` // The type of profile used to describe the customer. - PartyType *string `deprecated:"true" type:"string" enum:"PartyType"` + // + // PartyType is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + PartyType *string `deprecated:"true" type:"string" enum:"PartyType" sensitive:"true"` // An alternative to PartyType which accepts any string as input. - PartyTypeString *string `min:"1" type:"string"` + // + // PartyTypeString is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + PartyTypeString *string `min:"1" type:"string" sensitive:"true"` // The customer’s personal email address. - PersonalEmailAddress *string `min:"1" type:"string"` + // + // PersonalEmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + PersonalEmailAddress *string `min:"1" type:"string" sensitive:"true"` // The customer’s phone number, which has not been specified as a mobile, // home, or business number. - PhoneNumber *string `min:"1" type:"string"` + // + // PhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + PhoneNumber *string `min:"1" type:"string" sensitive:"true"` // The customer’s shipping address. - ShippingAddress *Address `type:"structure"` + // + // ShippingAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateProfileInput's + // String and GoString methods. + ShippingAddress *Address `type:"structure" sensitive:"true"` } // String returns the string representation. @@ -9011,7 +9131,7 @@ func (s *FieldSourceProfileIds) SetShippingAddress(v string) *FieldSourceProfile // the source, Amazon AppFlow. Customer Profiles uses this information to create // an AppFlow flow on behalf of customers. type FlowDefinition struct { - _ struct{} `type:"structure"` + _ struct{} `type:"structure" sensitive:"true"` // A description of the flow you want to create. Description *string `type:"string"` @@ -9420,14 +9540,22 @@ type GetCalculatedAttributeDefinitionOutput struct { _ struct{} `type:"structure"` // Mathematical expression and a list of attribute items specified in that expression. - AttributeDetails *AttributeDetails `type:"structure"` + // + // AttributeDetails is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetCalculatedAttributeDefinitionOutput's + // String and GoString methods. + AttributeDetails *AttributeDetails `type:"structure" sensitive:"true"` // The unique name of the calculated attribute. CalculatedAttributeName *string `min:"1" type:"string"` // The conditions including range, object count, and threshold for the calculated // attribute. - Conditions *Conditions `type:"structure"` + // + // Conditions is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetCalculatedAttributeDefinitionOutput's + // String and GoString methods. + Conditions *Conditions `type:"structure" sensitive:"true"` // The timestamp of when the calculated attribute definition was created. CreatedAt *time.Time `type:"timestamp"` @@ -9443,7 +9571,11 @@ type GetCalculatedAttributeDefinitionOutput struct { LastUpdatedAt *time.Time `type:"timestamp"` // The aggregation operation to perform for the calculated attribute. - Statistic *string `type:"string" enum:"Statistic"` + // + // Statistic is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetCalculatedAttributeDefinitionOutput's + // String and GoString methods. + Statistic *string `type:"string" enum:"Statistic" sensitive:"true"` // The tags used to organize, track, or control access for this resource. Tags map[string]*string `min:"1" type:"map"` @@ -10612,8 +10744,12 @@ type GetProfileObjectTypeOutput struct { // The description of the profile object type. // + // Description is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetProfileObjectTypeOutput's + // String and GoString methods. + // // Description is a required field - Description *string `min:"1" type:"string" required:"true"` + Description *string `min:"1" type:"string" required:"true" sensitive:"true"` // The customer-provided key to encrypt the profile object that will be created // in this profile object type. @@ -10623,10 +10759,18 @@ type GetProfileObjectTypeOutput struct { ExpirationDays *int64 `min:"1" type:"integer"` // A map of the name and ObjectType field. - Fields map[string]*ObjectTypeField `type:"map"` + // + // Fields is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetProfileObjectTypeOutput's + // String and GoString methods. + Fields map[string]*ObjectTypeField `type:"map" sensitive:"true"` // A list of unique keys that can be used to map data to the profile. - Keys map[string][]*ObjectTypeKey `type:"map"` + // + // Keys is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetProfileObjectTypeOutput's + // String and GoString methods. + Keys map[string][]*ObjectTypeKey `type:"map" sensitive:"true"` // The timestamp of when the domain was most recently edited. LastUpdatedAt *time.Time `type:"timestamp"` @@ -10797,10 +10941,18 @@ type GetProfileObjectTypeTemplateOutput struct { AllowProfileCreation *bool `type:"boolean"` // A map of the name and ObjectType field. - Fields map[string]*ObjectTypeField `type:"map"` + // + // Fields is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetProfileObjectTypeTemplateOutput's + // String and GoString methods. + Fields map[string]*ObjectTypeField `type:"map" sensitive:"true"` // A list of unique keys that can be used to map data to the profile. - Keys map[string][]*ObjectTypeKey `type:"map"` + // + // Keys is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetProfileObjectTypeTemplateOutput's + // String and GoString methods. + Keys map[string][]*ObjectTypeKey `type:"map" sensitive:"true"` // The format of your sourceLastUpdatedTimestamp that was previously set up. SourceLastUpdatedTimestampFormat *string `min:"1" type:"string"` @@ -13192,7 +13344,11 @@ type ListProfileObjectTypesOutput struct { _ struct{} `type:"structure"` // The list of ListProfileObjectTypes instances. - Items []*ListProfileObjectTypeItem `type:"list"` + // + // Items is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ListProfileObjectTypesOutput's + // String and GoString methods. + Items []*ListProfileObjectTypeItem `type:"list" sensitive:"true"` // Identifies the next page of results to return. NextToken *string `min:"1" type:"string"` @@ -13352,7 +13508,11 @@ type ListProfileObjectsItem struct { _ struct{} `type:"structure"` // A JSON representation of a ProfileObject that belongs to a profile. - Object *string `min:"1" type:"string"` + // + // Object is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ListProfileObjectsItem's + // String and GoString methods. + Object *string `min:"1" type:"string" sensitive:"true"` // Specifies the kind of object being added to a profile, such as "Salesforce-Account." ObjectTypeName *string `min:"1" type:"string"` @@ -14527,39 +14687,83 @@ type Profile struct { _ struct{} `type:"structure"` // A unique account number that you have given to the customer. - AccountNumber *string `min:"1" type:"string"` + // + // AccountNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + AccountNumber *string `min:"1" type:"string" sensitive:"true"` // Any additional information relevant to the customer’s profile. - AdditionalInformation *string `min:"1" type:"string"` + // + // AdditionalInformation is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + AdditionalInformation *string `min:"1" type:"string" sensitive:"true"` // A generic address associated with the customer that is not mailing, shipping, // or billing. - Address *Address `type:"structure"` + // + // Address is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + Address *Address `type:"structure" sensitive:"true"` // A key value pair of attributes of a customer profile. - Attributes map[string]*string `type:"map"` + // + // Attributes is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + Attributes map[string]*string `type:"map" sensitive:"true"` // The customer’s billing address. - BillingAddress *Address `type:"structure"` + // + // BillingAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + BillingAddress *Address `type:"structure" sensitive:"true"` // The customer’s birth date. - BirthDate *string `min:"1" type:"string"` + // + // BirthDate is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + BirthDate *string `min:"1" type:"string" sensitive:"true"` // The customer’s business email address. - BusinessEmailAddress *string `min:"1" type:"string"` + // + // BusinessEmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + BusinessEmailAddress *string `min:"1" type:"string" sensitive:"true"` // The name of the customer’s business. - BusinessName *string `min:"1" type:"string"` + // + // BusinessName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + BusinessName *string `min:"1" type:"string" sensitive:"true"` // The customer’s home phone number. - BusinessPhoneNumber *string `min:"1" type:"string"` + // + // BusinessPhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + BusinessPhoneNumber *string `min:"1" type:"string" sensitive:"true"` // The customer’s email address, which has not been specified as a personal // or business address. - EmailAddress *string `min:"1" type:"string"` + // + // EmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + EmailAddress *string `min:"1" type:"string" sensitive:"true"` // The customer’s first name. - FirstName *string `min:"1" type:"string"` + // + // FirstName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + FirstName *string `min:"1" type:"string" sensitive:"true"` // A list of items used to find a profile returned in a SearchProfiles (https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html) // response. An item is a key-value(s) pair that matches an attribute in the @@ -14585,44 +14789,92 @@ type Profile struct { FoundByItems []*FoundByKeyValue `min:"1" type:"list"` // The gender with which the customer identifies. - Gender *string `deprecated:"true" type:"string" enum:"Gender"` + // + // Gender is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + Gender *string `deprecated:"true" type:"string" enum:"Gender" sensitive:"true"` // An alternative to Gender which accepts any string as input. - GenderString *string `min:"1" type:"string"` + // + // GenderString is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + GenderString *string `min:"1" type:"string" sensitive:"true"` // The customer’s home phone number. - HomePhoneNumber *string `min:"1" type:"string"` + // + // HomePhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + HomePhoneNumber *string `min:"1" type:"string" sensitive:"true"` // The customer’s last name. - LastName *string `min:"1" type:"string"` + // + // LastName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + LastName *string `min:"1" type:"string" sensitive:"true"` // The customer’s mailing address. - MailingAddress *Address `type:"structure"` + // + // MailingAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + MailingAddress *Address `type:"structure" sensitive:"true"` // The customer’s middle name. - MiddleName *string `min:"1" type:"string"` + // + // MiddleName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + MiddleName *string `min:"1" type:"string" sensitive:"true"` // The customer’s mobile phone number. - MobilePhoneNumber *string `min:"1" type:"string"` + // + // MobilePhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + MobilePhoneNumber *string `min:"1" type:"string" sensitive:"true"` // The type of profile used to describe the customer. - PartyType *string `deprecated:"true" type:"string" enum:"PartyType"` + // + // PartyType is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + PartyType *string `deprecated:"true" type:"string" enum:"PartyType" sensitive:"true"` // An alternative to PartyType which accepts any string as input. - PartyTypeString *string `min:"1" type:"string"` + // + // PartyTypeString is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + PartyTypeString *string `min:"1" type:"string" sensitive:"true"` // The customer’s personal email address. - PersonalEmailAddress *string `min:"1" type:"string"` + // + // PersonalEmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + PersonalEmailAddress *string `min:"1" type:"string" sensitive:"true"` // The customer's phone number, which has not been specified as a mobile, home, // or business number. - PhoneNumber *string `min:"1" type:"string"` + // + // PhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + PhoneNumber *string `min:"1" type:"string" sensitive:"true"` // The unique identifier of a customer profile. ProfileId *string `type:"string"` // The customer’s shipping address. - ShippingAddress *Address `type:"structure"` + // + // ShippingAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Profile's + // String and GoString methods. + ShippingAddress *Address `type:"structure" sensitive:"true"` } // String returns the string representation. @@ -14803,7 +15055,11 @@ type PutIntegrationInput struct { // The configuration that controls how Customer Profiles retrieves data from // the source. - FlowDefinition *FlowDefinition `type:"structure"` + // + // FlowDefinition is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutIntegrationInput's + // String and GoString methods. + FlowDefinition *FlowDefinition `type:"structure" sensitive:"true"` // The name of the profile object type. ObjectTypeName *string `min:"1" type:"string"` @@ -15033,8 +15289,12 @@ type PutProfileObjectInput struct { // A string that is serialized from a JSON object. // + // Object is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutProfileObjectInput's + // String and GoString methods. + // // Object is a required field - Object *string `min:"1" type:"string" required:"true"` + Object *string `min:"1" type:"string" required:"true" sensitive:"true"` // The name of the profile object type. // @@ -15150,8 +15410,12 @@ type PutProfileObjectTypeInput struct { // Description of the profile object type. // + // Description is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutProfileObjectTypeInput's + // String and GoString methods. + // // Description is a required field - Description *string `min:"1" type:"string" required:"true"` + Description *string `min:"1" type:"string" required:"true" sensitive:"true"` // The unique name of the domain. // @@ -15166,10 +15430,18 @@ type PutProfileObjectTypeInput struct { ExpirationDays *int64 `min:"1" type:"integer"` // A map of the name and ObjectType field. - Fields map[string]*ObjectTypeField `type:"map"` + // + // Fields is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutProfileObjectTypeInput's + // String and GoString methods. + Fields map[string]*ObjectTypeField `type:"map" sensitive:"true"` // A list of unique keys that can be used to map data to the profile. - Keys map[string][]*ObjectTypeKey `type:"map"` + // + // Keys is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutProfileObjectTypeInput's + // String and GoString methods. + Keys map[string][]*ObjectTypeKey `type:"map" sensitive:"true"` // The name of the profile object type. // @@ -15341,8 +15613,12 @@ type PutProfileObjectTypeOutput struct { // Description of the profile object type. // + // Description is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutProfileObjectTypeOutput's + // String and GoString methods. + // // Description is a required field - Description *string `min:"1" type:"string" required:"true"` + Description *string `min:"1" type:"string" required:"true" sensitive:"true"` // The customer-provided key to encrypt the profile object that will be created // in this profile object type. @@ -15352,10 +15628,18 @@ type PutProfileObjectTypeOutput struct { ExpirationDays *int64 `min:"1" type:"integer"` // A map of the name and ObjectType field. - Fields map[string]*ObjectTypeField `type:"map"` + // + // Fields is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutProfileObjectTypeOutput's + // String and GoString methods. + Fields map[string]*ObjectTypeField `type:"map" sensitive:"true"` // A list of unique keys that can be used to map data to the profile. - Keys map[string][]*ObjectTypeKey `type:"map"` + // + // Keys is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutProfileObjectTypeOutput's + // String and GoString methods. + Keys map[string][]*ObjectTypeKey `type:"map" sensitive:"true"` // The timestamp of when the domain was most recently edited. LastUpdatedAt *time.Time `type:"timestamp"` @@ -17148,7 +17432,7 @@ func (s UntagResourceOutput) GoString() string { // Updates associated with the address properties of a customer profile. type UpdateAddress struct { - _ struct{} `type:"structure"` + _ struct{} `type:"structure" sensitive:"true"` // The first line of a customer address. Address1 *string `type:"string"` @@ -17269,7 +17553,11 @@ type UpdateCalculatedAttributeDefinitionInput struct { // The conditions including range, object count, and threshold for the calculated // attribute. - Conditions *Conditions `type:"structure"` + // + // Conditions is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateCalculatedAttributeDefinitionInput's + // String and GoString methods. + Conditions *Conditions `type:"structure" sensitive:"true"` // The description of the calculated attribute. Description *string `min:"1" type:"string"` @@ -17369,14 +17657,22 @@ type UpdateCalculatedAttributeDefinitionOutput struct { // The mathematical expression and a list of attribute items specified in that // expression. - AttributeDetails *AttributeDetails `type:"structure"` + // + // AttributeDetails is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateCalculatedAttributeDefinitionOutput's + // String and GoString methods. + AttributeDetails *AttributeDetails `type:"structure" sensitive:"true"` // The unique name of the calculated attribute. CalculatedAttributeName *string `min:"1" type:"string"` // The conditions including range, object count, and threshold for the calculated // attribute. - Conditions *Conditions `type:"structure"` + // + // Conditions is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateCalculatedAttributeDefinitionOutput's + // String and GoString methods. + Conditions *Conditions `type:"structure" sensitive:"true"` // The timestamp of when the calculated attribute definition was created. CreatedAt *time.Time `type:"timestamp"` @@ -17392,7 +17688,11 @@ type UpdateCalculatedAttributeDefinitionOutput struct { LastUpdatedAt *time.Time `type:"timestamp"` // The aggregation operation to perform for the calculated attribute. - Statistic *string `type:"string" enum:"Statistic"` + // + // Statistic is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateCalculatedAttributeDefinitionOutput's + // String and GoString methods. + Statistic *string `type:"string" enum:"Statistic" sensitive:"true"` // The tags used to organize, track, or control access for this resource. Tags map[string]*string `min:"1" type:"map"` @@ -17738,32 +18038,68 @@ type UpdateProfileInput struct { _ struct{} `type:"structure"` // A unique account number that you have given to the customer. - AccountNumber *string `type:"string"` + // + // AccountNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + AccountNumber *string `type:"string" sensitive:"true"` // Any additional information relevant to the customer’s profile. - AdditionalInformation *string `type:"string"` + // + // AdditionalInformation is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + AdditionalInformation *string `type:"string" sensitive:"true"` // A generic address associated with the customer that is not mailing, shipping, // or billing. - Address *UpdateAddress `type:"structure"` + // + // Address is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + Address *UpdateAddress `type:"structure" sensitive:"true"` // A key value pair of attributes of a customer profile. - Attributes map[string]*string `type:"map"` + // + // Attributes is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + Attributes map[string]*string `type:"map" sensitive:"true"` // The customer’s billing address. - BillingAddress *UpdateAddress `type:"structure"` + // + // BillingAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + BillingAddress *UpdateAddress `type:"structure" sensitive:"true"` // The customer’s birth date. - BirthDate *string `type:"string"` + // + // BirthDate is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + BirthDate *string `type:"string" sensitive:"true"` // The customer’s business email address. - BusinessEmailAddress *string `type:"string"` + // + // BusinessEmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + BusinessEmailAddress *string `type:"string" sensitive:"true"` // The name of the customer’s business. - BusinessName *string `type:"string"` + // + // BusinessName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + BusinessName *string `type:"string" sensitive:"true"` // The customer’s business phone number. - BusinessPhoneNumber *string `type:"string"` + // + // BusinessPhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + BusinessPhoneNumber *string `type:"string" sensitive:"true"` // The unique name of the domain. // @@ -17772,44 +18108,96 @@ type UpdateProfileInput struct { // The customer’s email address, which has not been specified as a personal // or business address. - EmailAddress *string `type:"string"` + // + // EmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + EmailAddress *string `type:"string" sensitive:"true"` // The customer’s first name. - FirstName *string `type:"string"` + // + // FirstName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + FirstName *string `type:"string" sensitive:"true"` // The gender with which the customer identifies. - Gender *string `deprecated:"true" type:"string" enum:"Gender"` + // + // Gender is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + Gender *string `deprecated:"true" type:"string" enum:"Gender" sensitive:"true"` // An alternative to Gender which accepts any string as input. - GenderString *string `type:"string"` + // + // GenderString is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + GenderString *string `type:"string" sensitive:"true"` // The customer’s home phone number. - HomePhoneNumber *string `type:"string"` + // + // HomePhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + HomePhoneNumber *string `type:"string" sensitive:"true"` // The customer’s last name. - LastName *string `type:"string"` + // + // LastName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + LastName *string `type:"string" sensitive:"true"` // The customer’s mailing address. - MailingAddress *UpdateAddress `type:"structure"` + // + // MailingAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + MailingAddress *UpdateAddress `type:"structure" sensitive:"true"` // The customer’s middle name. - MiddleName *string `type:"string"` + // + // MiddleName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + MiddleName *string `type:"string" sensitive:"true"` // The customer’s mobile phone number. - MobilePhoneNumber *string `type:"string"` + // + // MobilePhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + MobilePhoneNumber *string `type:"string" sensitive:"true"` // The type of profile used to describe the customer. - PartyType *string `deprecated:"true" type:"string" enum:"PartyType"` + // + // PartyType is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + PartyType *string `deprecated:"true" type:"string" enum:"PartyType" sensitive:"true"` // An alternative to PartyType which accepts any string as input. - PartyTypeString *string `type:"string"` + // + // PartyTypeString is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + PartyTypeString *string `type:"string" sensitive:"true"` // The customer’s personal email address. - PersonalEmailAddress *string `type:"string"` + // + // PersonalEmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + PersonalEmailAddress *string `type:"string" sensitive:"true"` // The customer’s phone number, which has not been specified as a mobile, // home, or business number. - PhoneNumber *string `type:"string"` + // + // PhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + PhoneNumber *string `type:"string" sensitive:"true"` // The unique identifier of a customer profile. // @@ -17817,7 +18205,11 @@ type UpdateProfileInput struct { ProfileId *string `type:"string" required:"true"` // The customer’s shipping address. - ShippingAddress *UpdateAddress `type:"structure"` + // + // ShippingAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateProfileInput's + // String and GoString methods. + ShippingAddress *UpdateAddress `type:"structure" sensitive:"true"` } // String returns the string representation. diff --git a/service/ecs/api.go b/service/ecs/api.go index 5973daf0f4a..a42fda1db48 100644 --- a/service/ecs/api.go +++ b/service/ecs/api.go @@ -3985,23 +3985,22 @@ func (c *ECS) PutAccountSettingRequest(input *PutAccountSettingInput) (req *requ // For more information, see Account Settings (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html) // 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 +// When you specify serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat, +// 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 you specify awsvpcTrunking, 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html) // in the Amazon Elastic Container Service Developer Guide. // -// When containerInsights is specified, the default setting indicating whether +// When you specify containerInsights, 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 @@ -4018,6 +4017,14 @@ func (c *ECS) PutAccountSettingRequest(input *PutAccountSettingInput) (req *requ // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/supported-iam-actions-tagging.html) // in the Amazon ECS Developer Guide. // +// When Amazon Web Services determines that a security or infrastructure update +// is needed for an Amazon ECS task hosted on Fargate, the tasks need to be +// stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod +// to configure the wait time to retire a Fargate task. For information about +// the Fargate tasks maintenance, see Amazon Web Services Fargate task maintenance +// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-maintenance.html) +// in the Amazon ECS Developer Guide. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -6877,7 +6884,7 @@ type AutoScalingGroupProvider struct { // AutoScalingGroupArn is a required field AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string" required:"true"` - // he managed scaling settings for the Auto Scaling group capacity provider. + // The managed scaling settings for the Auto Scaling group capacity provider. ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"` // The managed termination protection setting to use for the Auto Scaling group @@ -8961,6 +8968,8 @@ type ContainerDefinition struct { // maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) // and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). + // For example, you can configure net.ipv4.tcp_keepalive_time setting to maintain + // longer lived connections. // // We don't recommended that you specify network-related systemControls parameters // for multiple containers in a single task that also uses either the awsvpc @@ -8968,6 +8977,12 @@ type ContainerDefinition struct { // that's started last determines which systemControls parameters take effect. // For tasks that use the host network mode, it changes the container instance's // namespaced kernel parameters as well as the containers. + // + // This parameter is not supported for Windows containers. + // + // This parameter is only supported for tasks that are hosted on Fargate if + // the tasks are using platform version 1.4.0 or later (Linux). This isn't supported + // for Windows containers on Fargate. SystemControls []*SystemControl `locationName:"systemControls" type:"list"` // A list of ulimits to set in the container. If a ulimit value is specified @@ -9547,7 +9562,8 @@ type ContainerInstance struct { // is available for new tasks. RemainingResources []*Resource `locationName:"remainingResources" type:"list"` - // The number of tasks on the container instance that are in the RUNNING status. + // The number of tasks on the container instance that have a desired status + // (desiredStatus) of RUNNING. RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"` // The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED, @@ -18488,17 +18504,20 @@ func (s *ProxyConfiguration) SetType(v string) *ProxyConfiguration { type PutAccountSettingDefaultInput struct { _ struct{} `type:"structure"` - // 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. If tagResourceAuthorization is specified, - // the opt-in option for tagging resources on creation is affected. For information - // about the opt-in timeline, see Tagging authorization timeline (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#tag-resources) - // in the Amazon ECS Developer Guide. + // The resource name for which to modify the account setting. If you specify + // serviceLongArnFormat, the ARN for your Amazon ECS services is affected. If + // you specify taskLongArnFormat, the ARN and resource ID for your Amazon ECS + // tasks is affected. If you specify containerInstanceLongArnFormat, the ARN + // and resource ID for your Amazon ECS container instances is affected. If you + // specify awsvpcTrunking, the ENI limit for your Amazon ECS container instances + // is affected. If you specify containerInsights, the default setting for Amazon + // Web Services CloudWatch Container Insights for your clusters is affected. + // If you specify tagResourceAuthorization, the opt-in option for tagging resources + // on creation is affected. For information about the opt-in timeline, see Tagging + // authorization timeline (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#tag-resources) + // in the Amazon ECS Developer Guide. If you specify fargateTaskRetirementWaitPeriod, + // the default wait time to retire a Fargate task due to required maintenance + // 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 @@ -18506,12 +18525,31 @@ type PutAccountSettingDefaultInput struct { // Fargate Federal Information Processing Standard (FIPS) 140-2 compliance (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-fips-compliance.html) // in the Amazon Elastic Container Service Developer Guide. // + // When Amazon Web Services determines that a security or infrastructure update + // is needed for an Amazon ECS task hosted on Fargate, the tasks need to be + // stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod + // to set the wait time to retire a Fargate task to the default. For information + // about the Fargate tasks maintenance, see Amazon Web Services Fargate task + // maintenance (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-maintenance.html) + // in the Amazon ECS Developer Guide. + // // Name is a required field Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"` // The account setting value for the specified principal ARN. Accepted values // are enabled, disabled, on, and off. // + // When you specify fargateTaskRetirementWaitPeriod for the name, the following + // are the valid values: + // + // * 0 - immediately retire the tasks and patch Fargate There is no advanced + // notification. Your tasks are retired immediately, and Fargate is patched + // without any notification. + // + // * 7 -wait 7 calendar days to retire the tasks and patch Fargate + // + // * 14 - wait 14 calendar days to retire the tasks and patch Fargate + // // Value is a required field Value *string `locationName:"value" type:"string" required:"true"` } @@ -18597,18 +18635,19 @@ type PutAccountSettingInput struct { _ struct{} `type:"structure"` // 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, + // you specify serviceLongArnFormat, the ARN for your Amazon ECS services is + // affected. If you specify taskLongArnFormat, the ARN and resource ID for your + // Amazon ECS tasks is affected. If you specify containerInstanceLongArnFormat, // 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. If tagResourceAuthorization is specified, - // the opt-in option for tagging resources on creation is affected. For information + // If you specify awsvpcTrunking, the elastic network interface (ENI) limit + // for your Amazon ECS container instances is affected. If you specify containerInsights, + // the default setting for Amazon Web Services CloudWatch Container Insights + // for your clusters is affected. If you specify fargateFIPSMode, Fargate FIPS + // 140 compliance is affected. If you specify tagResourceAuthorization, the + // opt-in option for tagging resources on creation is affected. For information // about the opt-in timeline, see Tagging authorization timeline (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#tag-resources) - // in the Amazon ECS Developer Guide. + // in the Amazon ECS Developer Guide. If you specify fargateTaskRetirementWaitPeriod, + // the wait time to retire a Fargate task is affected. // // Name is a required field Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"` @@ -18619,6 +18658,8 @@ type PutAccountSettingInput struct { // overrides these settings. If this field is omitted, the setting is changed // only for the authenticated user. // + // You must use the root user when you set the Fargate wait time (fargateTaskRetirementWaitPeriod). + // // Federated users assume the account setting of the root user and can't have // explicit account settings set for them. PrincipalArn *string `locationName:"principalArn" type:"string"` @@ -18626,6 +18667,17 @@ type PutAccountSettingInput struct { // The account setting value for the specified principal ARN. Accepted values // are enabled, disabled, on, and off. // + // When you specify fargateTaskRetirementWaitPeriod for the name, the following + // are the valid values: + // + // * 0 - immediately retire the tasks and patch Fargate There is no advanced + // notification. Your tasks are retired immediately, and Fargate is patched + // without any notification. + // + // * 7 -wait 7 calendar days to retire the tasks and patch Fargate + // + // * 14 - wait 14 calendar days to retire the tasks and patch Fargate + // // Value is a required field Value *string `locationName:"value" type:"string" required:"true"` } @@ -19349,19 +19401,29 @@ type RegisterTaskDefinitionInput struct { NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"` // The process namespace to use for the containers in the task. The valid values - // are host or task. If host is specified, then all containers within the tasks - // that specified the host PID mode on the same container instance share the - // same process namespace with the host Amazon EC2 instance. If task is specified, - // all containers within the specified task share the same process namespace. - // If no value is specified, the default is a private namespace. For more information, - // see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid) + // are host or task. On Fargate for Linux containers, the only valid value is + // task. For example, monitoring sidecars might need pidMode to access information + // about other containers running in the same task. + // + // If host is specified, all containers within the tasks that specified the + // host PID mode on the same container instance share the same process namespace + // with the host Amazon EC2 instance. + // + // If task is specified, all containers within the specified task share the + // same process namespace. + // + // If no value is specified, the default is a private namespace for each container. + // For more information, see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid) // in the Docker run reference. // - // If the host PID mode is used, be aware that there is a heightened risk of - // undesired process namespace expose. For more information, see Docker security - // (https://docs.docker.com/engine/security/security/). + // If the host PID mode is used, there's a heightened risk of undesired process + // namespace exposure. For more information, see Docker security (https://docs.docker.com/engine/security/security/). // - // This parameter is not supported for Windows containers or tasks run on Fargate. + // This parameter is not supported for Windows containers. + // + // This parameter is only supported for tasks that are hosted on Fargate if + // the tasks are using platform version 1.4.0 or later (Linux). This isn't supported + // for Windows containers on Fargate. PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"` // An array of placement constraint objects to use for the task. You can specify @@ -22561,7 +22623,15 @@ type SystemControl struct { // The namespaced kernel parameter to set a value for. Namespace *string `locationName:"namespace" type:"string"` - // The value for the namespaced kernel parameter that's specified in namespace. + // The namespaced kernel parameter to set a value for. + // + // Valid IPC namespace values: "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" + // | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced", + // and Sysctls that start with "fs.mqueue.*" + // + // Valid network namespace values: Sysctls that start with "net.*" + // + // All of these values are supported by Fargate. Value *string `locationName:"value" type:"string"` } @@ -23603,19 +23673,29 @@ type TaskDefinition struct { NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"` // The process namespace to use for the containers in the task. The valid values - // are host or task. If host is specified, then all containers within the tasks - // that specified the host PID mode on the same container instance share the - // same process namespace with the host Amazon EC2 instance. If task is specified, - // all containers within the specified task share the same process namespace. - // If no value is specified, the default is a private namespace. For more information, - // see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid) + // are host or task. On Fargate for Linux containers, the only valid value is + // task. For example, monitoring sidecars might need pidMode to access information + // about other containers running in the same task. + // + // If host is specified, all containers within the tasks that specified the + // host PID mode on the same container instance share the same process namespace + // with the host Amazon EC2 instance. + // + // If task is specified, all containers within the specified task share the + // same process namespace. + // + // If no value is specified, the default is a private namespace for each container. + // For more information, see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid) // in the Docker run reference. // - // If the host PID mode is used, be aware that there is a heightened risk of - // undesired process namespace expose. For more information, see Docker security - // (https://docs.docker.com/engine/security/security/). + // If the host PID mode is used, there's a heightened risk of undesired process + // namespace exposure. For more information, see Docker security (https://docs.docker.com/engine/security/security/). // - // This parameter is not supported for Windows containers or tasks run on Fargate. + // This parameter is not supported for Windows containers. + // + // This parameter is only supported for tasks that are hosted on Fargate if + // the tasks are using platform version 1.4.0 or later (Linux). This isn't supported + // for Windows containers on Fargate. PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"` // An array of placement constraint objects to use for tasks. @@ -27151,6 +27231,9 @@ const ( // SettingNameTagResourceAuthorization is a SettingName enum value SettingNameTagResourceAuthorization = "tagResourceAuthorization" + + // SettingNameFargateTaskRetirementWaitPeriod is a SettingName enum value + SettingNameFargateTaskRetirementWaitPeriod = "fargateTaskRetirementWaitPeriod" ) // SettingName_Values returns all elements of the SettingName enum @@ -27163,6 +27246,7 @@ func SettingName_Values() []string { SettingNameContainerInsights, SettingNameFargateFipsmode, SettingNameTagResourceAuthorization, + SettingNameFargateTaskRetirementWaitPeriod, } } diff --git a/service/health/api.go b/service/health/api.go index 8de6db1adaa..c4daf44af11 100644 --- a/service/health/api.go +++ b/service/health/api.go @@ -544,6 +544,80 @@ func (c *Health) DescribeEntityAggregatesWithContext(ctx aws.Context, input *Des return out, req.Send() } +const opDescribeEntityAggregatesForOrganization = "DescribeEntityAggregatesForOrganization" + +// DescribeEntityAggregatesForOrganizationRequest generates a "aws/request.Request" representing the +// client's request for the DescribeEntityAggregatesForOrganization operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DescribeEntityAggregatesForOrganization for more information on using the DescribeEntityAggregatesForOrganization +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DescribeEntityAggregatesForOrganizationRequest method. +// req, resp := client.DescribeEntityAggregatesForOrganizationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/health-2016-08-04/DescribeEntityAggregatesForOrganization +func (c *Health) DescribeEntityAggregatesForOrganizationRequest(input *DescribeEntityAggregatesForOrganizationInput) (req *request.Request, output *DescribeEntityAggregatesForOrganizationOutput) { + op := &request.Operation{ + Name: opDescribeEntityAggregatesForOrganization, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeEntityAggregatesForOrganizationInput{} + } + + output = &DescribeEntityAggregatesForOrganizationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeEntityAggregatesForOrganization API operation for AWS Health APIs and Notifications. +// +// Returns a list of entity aggregates for your Organizations that are affected +// by each of the specified events. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Health APIs and Notifications's +// API operation DescribeEntityAggregatesForOrganization for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/health-2016-08-04/DescribeEntityAggregatesForOrganization +func (c *Health) DescribeEntityAggregatesForOrganization(input *DescribeEntityAggregatesForOrganizationInput) (*DescribeEntityAggregatesForOrganizationOutput, error) { + req, out := c.DescribeEntityAggregatesForOrganizationRequest(input) + return out, req.Send() +} + +// DescribeEntityAggregatesForOrganizationWithContext is the same as DescribeEntityAggregatesForOrganization with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeEntityAggregatesForOrganization for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Health) DescribeEntityAggregatesForOrganizationWithContext(ctx aws.Context, input *DescribeEntityAggregatesForOrganizationInput, opts ...request.Option) (*DescribeEntityAggregatesForOrganizationOutput, error) { + req, out := c.DescribeEntityAggregatesForOrganizationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeEventAggregates = "DescribeEventAggregates" // DescribeEventAggregatesRequest generates a "aws/request.Request" representing the @@ -1639,6 +1713,58 @@ func (c *Health) EnableHealthServiceAccessForOrganizationWithContext(ctx aws.Con return out, req.Send() } +// The number of entities in an account that are impacted by a specific event +// aggregated by the entity status codes. +type AccountEntityAggregate struct { + _ struct{} `type:"structure"` + + // The 12-digit Amazon Web Services account numbers that contains the affected + // entities. + AccountId *string `locationName:"accountId" type:"string"` + + // The number of entities that match the filter criteria for the specified events. + Count *int64 `locationName:"count" type:"integer"` + + // The number of affected entities aggregated by the entity status codes. + Statuses map[string]*int64 `locationName:"statuses" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccountEntityAggregate) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccountEntityAggregate) GoString() string { + return s.String() +} + +// SetAccountId sets the AccountId field's value. +func (s *AccountEntityAggregate) SetAccountId(v string) *AccountEntityAggregate { + s.AccountId = &v + return s +} + +// SetCount sets the Count field's value. +func (s *AccountEntityAggregate) SetCount(v int64) *AccountEntityAggregate { + s.Count = &v + return s +} + +// SetStatuses sets the Statuses field's value. +func (s *AccountEntityAggregate) SetStatuses(v map[string]*int64) *AccountEntityAggregate { + s.Statuses = v + return s +} + // Information about an entity that is affected by a Health event. type AffectedEntity struct { _ struct{} `type:"structure"` @@ -2021,10 +2147,14 @@ type DescribeAffectedEntitiesForOrganizationInput struct { // a pagination token value. NextToken *string `locationName:"nextToken" min:"4" type:"string"` + // A JSON set of elements including the awsAccountId, eventArn and a set of + // statusCodes. + OrganizationEntityAccountFilters []*EntityAccountFilter `locationName:"organizationEntityAccountFilters" min:"1" type:"list"` + // A JSON set of elements including the awsAccountId and the eventArn. // - // OrganizationEntityFilters is a required field - OrganizationEntityFilters []*EventAccountFilter `locationName:"organizationEntityFilters" min:"1" type:"list" required:"true"` + // Deprecated: This property is deprecated, use organizationEntityAccountFilters instead. + OrganizationEntityFilters []*EventAccountFilter `locationName:"organizationEntityFilters" min:"1" deprecated:"true" type:"list"` } // String returns the string representation. @@ -2057,12 +2187,22 @@ func (s *DescribeAffectedEntitiesForOrganizationInput) Validate() error { if s.NextToken != nil && len(*s.NextToken) < 4 { invalidParams.Add(request.NewErrParamMinLen("NextToken", 4)) } - if s.OrganizationEntityFilters == nil { - invalidParams.Add(request.NewErrParamRequired("OrganizationEntityFilters")) + if s.OrganizationEntityAccountFilters != nil && len(s.OrganizationEntityAccountFilters) < 1 { + invalidParams.Add(request.NewErrParamMinLen("OrganizationEntityAccountFilters", 1)) } if s.OrganizationEntityFilters != nil && len(s.OrganizationEntityFilters) < 1 { invalidParams.Add(request.NewErrParamMinLen("OrganizationEntityFilters", 1)) } + if s.OrganizationEntityAccountFilters != nil { + for i, v := range s.OrganizationEntityAccountFilters { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrganizationEntityAccountFilters", i), err.(request.ErrInvalidParams)) + } + } + } if s.OrganizationEntityFilters != nil { for i, v := range s.OrganizationEntityFilters { if v == nil { @@ -2098,6 +2238,12 @@ func (s *DescribeAffectedEntitiesForOrganizationInput) SetNextToken(v string) *D return s } +// SetOrganizationEntityAccountFilters sets the OrganizationEntityAccountFilters field's value. +func (s *DescribeAffectedEntitiesForOrganizationInput) SetOrganizationEntityAccountFilters(v []*EntityAccountFilter) *DescribeAffectedEntitiesForOrganizationInput { + s.OrganizationEntityAccountFilters = v + return s +} + // SetOrganizationEntityFilters sets the OrganizationEntityFilters field's value. func (s *DescribeAffectedEntitiesForOrganizationInput) SetOrganizationEntityFilters(v []*EventAccountFilter) *DescribeAffectedEntitiesForOrganizationInput { s.OrganizationEntityFilters = v @@ -2295,6 +2441,101 @@ func (s *DescribeAffectedEntitiesOutput) SetNextToken(v string) *DescribeAffecte return s } +type DescribeEntityAggregatesForOrganizationInput struct { + _ struct{} `type:"structure"` + + // A list of 12-digit Amazon Web Services account numbers that contains the + // affected entities. + AwsAccountIds []*string `locationName:"awsAccountIds" min:"1" type:"list"` + + // A list of event ARNs (unique identifiers). For example: "arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456", + // "arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101" + // + // EventArns is a required field + EventArns []*string `locationName:"eventArns" min:"1" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeEntityAggregatesForOrganizationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeEntityAggregatesForOrganizationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeEntityAggregatesForOrganizationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeEntityAggregatesForOrganizationInput"} + if s.AwsAccountIds != nil && len(s.AwsAccountIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AwsAccountIds", 1)) + } + if s.EventArns == nil { + invalidParams.Add(request.NewErrParamRequired("EventArns")) + } + if s.EventArns != nil && len(s.EventArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EventArns", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAwsAccountIds sets the AwsAccountIds field's value. +func (s *DescribeEntityAggregatesForOrganizationInput) SetAwsAccountIds(v []*string) *DescribeEntityAggregatesForOrganizationInput { + s.AwsAccountIds = v + return s +} + +// SetEventArns sets the EventArns field's value. +func (s *DescribeEntityAggregatesForOrganizationInput) SetEventArns(v []*string) *DescribeEntityAggregatesForOrganizationInput { + s.EventArns = v + return s +} + +type DescribeEntityAggregatesForOrganizationOutput struct { + _ struct{} `type:"structure"` + + // The list of entity aggregates for each of the specified accounts that are + // affected by each of the specified events. + OrganizationEntityAggregates []*OrganizationEntityAggregate `locationName:"organizationEntityAggregates" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeEntityAggregatesForOrganizationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeEntityAggregatesForOrganizationOutput) GoString() string { + return s.String() +} + +// SetOrganizationEntityAggregates sets the OrganizationEntityAggregates field's value. +func (s *DescribeEntityAggregatesForOrganizationOutput) SetOrganizationEntityAggregates(v []*OrganizationEntityAggregate) *DescribeEntityAggregatesForOrganizationOutput { + s.OrganizationEntityAggregates = v + return s +} + type DescribeEntityAggregatesInput struct { _ struct{} `type:"structure"` @@ -3261,6 +3502,81 @@ func (s EnableHealthServiceAccessForOrganizationOutput) GoString() string { return s.String() } +// A JSON set of elements including the awsAccountId, eventArn and a set of +// statusCodes. +type EntityAccountFilter struct { + _ struct{} `type:"structure"` + + // The 12-digit Amazon Web Services account numbers that contains the affected + // entities. + AwsAccountId *string `locationName:"awsAccountId" type:"string"` + + // The unique identifier for the event. The event ARN has the arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID + // format. + // + // For example, an event ARN might look like the following: + // + // arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456 + // + // EventArn is a required field + EventArn *string `locationName:"eventArn" type:"string" required:"true"` + + // A list of entity status codes. + StatusCodes []*string `locationName:"statusCodes" min:"1" type:"list" enum:"EntityStatusCode"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EntityAccountFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EntityAccountFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EntityAccountFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EntityAccountFilter"} + if s.EventArn == nil { + invalidParams.Add(request.NewErrParamRequired("EventArn")) + } + if s.StatusCodes != nil && len(s.StatusCodes) < 1 { + invalidParams.Add(request.NewErrParamMinLen("StatusCodes", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAwsAccountId sets the AwsAccountId field's value. +func (s *EntityAccountFilter) SetAwsAccountId(v string) *EntityAccountFilter { + s.AwsAccountId = &v + return s +} + +// SetEventArn sets the EventArn field's value. +func (s *EntityAccountFilter) SetEventArn(v string) *EntityAccountFilter { + s.EventArn = &v + return s +} + +// SetStatusCodes sets the StatusCodes field's value. +func (s *EntityAccountFilter) SetStatusCodes(v []*string) *EntityAccountFilter { + s.StatusCodes = v + return s +} + // The number of entities that are affected by one or more events. Returned // by the DescribeEntityAggregates (https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEntityAggregates.html) // operation. @@ -3277,6 +3593,9 @@ type EntityAggregate struct { // // arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456 EventArn *string `locationName:"eventArn" type:"string"` + + // The number of affected entities aggregated by the entity status codes. + Statuses map[string]*int64 `locationName:"statuses" type:"map"` } // String returns the string representation. @@ -3309,6 +3628,12 @@ func (s *EntityAggregate) SetEventArn(v string) *EntityAggregate { return s } +// SetStatuses sets the Statuses field's value. +func (s *EntityAggregate) SetStatuses(v map[string]*int64) *EntityAggregate { + s.Statuses = v + return s +} + // The values to use to filter results from the DescribeAffectedEntities (https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeAffectedEntities.html) // operation. type EntityFilter struct { @@ -4297,6 +4622,71 @@ func (s *OrganizationAffectedEntitiesErrorItem) SetEventArn(v string) *Organizat return s } +// The aggregate results of entities affected by the specified event in your +// organization. The results are aggregated by the entity status codes for the +// specified set of accountsIDs. +type OrganizationEntityAggregate struct { + _ struct{} `type:"structure"` + + // A list of entity aggregates for each of the specified accounts in your organization + // that are affected by a specific event. If there are no awsAccountIds provided + // in the request, this field will be empty in the response. + Accounts []*AccountEntityAggregate `locationName:"accounts" type:"list"` + + // The number of entities for the organization that match the filter criteria + // for the specified events. + Count *int64 `locationName:"count" type:"integer"` + + // A list of event ARNs (unique identifiers). For example: "arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456", + // "arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101" + EventArn *string `locationName:"eventArn" type:"string"` + + // The number of affected entities aggregated by the entitiy status codes. + Statuses map[string]*int64 `locationName:"statuses" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s OrganizationEntityAggregate) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s OrganizationEntityAggregate) GoString() string { + return s.String() +} + +// SetAccounts sets the Accounts field's value. +func (s *OrganizationEntityAggregate) SetAccounts(v []*AccountEntityAggregate) *OrganizationEntityAggregate { + s.Accounts = v + return s +} + +// SetCount sets the Count field's value. +func (s *OrganizationEntityAggregate) SetCount(v int64) *OrganizationEntityAggregate { + s.Count = &v + return s +} + +// SetEventArn sets the EventArn field's value. +func (s *OrganizationEntityAggregate) SetEventArn(v string) *OrganizationEntityAggregate { + s.EventArn = &v + return s +} + +// SetStatuses sets the Statuses field's value. +func (s *OrganizationEntityAggregate) SetStatuses(v map[string]*int64) *OrganizationEntityAggregate { + s.Statuses = v + return s +} + // Summary information about an event, returned by the DescribeEventsForOrganization // (https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEventsForOrganization.html) // operation. @@ -4849,6 +5239,12 @@ const ( // EntityStatusCodeUnknown is a EntityStatusCode enum value EntityStatusCodeUnknown = "UNKNOWN" + + // EntityStatusCodePending is a EntityStatusCode enum value + EntityStatusCodePending = "PENDING" + + // EntityStatusCodeResolved is a EntityStatusCode enum value + EntityStatusCodeResolved = "RESOLVED" ) // EntityStatusCode_Values returns all elements of the EntityStatusCode enum @@ -4857,6 +5253,8 @@ func EntityStatusCode_Values() []string { EntityStatusCodeImpaired, EntityStatusCodeUnimpaired, EntityStatusCodeUnknown, + EntityStatusCodePending, + EntityStatusCodeResolved, } } diff --git a/service/health/healthiface/interface.go b/service/health/healthiface/interface.go index 91a5fcff70b..9ad91d8704a 100644 --- a/service/health/healthiface/interface.go +++ b/service/health/healthiface/interface.go @@ -85,6 +85,10 @@ type HealthAPI interface { DescribeEntityAggregatesWithContext(aws.Context, *health.DescribeEntityAggregatesInput, ...request.Option) (*health.DescribeEntityAggregatesOutput, error) DescribeEntityAggregatesRequest(*health.DescribeEntityAggregatesInput) (*request.Request, *health.DescribeEntityAggregatesOutput) + DescribeEntityAggregatesForOrganization(*health.DescribeEntityAggregatesForOrganizationInput) (*health.DescribeEntityAggregatesForOrganizationOutput, error) + DescribeEntityAggregatesForOrganizationWithContext(aws.Context, *health.DescribeEntityAggregatesForOrganizationInput, ...request.Option) (*health.DescribeEntityAggregatesForOrganizationOutput, error) + DescribeEntityAggregatesForOrganizationRequest(*health.DescribeEntityAggregatesForOrganizationInput) (*request.Request, *health.DescribeEntityAggregatesForOrganizationOutput) + DescribeEventAggregates(*health.DescribeEventAggregatesInput) (*health.DescribeEventAggregatesOutput, error) DescribeEventAggregatesWithContext(aws.Context, *health.DescribeEventAggregatesInput, ...request.Option) (*health.DescribeEventAggregatesOutput, error) DescribeEventAggregatesRequest(*health.DescribeEventAggregatesInput) (*request.Request, *health.DescribeEventAggregatesOutput) diff --git a/service/ivs/api.go b/service/ivs/api.go index c90c5e1547b..47009676f7b 100644 --- a/service/ivs/api.go +++ b/service/ivs/api.go @@ -3559,51 +3559,8 @@ type Channel struct { // Channel type, which determines the allowable resolution and bitrate. If you // exceed the allowable input resolution or bitrate, the stream probably will - // disconnect immediately. Some types generate multiple qualities (renditions) - // from the original input; this automatically gives viewers the best experience - // for their devices and network conditions. Some types provide transcoded video; - // transcoding allows higher playback quality across a range of download speeds. - // Default: STANDARD. Valid values: - // - // * BASIC: Video is transmuxed: Amazon IVS delivers the original input quality - // to viewers. The viewer’s video-quality choice is limited to the original - // input. Input resolution can be up to 1080p and bitrate can be up to 1.5 - // Mbps for 480p and up to 3.5 Mbps for resolutions between 480p and 1080p. - // Original audio is passed through. - // - // * STANDARD: Video is transcoded: multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Transcoding allows higher playback - // quality across a range of download speeds. Resolution can be up to 1080p - // and bitrate can be up to 8.5 Mbps. Audio is transcoded only for renditions - // 360p and below; above that, audio is passed through. This is the default - // when you create a channel. - // - // * ADVANCED_SD: Video is transcoded; multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Input resolution can be up to - // 1080p and bitrate can be up to 8.5 Mbps; output is capped at SD quality - // (480p). You can select an optional transcode preset (see below). Audio - // for all renditions is transcoded, and an audio-only rendition is available. - // - // * ADVANCED_HD: Video is transcoded; multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Input resolution can be up to - // 1080p and bitrate can be up to 8.5 Mbps; output is capped at HD quality - // (720p). You can select an optional transcode preset (see below). Audio - // for all renditions is transcoded, and an audio-only rendition is available. - // - // Optional transcode presets (available for the ADVANCED types) allow you to - // trade off available download bandwidth and video quality, to optimize the - // viewing experience. There are two presets: - // - // * Constrained bandwidth delivery uses a lower bitrate for each quality - // level. Use it if you have low download bandwidth and/or simple video content - // (e.g., talking heads) - // - // * Higher bandwidth delivery uses a higher bitrate for each quality level. - // Use it if you have high download bandwidth and/or complex video content - // (e.g., flashes and quick scene changes). + // disconnect immediately. Default: STANDARD. For details, see Channel Types + // (https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/channel-types.html). Type *string `locationName:"type" type:"string" enum:"ChannelType"` } @@ -3799,51 +3756,8 @@ type ChannelSummary struct { // Channel type, which determines the allowable resolution and bitrate. If you // exceed the allowable input resolution or bitrate, the stream probably will - // disconnect immediately. Some types generate multiple qualities (renditions) - // from the original input; this automatically gives viewers the best experience - // for their devices and network conditions. Some types provide transcoded video; - // transcoding allows higher playback quality across a range of download speeds. - // Default: STANDARD. Valid values: - // - // * BASIC: Video is transmuxed: Amazon IVS delivers the original input quality - // to viewers. The viewer’s video-quality choice is limited to the original - // input. Input resolution can be up to 1080p and bitrate can be up to 1.5 - // Mbps for 480p and up to 3.5 Mbps for resolutions between 480p and 1080p. - // Original audio is passed through. - // - // * STANDARD: Video is transcoded: multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Transcoding allows higher playback - // quality across a range of download speeds. Resolution can be up to 1080p - // and bitrate can be up to 8.5 Mbps. Audio is transcoded only for renditions - // 360p and below; above that, audio is passed through. This is the default - // when you create a channel. - // - // * ADVANCED_SD: Video is transcoded; multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Input resolution can be up to - // 1080p and bitrate can be up to 8.5 Mbps; output is capped at SD quality - // (480p). You can select an optional transcode preset (see below). Audio - // for all renditions is transcoded, and an audio-only rendition is available. - // - // * ADVANCED_HD: Video is transcoded; multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Input resolution can be up to - // 1080p and bitrate can be up to 8.5 Mbps; output is capped at HD quality - // (720p). You can select an optional transcode preset (see below). Audio - // for all renditions is transcoded, and an audio-only rendition is available. - // - // Optional transcode presets (available for the ADVANCED types) allow you to - // trade off available download bandwidth and video quality, to optimize the - // viewing experience. There are two presets: - // - // * Constrained bandwidth delivery uses a lower bitrate for each quality - // level. Use it if you have low download bandwidth and/or simple video content - // (e.g., talking heads) - // - // * Higher bandwidth delivery uses a higher bitrate for each quality level. - // Use it if you have high download bandwidth and/or complex video content - // (e.g., flashes and quick scene changes). + // disconnect immediately. Default: STANDARD. For details, see Channel Types + // (https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/channel-types.html). Type *string `locationName:"type" type:"string" enum:"ChannelType"` } @@ -4022,51 +3936,8 @@ type CreateChannelInput struct { // Channel type, which determines the allowable resolution and bitrate. If you // exceed the allowable input resolution or bitrate, the stream probably will - // disconnect immediately. Some types generate multiple qualities (renditions) - // from the original input; this automatically gives viewers the best experience - // for their devices and network conditions. Some types provide transcoded video; - // transcoding allows higher playback quality across a range of download speeds. - // Default: STANDARD. Valid values: - // - // * BASIC: Video is transmuxed: Amazon IVS delivers the original input quality - // to viewers. The viewer’s video-quality choice is limited to the original - // input. Input resolution can be up to 1080p and bitrate can be up to 1.5 - // Mbps for 480p and up to 3.5 Mbps for resolutions between 480p and 1080p. - // Original audio is passed through. - // - // * STANDARD: Video is transcoded: multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Transcoding allows higher playback - // quality across a range of download speeds. Resolution can be up to 1080p - // and bitrate can be up to 8.5 Mbps. Audio is transcoded only for renditions - // 360p and below; above that, audio is passed through. This is the default - // when you create a channel. - // - // * ADVANCED_SD: Video is transcoded; multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Input resolution can be up to - // 1080p and bitrate can be up to 8.5 Mbps; output is capped at SD quality - // (480p). You can select an optional transcode preset (see below). Audio - // for all renditions is transcoded, and an audio-only rendition is available. - // - // * ADVANCED_HD: Video is transcoded; multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Input resolution can be up to - // 1080p and bitrate can be up to 8.5 Mbps; output is capped at HD quality - // (720p). You can select an optional transcode preset (see below). Audio - // for all renditions is transcoded, and an audio-only rendition is available. - // - // Optional transcode presets (available for the ADVANCED types) allow you to - // trade off available download bandwidth and video quality, to optimize the - // viewing experience. There are two presets: - // - // * Constrained bandwidth delivery uses a lower bitrate for each quality - // level. Use it if you have low download bandwidth and/or simple video content - // (e.g., talking heads) - // - // * Higher bandwidth delivery uses a higher bitrate for each quality level. - // Use it if you have high download bandwidth and/or complex video content - // (e.g., flashes and quick scene changes). + // disconnect immediately. Default: STANDARD. For details, see Channel Types + // (https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/channel-types.html). Type *string `locationName:"type" type:"string" enum:"ChannelType"` } @@ -8006,51 +7877,8 @@ type UpdateChannelInput struct { // Channel type, which determines the allowable resolution and bitrate. If you // exceed the allowable input resolution or bitrate, the stream probably will - // disconnect immediately. Some types generate multiple qualities (renditions) - // from the original input; this automatically gives viewers the best experience - // for their devices and network conditions. Some types provide transcoded video; - // transcoding allows higher playback quality across a range of download speeds. - // Default: STANDARD. Valid values: - // - // * BASIC: Video is transmuxed: Amazon IVS delivers the original input quality - // to viewers. The viewer’s video-quality choice is limited to the original - // input. Input resolution can be up to 1080p and bitrate can be up to 1.5 - // Mbps for 480p and up to 3.5 Mbps for resolutions between 480p and 1080p. - // Original audio is passed through. - // - // * STANDARD: Video is transcoded: multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Transcoding allows higher playback - // quality across a range of download speeds. Resolution can be up to 1080p - // and bitrate can be up to 8.5 Mbps. Audio is transcoded only for renditions - // 360p and below; above that, audio is passed through. This is the default - // when you create a channel. - // - // * ADVANCED_SD: Video is transcoded; multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Input resolution can be up to - // 1080p and bitrate can be up to 8.5 Mbps; output is capped at SD quality - // (480p). You can select an optional transcode preset (see below). Audio - // for all renditions is transcoded, and an audio-only rendition is available. - // - // * ADVANCED_HD: Video is transcoded; multiple qualities are generated from - // the original input, to automatically give viewers the best experience - // for their devices and network conditions. Input resolution can be up to - // 1080p and bitrate can be up to 8.5 Mbps; output is capped at HD quality - // (720p). You can select an optional transcode preset (see below). Audio - // for all renditions is transcoded, and an audio-only rendition is available. - // - // Optional transcode presets (available for the ADVANCED types) allow you to - // trade off available download bandwidth and video quality, to optimize the - // viewing experience. There are two presets: - // - // * Constrained bandwidth delivery uses a lower bitrate for each quality - // level. Use it if you have low download bandwidth and/or simple video content - // (e.g., talking heads) - // - // * Higher bandwidth delivery uses a higher bitrate for each quality level. - // Use it if you have high download bandwidth and/or complex video content - // (e.g., flashes and quick scene changes). + // disconnect immediately. Default: STANDARD. For details, see Channel Types + // (https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/channel-types.html). Type *string `locationName:"type" type:"string" enum:"ChannelType"` } diff --git a/service/managedgrafana/api.go b/service/managedgrafana/api.go index 612ddb3b764..0b43e8a4b57 100644 --- a/service/managedgrafana/api.go +++ b/service/managedgrafana/api.go @@ -4290,11 +4290,19 @@ type RoleValues struct { // A list of groups from the SAML assertion attribute to grant the Grafana Admin // role to. - Admin []*string `locationName:"admin" type:"list"` + // + // Admin is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RoleValues's + // String and GoString methods. + Admin []*string `locationName:"admin" type:"list" sensitive:"true"` // A list of groups from the SAML assertion attribute to grant the Grafana Editor // role to. - Editor []*string `locationName:"editor" type:"list"` + // + // Editor is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RoleValues's + // String and GoString methods. + Editor []*string `locationName:"editor" type:"list" sensitive:"true"` } // String returns the string representation. @@ -5780,7 +5788,7 @@ type VpcConfiguration struct { // workspace to connect. Duplicates not allowed. // // SubnetIds is a required field - SubnetIds []*string `locationName:"subnetIds" min:"1" type:"list" required:"true"` + SubnetIds []*string `locationName:"subnetIds" min:"2" type:"list" required:"true"` } // String returns the string representation. @@ -5813,8 +5821,8 @@ func (s *VpcConfiguration) Validate() error { if s.SubnetIds == nil { invalidParams.Add(request.NewErrParamRequired("SubnetIds")) } - if s.SubnetIds != nil && len(s.SubnetIds) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SubnetIds", 1)) + if s.SubnetIds != nil && len(s.SubnetIds) < 2 { + invalidParams.Add(request.NewErrParamMinLen("SubnetIds", 2)) } if invalidParams.Len() > 0 { diff --git a/service/paymentcryptographydata/api.go b/service/paymentcryptographydata/api.go index 17a8618c743..454b9dbf619 100644 --- a/service/paymentcryptographydata/api.go +++ b/service/paymentcryptographydata/api.go @@ -3060,9 +3060,7 @@ type EncryptDataOutput struct { // KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or // "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex // digits, of the resulting cryptogram. - // - // KeyCheckValue is a required field - KeyCheckValue *string `min:"4" type:"string" required:"true"` + KeyCheckValue *string `min:"4" type:"string"` } // String returns the string representation. @@ -3357,8 +3355,12 @@ type GenerateMacInput struct { // The data for which a MAC is under generation. // + // MessageData is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GenerateMacInput's + // String and GoString methods. + // // MessageData is a required field - MessageData *string `min:"2" type:"string" required:"true"` + MessageData *string `min:"2" type:"string" required:"true" sensitive:"true"` } // String returns the string representation. @@ -5897,8 +5899,12 @@ type TranslatePinDataInput struct { // The encrypted PIN block data that Amazon Web Services Payment Cryptography // translates. // + // EncryptedPinBlock is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by TranslatePinDataInput's + // String and GoString methods. + // // EncryptedPinBlock is a required field - EncryptedPinBlock *string `min:"16" type:"string" required:"true"` + EncryptedPinBlock *string `min:"16" type:"string" required:"true" sensitive:"true"` // The attributes and values to use for incoming DUKPT encryption key for PIN // block tranlation. @@ -6826,16 +6832,24 @@ type VerifyMacInput struct { // The MAC being verified. // + // Mac is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by VerifyMacInput's + // String and GoString methods. + // // Mac is a required field - Mac *string `min:"4" type:"string" required:"true"` + Mac *string `min:"4" type:"string" required:"true" sensitive:"true"` // The length of the MAC. MacLength *int64 `min:"4" type:"integer"` // The data on for which MAC is under verification. // + // MessageData is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by VerifyMacInput's + // String and GoString methods. + // // MessageData is a required field - MessageData *string `min:"2" type:"string" required:"true"` + MessageData *string `min:"2" type:"string" required:"true" sensitive:"true"` // The attributes and data values to use for MAC verification within Amazon // Web Services Payment Cryptography. diff --git a/service/sagemakerruntime/api.go b/service/sagemakerruntime/api.go index e1e2c300ed2..574c47bbd85 100644 --- a/service/sagemakerruntime/api.go +++ b/service/sagemakerruntime/api.go @@ -3,12 +3,22 @@ package sagemakerruntime import ( + "bytes" "fmt" + "io" + "sync" + "time" "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/client" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/eventstream" + "github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi" + "github.com/aws/aws-sdk-go/private/protocol/rest" + "github.com/aws/aws-sdk-go/private/protocol/restjson" ) const opInvokeEndpoint = "InvokeEndpoint" @@ -233,6 +243,291 @@ func (c *SageMakerRuntime) InvokeEndpointAsyncWithContext(ctx aws.Context, input return out, req.Send() } +const opInvokeEndpointWithResponseStream = "InvokeEndpointWithResponseStream" + +// InvokeEndpointWithResponseStreamRequest generates a "aws/request.Request" representing the +// client's request for the InvokeEndpointWithResponseStream operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See InvokeEndpointWithResponseStream for more information on using the InvokeEndpointWithResponseStream +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the InvokeEndpointWithResponseStreamRequest method. +// req, resp := client.InvokeEndpointWithResponseStreamRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.sagemaker-2017-05-13/InvokeEndpointWithResponseStream +func (c *SageMakerRuntime) InvokeEndpointWithResponseStreamRequest(input *InvokeEndpointWithResponseStreamInput) (req *request.Request, output *InvokeEndpointWithResponseStreamOutput) { + op := &request.Operation{ + Name: opInvokeEndpointWithResponseStream, + HTTPMethod: "POST", + HTTPPath: "/endpoints/{EndpointName}/invocations-response-stream", + } + + if input == nil { + input = &InvokeEndpointWithResponseStreamInput{} + } + + output = &InvokeEndpointWithResponseStreamOutput{} + req = c.newRequest(op, input, output) + + es := NewInvokeEndpointWithResponseStreamEventStream() + output.eventStream = es + + req.Handlers.Send.Swap(client.LogHTTPResponseHandler.Name, client.LogHTTPResponseHeaderHandler) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, rest.UnmarshalHandler) + req.Handlers.Unmarshal.PushBack(es.runOutputStream) + req.Handlers.Unmarshal.PushBack(es.runOnStreamPartClose) + return +} + +// InvokeEndpointWithResponseStream API operation for Amazon SageMaker Runtime. +// +// Invokes a model at the specified endpoint to return the inference response +// as a stream. The inference stream provides the response payload incrementally +// as a series of parts. Before you can get an inference stream, you must have +// access to a model that's deployed using Amazon SageMaker hosting services, +// and the container for that model must support inference streaming. +// +// For more information that can help you use this API, see the following sections +// in the Amazon SageMaker Developer Guide: +// +// - For information about how to add streaming support to a model, see How +// Containers Serve Requests (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-inference-code.html#your-algorithms-inference-code-how-containe-serves-requests). +// +// - For information about how to process the streaming response, see Invoke +// real-time endpoints (https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-test-endpoints.html). +// +// Amazon SageMaker strips all POST headers except those supported by the API. +// Amazon SageMaker might add additional headers. You should not rely on the +// behavior of headers outside those enumerated in the request syntax. +// +// Calls to InvokeEndpointWithResponseStream are authenticated by using Amazon +// Web Services Signature Version 4. For information, see Authenticating Requests +// (Amazon Web Services Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) +// in the Amazon S3 API Reference. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon SageMaker Runtime's +// API operation InvokeEndpointWithResponseStream for usage and error information. +// +// Returned Error Types: +// +// - InternalFailure +// An internal failure occurred. +// +// - ServiceUnavailable +// The service is unavailable. Try your call again. +// +// - ValidationError +// Inspect your request and try again. +// +// - ModelError +// Model (owned by the customer in the container) returned 4xx or 5xx error +// code. +// +// - ModelStreamError +// An error occurred while streaming the response body. This error can have +// the following error codes: +// +// ModelInvocationTimeExceeded +// +// The model failed to finish sending the response within the timeout period +// allowed by Amazon SageMaker. +// +// StreamBroken +// +// The Transmission Control Protocol (TCP) connection between the client and +// the model was reset or closed. +// +// - InternalStreamFailure +// The stream processing failed because of an unknown error, exception or failure. +// Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.sagemaker-2017-05-13/InvokeEndpointWithResponseStream +func (c *SageMakerRuntime) InvokeEndpointWithResponseStream(input *InvokeEndpointWithResponseStreamInput) (*InvokeEndpointWithResponseStreamOutput, error) { + req, out := c.InvokeEndpointWithResponseStreamRequest(input) + return out, req.Send() +} + +// InvokeEndpointWithResponseStreamWithContext is the same as InvokeEndpointWithResponseStream with the addition of +// the ability to pass a context and additional request options. +// +// See InvokeEndpointWithResponseStream for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *SageMakerRuntime) InvokeEndpointWithResponseStreamWithContext(ctx aws.Context, input *InvokeEndpointWithResponseStreamInput, opts ...request.Option) (*InvokeEndpointWithResponseStreamOutput, error) { + req, out := c.InvokeEndpointWithResponseStreamRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +var _ awserr.Error +var _ time.Time + +// InvokeEndpointWithResponseStreamEventStream provides the event stream handling for the InvokeEndpointWithResponseStream. +// +// For testing and mocking the event stream this type should be initialized via +// the NewInvokeEndpointWithResponseStreamEventStream constructor function. Using the functional options +// to pass in nested mock behavior. +type InvokeEndpointWithResponseStreamEventStream struct { + + // Reader is the EventStream reader for the ResponseStream + // events. This value is automatically set by the SDK when the API call is made + // Use this member when unit testing your code with the SDK to mock out the + // EventStream Reader. + // + // Must not be nil. + Reader ResponseStreamReader + + outputReader io.ReadCloser + + done chan struct{} + closeOnce sync.Once + err *eventstreamapi.OnceError +} + +// NewInvokeEndpointWithResponseStreamEventStream initializes an InvokeEndpointWithResponseStreamEventStream. +// This function should only be used for testing and mocking the InvokeEndpointWithResponseStreamEventStream +// stream within your application. +// +// The Reader member must be set before reading events from the stream. +// +// es := NewInvokeEndpointWithResponseStreamEventStream(func(o *InvokeEndpointWithResponseStreamEventStream){ +// es.Reader = myMockStreamReader +// }) +func NewInvokeEndpointWithResponseStreamEventStream(opts ...func(*InvokeEndpointWithResponseStreamEventStream)) *InvokeEndpointWithResponseStreamEventStream { + es := &InvokeEndpointWithResponseStreamEventStream{ + done: make(chan struct{}), + err: eventstreamapi.NewOnceError(), + } + + for _, fn := range opts { + fn(es) + } + + return es +} + +func (es *InvokeEndpointWithResponseStreamEventStream) runOnStreamPartClose(r *request.Request) { + if es.done == nil { + return + } + go es.waitStreamPartClose() + +} + +func (es *InvokeEndpointWithResponseStreamEventStream) waitStreamPartClose() { + var outputErrCh <-chan struct{} + if v, ok := es.Reader.(interface{ ErrorSet() <-chan struct{} }); ok { + outputErrCh = v.ErrorSet() + } + var outputClosedCh <-chan struct{} + if v, ok := es.Reader.(interface{ Closed() <-chan struct{} }); ok { + outputClosedCh = v.Closed() + } + + select { + case <-es.done: + case <-outputErrCh: + es.err.SetError(es.Reader.Err()) + es.Close() + case <-outputClosedCh: + if err := es.Reader.Err(); err != nil { + es.err.SetError(es.Reader.Err()) + } + es.Close() + } +} + +// Events returns a channel to read events from. +// +// These events are: +// +// - PayloadPart +// - ResponseStreamUnknownEvent +func (es *InvokeEndpointWithResponseStreamEventStream) Events() <-chan ResponseStreamEvent { + return es.Reader.Events() +} + +func (es *InvokeEndpointWithResponseStreamEventStream) runOutputStream(r *request.Request) { + var opts []func(*eventstream.Decoder) + if r.Config.Logger != nil && r.Config.LogLevel.Matches(aws.LogDebugWithEventStreamBody) { + opts = append(opts, eventstream.DecodeWithLogger(r.Config.Logger)) + } + + unmarshalerForEvent := unmarshalerForResponseStreamEvent{ + metadata: protocol.ResponseMetadata{ + StatusCode: r.HTTPResponse.StatusCode, + RequestID: r.RequestID, + }, + }.UnmarshalerForEventName + + decoder := eventstream.NewDecoder(r.HTTPResponse.Body, opts...) + eventReader := eventstreamapi.NewEventReader(decoder, + protocol.HandlerPayloadUnmarshal{ + Unmarshalers: r.Handlers.UnmarshalStream, + }, + unmarshalerForEvent, + ) + + es.outputReader = r.HTTPResponse.Body + es.Reader = newReadResponseStream(eventReader) +} + +// Close closes the stream. This will also cause the stream to be closed. +// Close must be called when done using the stream API. Not calling Close +// may result in resource leaks. +// +// You can use the closing of the Reader's Events channel to terminate your +// application's read from the API's stream. +func (es *InvokeEndpointWithResponseStreamEventStream) Close() (err error) { + es.closeOnce.Do(es.safeClose) + return es.Err() +} + +func (es *InvokeEndpointWithResponseStreamEventStream) safeClose() { + if es.done != nil { + close(es.done) + } + + es.Reader.Close() + if es.outputReader != nil { + es.outputReader.Close() + } +} + +// Err returns any error that occurred while reading or writing EventStream +// Events from the service API's response. Returns nil if there were no errors. +func (es *InvokeEndpointWithResponseStreamEventStream) Err() error { + if err := es.err.Err(); err != nil { + return err + } + if err := es.Reader.Err(); err != nil { + return err + } + + return nil +} + // Your request caused an exception with an internal dependency. Contact customer // support. type InternalDependencyException struct { @@ -362,10 +657,104 @@ func (s *InternalFailure) RequestID() string { return s.RespMetadata.RequestID } +// The stream processing failed because of an unknown error, exception or failure. +// Try your request again. +type InternalStreamFailure struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalStreamFailure) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalStreamFailure) GoString() string { + return s.String() +} + +// The InternalStreamFailure is and event in the ResponseStream group of events. +func (s *InternalStreamFailure) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the InternalStreamFailure value. +// This method is only used internally within the SDK's EventStream handling. +func (s *InternalStreamFailure) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *InternalStreamFailure) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +func newErrorInternalStreamFailure(v protocol.ResponseMetadata) error { + return &InternalStreamFailure{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalStreamFailure) Code() string { + return "InternalStreamFailure" +} + +// Message returns the exception's message. +func (s *InternalStreamFailure) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalStreamFailure) OrigErr() error { + return nil +} + +func (s *InternalStreamFailure) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalStreamFailure) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalStreamFailure) RequestID() string { + return s.RespMetadata.RequestID +} + type InvokeEndpointAsyncInput struct { _ struct{} `type:"structure" nopayload:"true"` - // The desired MIME type of the inference in the response. + // The desired MIME type of the inference response from the model container. Accept *string `location:"header" locationName:"X-Amzn-SageMaker-Accept" type:"string"` // The MIME type of the input data in the request body. @@ -395,7 +784,7 @@ type InvokeEndpointAsyncInput struct { CustomAttributes *string `location:"header" locationName:"X-Amzn-SageMaker-Custom-Attributes" type:"string" sensitive:"true"` // The name of the endpoint that you specified when you created the endpoint - // using the CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) + // using the CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html) // API. // // EndpointName is a required field @@ -570,7 +959,7 @@ func (s *InvokeEndpointAsyncOutput) SetOutputLocation(v string) *InvokeEndpointA type InvokeEndpointInput struct { _ struct{} `type:"structure" payload:"Body"` - // The desired MIME type of the inference in the response. + // The desired MIME type of the inference response from the model container. Accept *string `location:"header" locationName:"Accept" type:"string"` // Provides input data, in the format specified in the ContentType request header. @@ -595,7 +984,7 @@ type InvokeEndpointInput struct { // to provide an ID that you can use to track a request or to provide other // metadata that a service endpoint was programmed to process. The value must // consist of no more than 1024 visible US-ASCII characters as specified in - // Section 3.3.6. Field Value Components (https://tools.ietf.org/html/rfc7230#section-3.2.6) + // Section 3.3.6. Field Value Components (https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6) // of the Hypertext Transfer Protocol (HTTP/1.1). // // The code in your model is responsible for setting or updating any custom @@ -772,7 +1161,7 @@ type InvokeEndpointOutput struct { // Body is a required field Body []byte `type:"blob" required:"true" sensitive:"true"` - // The MIME type of the inference returned in the response body. + // The MIME type of the inference returned from the model container. ContentType *string `location:"header" locationName:"Content-Type" type:"string"` // Provides additional information in the response about the inference returned @@ -846,36 +1235,271 @@ func (s *InvokeEndpointOutput) SetInvokedProductionVariant(v string) *InvokeEndp return s } -// Model (owned by the customer in the container) returned 4xx or 5xx error -// code. -type ModelError struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - // The Amazon Resource Name (ARN) of the log stream. - LogStreamArn *string `type:"string"` +type InvokeEndpointWithResponseStreamInput struct { + _ struct{} `type:"structure" payload:"Body"` - Message_ *string `locationName:"Message" type:"string"` + // The desired MIME type of the inference response from the model container. + Accept *string `location:"header" locationName:"X-Amzn-SageMaker-Accept" type:"string"` - // Original message. - OriginalMessage *string `type:"string"` + // Provides input data, in the format specified in the ContentType request header. + // Amazon SageMaker passes all of the data in the body to the model. + // + // For information about the format of the request body, see Common Data Formats-Inference + // (https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html). + // + // Body is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InvokeEndpointWithResponseStreamInput's + // String and GoString methods. + // + // Body is a required field + Body []byte `type:"blob" required:"true" sensitive:"true"` - // Original status code. - OriginalStatusCode *int64 `type:"integer"` -} + // The MIME type of the input data in the request body. + ContentType *string `location:"header" locationName:"Content-Type" type:"string"` -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s ModelError) String() string { - return awsutil.Prettify(s) -} + // Provides additional information about a request for an inference submitted + // to a model hosted at an Amazon SageMaker endpoint. The information is an + // opaque value that is forwarded verbatim. You could use this value, for example, + // to provide an ID that you can use to track a request or to provide other + // metadata that a service endpoint was programmed to process. The value must + // consist of no more than 1024 visible US-ASCII characters as specified in + // Section 3.3.6. Field Value Components (https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6) + // of the Hypertext Transfer Protocol (HTTP/1.1). + // + // The code in your model is responsible for setting or updating any custom + // attributes in the response. If your code does not set this value in the response, + // an empty value is returned. For example, if a custom attribute represents + // the trace ID, your model can prepend the custom attribute with Trace ID: + // in your post-processing function. + // + // This feature is currently supported in the Amazon Web Services SDKs but not + // in the Amazon SageMaker Python SDK. + // + // CustomAttributes is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InvokeEndpointWithResponseStreamInput's + // String and GoString methods. + CustomAttributes *string `location:"header" locationName:"X-Amzn-SageMaker-Custom-Attributes" type:"string" sensitive:"true"` -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not + // The name of the endpoint that you specified when you created the endpoint + // using the CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html) + // API. + // + // EndpointName is a required field + EndpointName *string `location:"uri" locationName:"EndpointName" type:"string" required:"true"` + + // An identifier that you assign to your request. + InferenceId *string `location:"header" locationName:"X-Amzn-SageMaker-Inference-Id" min:"1" type:"string"` + + // If the endpoint hosts multiple containers and is configured to use direct + // invocation, this parameter specifies the host name of the container to invoke. + TargetContainerHostname *string `location:"header" locationName:"X-Amzn-SageMaker-Target-Container-Hostname" type:"string"` + + // Specify the production variant to send the inference request to when invoking + // an endpoint that is running two or more variants. Note that this parameter + // overrides the default behavior for the endpoint, which is to distribute the + // invocation traffic based on the variant weights. + // + // For information about how to use variant targeting to perform a/b testing, + // see Test models in production (https://docs.aws.amazon.com/sagemaker/latest/dg/model-ab-testing.html) + TargetVariant *string `location:"header" locationName:"X-Amzn-SageMaker-Target-Variant" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvokeEndpointWithResponseStreamInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvokeEndpointWithResponseStreamInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InvokeEndpointWithResponseStreamInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InvokeEndpointWithResponseStreamInput"} + if s.Body == nil { + invalidParams.Add(request.NewErrParamRequired("Body")) + } + if s.EndpointName == nil { + invalidParams.Add(request.NewErrParamRequired("EndpointName")) + } + if s.EndpointName != nil && len(*s.EndpointName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EndpointName", 1)) + } + if s.InferenceId != nil && len(*s.InferenceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InferenceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccept sets the Accept field's value. +func (s *InvokeEndpointWithResponseStreamInput) SetAccept(v string) *InvokeEndpointWithResponseStreamInput { + s.Accept = &v + return s +} + +// SetBody sets the Body field's value. +func (s *InvokeEndpointWithResponseStreamInput) SetBody(v []byte) *InvokeEndpointWithResponseStreamInput { + s.Body = v + return s +} + +// SetContentType sets the ContentType field's value. +func (s *InvokeEndpointWithResponseStreamInput) SetContentType(v string) *InvokeEndpointWithResponseStreamInput { + s.ContentType = &v + return s +} + +// SetCustomAttributes sets the CustomAttributes field's value. +func (s *InvokeEndpointWithResponseStreamInput) SetCustomAttributes(v string) *InvokeEndpointWithResponseStreamInput { + s.CustomAttributes = &v + return s +} + +// SetEndpointName sets the EndpointName field's value. +func (s *InvokeEndpointWithResponseStreamInput) SetEndpointName(v string) *InvokeEndpointWithResponseStreamInput { + s.EndpointName = &v + return s +} + +// SetInferenceId sets the InferenceId field's value. +func (s *InvokeEndpointWithResponseStreamInput) SetInferenceId(v string) *InvokeEndpointWithResponseStreamInput { + s.InferenceId = &v + return s +} + +// SetTargetContainerHostname sets the TargetContainerHostname field's value. +func (s *InvokeEndpointWithResponseStreamInput) SetTargetContainerHostname(v string) *InvokeEndpointWithResponseStreamInput { + s.TargetContainerHostname = &v + return s +} + +// SetTargetVariant sets the TargetVariant field's value. +func (s *InvokeEndpointWithResponseStreamInput) SetTargetVariant(v string) *InvokeEndpointWithResponseStreamInput { + s.TargetVariant = &v + return s +} + +type InvokeEndpointWithResponseStreamOutput struct { + _ struct{} `type:"structure" payload:"Body"` + + eventStream *InvokeEndpointWithResponseStreamEventStream + + // The MIME type of the inference returned from the model container. + ContentType *string `location:"header" locationName:"X-Amzn-SageMaker-Content-Type" type:"string"` + + // Provides additional information in the response about the inference returned + // by a model hosted at an Amazon SageMaker endpoint. The information is an + // opaque value that is forwarded verbatim. You could use this value, for example, + // to return an ID received in the CustomAttributes header of a request or other + // metadata that a service endpoint was programmed to produce. The value must + // consist of no more than 1024 visible US-ASCII characters as specified in + // Section 3.3.6. Field Value Components (https://tools.ietf.org/html/rfc7230#section-3.2.6) + // of the Hypertext Transfer Protocol (HTTP/1.1). If the customer wants the + // custom attribute returned, the model must set the custom attribute to be + // included on the way back. + // + // The code in your model is responsible for setting or updating any custom + // attributes in the response. If your code does not set this value in the response, + // an empty value is returned. For example, if a custom attribute represents + // the trace ID, your model can prepend the custom attribute with Trace ID: + // in your post-processing function. + // + // This feature is currently supported in the Amazon Web Services SDKs but not + // in the Amazon SageMaker Python SDK. + // + // CustomAttributes is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InvokeEndpointWithResponseStreamOutput's + // String and GoString methods. + CustomAttributes *string `location:"header" locationName:"X-Amzn-SageMaker-Custom-Attributes" type:"string" sensitive:"true"` + + // Identifies the production variant that was invoked. + InvokedProductionVariant *string `location:"header" locationName:"x-Amzn-Invoked-Production-Variant" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvokeEndpointWithResponseStreamOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvokeEndpointWithResponseStreamOutput) GoString() string { + return s.String() +} + +// SetContentType sets the ContentType field's value. +func (s *InvokeEndpointWithResponseStreamOutput) SetContentType(v string) *InvokeEndpointWithResponseStreamOutput { + s.ContentType = &v + return s +} + +// SetCustomAttributes sets the CustomAttributes field's value. +func (s *InvokeEndpointWithResponseStreamOutput) SetCustomAttributes(v string) *InvokeEndpointWithResponseStreamOutput { + s.CustomAttributes = &v + return s +} + +// SetInvokedProductionVariant sets the InvokedProductionVariant field's value. +func (s *InvokeEndpointWithResponseStreamOutput) SetInvokedProductionVariant(v string) *InvokeEndpointWithResponseStreamOutput { + s.InvokedProductionVariant = &v + return s +} + +// GetStream returns the type to interact with the event stream. +func (s *InvokeEndpointWithResponseStreamOutput) GetStream() *InvokeEndpointWithResponseStreamEventStream { + return s.eventStream +} + +// Model (owned by the customer in the container) returned 4xx or 5xx error +// code. +type ModelError struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // The Amazon Resource Name (ARN) of the log stream. + LogStreamArn *string `type:"string"` + + Message_ *string `locationName:"Message" type:"string"` + + // Original message. + OriginalMessage *string `type:"string"` + + // Original status code. + OriginalStatusCode *int64 `type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ModelError) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ModelError) GoString() string { @@ -986,6 +1610,342 @@ func (s *ModelNotReadyException) RequestID() string { return s.RespMetadata.RequestID } +// An error occurred while streaming the response body. This error can have +// the following error codes: +// +// # ModelInvocationTimeExceeded +// +// The model failed to finish sending the response within the timeout period +// allowed by Amazon SageMaker. +// +// # StreamBroken +// +// The Transmission Control Protocol (TCP) connection between the client and +// the model was reset or closed. +type ModelStreamError struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // This error can have the following error codes: + // + // ModelInvocationTimeExceeded + // + // The model failed to finish sending the response within the timeout period + // allowed by Amazon SageMaker. + // + // StreamBroken + // + // The Transmission Control Protocol (TCP) connection between the client and + // the model was reset or closed. + ErrorCode *string `type:"string"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ModelStreamError) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ModelStreamError) GoString() string { + return s.String() +} + +// The ModelStreamError is and event in the ResponseStream group of events. +func (s *ModelStreamError) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the ModelStreamError value. +// This method is only used internally within the SDK's EventStream handling. +func (s *ModelStreamError) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *ModelStreamError) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +func newErrorModelStreamError(v protocol.ResponseMetadata) error { + return &ModelStreamError{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ModelStreamError) Code() string { + return "ModelStreamError" +} + +// Message returns the exception's message. +func (s *ModelStreamError) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ModelStreamError) OrigErr() error { + return nil +} + +func (s *ModelStreamError) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ModelStreamError) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ModelStreamError) RequestID() string { + return s.RespMetadata.RequestID +} + +// A wrapper for pieces of the payload that's returned in response to a streaming +// inference request. A streaming inference response consists of one or more +// payload parts. +type PayloadPart struct { + _ struct{} `type:"structure" payload:"Bytes"` + + // A blob that contains part of the response for your streaming inference request. + // + // Bytes is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PayloadPart's + // String and GoString methods. + // + // Bytes is automatically base64 encoded/decoded by the SDK. + Bytes []byte `type:"blob" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PayloadPart) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PayloadPart) GoString() string { + return s.String() +} + +// SetBytes sets the Bytes field's value. +func (s *PayloadPart) SetBytes(v []byte) *PayloadPart { + s.Bytes = v + return s +} + +// The PayloadPart is and event in the ResponseStream group of events. +func (s *PayloadPart) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the PayloadPart value. +// This method is only used internally within the SDK's EventStream handling. +func (s *PayloadPart) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + s.Bytes = make([]byte, len(msg.Payload)) + copy(s.Bytes, msg.Payload) + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *PayloadPart) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) + msg.Headers.Set(":content-type", eventstream.StringValue("application/octet-stream")) + msg.Payload = s.Bytes + return msg, err +} + +// ResponseStreamEvent groups together all EventStream +// events writes for ResponseStream. +// +// These events are: +// +// - PayloadPart +type ResponseStreamEvent interface { + eventResponseStream() + eventstreamapi.Marshaler + eventstreamapi.Unmarshaler +} + +// ResponseStreamReader provides the interface for reading to the stream. The +// default implementation for this interface will be ResponseStream. +// +// The reader's Close method must allow multiple concurrent calls. +// +// These events are: +// +// - PayloadPart +// - ResponseStreamUnknownEvent +type ResponseStreamReader interface { + // Returns a channel of events as they are read from the event stream. + Events() <-chan ResponseStreamEvent + + // Close will stop the reader reading events from the stream. + Close() error + + // Returns any error that has occurred while reading from the event stream. + Err() error +} + +type readResponseStream struct { + eventReader *eventstreamapi.EventReader + stream chan ResponseStreamEvent + err *eventstreamapi.OnceError + + done chan struct{} + closeOnce sync.Once +} + +func newReadResponseStream(eventReader *eventstreamapi.EventReader) *readResponseStream { + r := &readResponseStream{ + eventReader: eventReader, + stream: make(chan ResponseStreamEvent), + done: make(chan struct{}), + err: eventstreamapi.NewOnceError(), + } + go r.readEventStream() + + return r +} + +// Close will close the underlying event stream reader. +func (r *readResponseStream) Close() error { + r.closeOnce.Do(r.safeClose) + return r.Err() +} + +func (r *readResponseStream) ErrorSet() <-chan struct{} { + return r.err.ErrorSet() +} + +func (r *readResponseStream) Closed() <-chan struct{} { + return r.done +} + +func (r *readResponseStream) safeClose() { + close(r.done) +} + +func (r *readResponseStream) Err() error { + return r.err.Err() +} + +func (r *readResponseStream) Events() <-chan ResponseStreamEvent { + return r.stream +} + +func (r *readResponseStream) readEventStream() { + defer r.Close() + defer close(r.stream) + + for { + event, err := r.eventReader.ReadEvent() + if err != nil { + if err == io.EOF { + return + } + select { + case <-r.done: + // If closed already ignore the error + return + default: + } + if _, ok := err.(*eventstreamapi.UnknownMessageTypeError); ok { + continue + } + r.err.SetError(err) + return + } + + select { + case r.stream <- event.(ResponseStreamEvent): + case <-r.done: + return + } + } +} + +type unmarshalerForResponseStreamEvent struct { + metadata protocol.ResponseMetadata +} + +func (u unmarshalerForResponseStreamEvent) UnmarshalerForEventName(eventType string) (eventstreamapi.Unmarshaler, error) { + switch eventType { + case "PayloadPart": + return &PayloadPart{}, nil + case "InternalStreamFailure": + return newErrorInternalStreamFailure(u.metadata).(eventstreamapi.Unmarshaler), nil + case "ModelStreamError": + return newErrorModelStreamError(u.metadata).(eventstreamapi.Unmarshaler), nil + default: + return &ResponseStreamUnknownEvent{Type: eventType}, nil + } +} + +// ResponseStreamUnknownEvent provides a failsafe event for the +// ResponseStream group of events when an unknown event is received. +type ResponseStreamUnknownEvent struct { + Type string + Message eventstream.Message +} + +// The ResponseStreamUnknownEvent is and event in the ResponseStream +// group of events. +func (s *ResponseStreamUnknownEvent) eventResponseStream() {} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (e *ResponseStreamUnknownEvent) MarshalEvent(pm protocol.PayloadMarshaler) ( + msg eventstream.Message, err error, +) { + return e.Message.Clone(), nil +} + +// UnmarshalEvent unmarshals the EventStream Message into the ResponseStream value. +// This method is only used internally within the SDK's EventStream handling. +func (e *ResponseStreamUnknownEvent) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + e.Message = msg.Clone() + return nil +} + // The service is unavailable. Try your call again. type ServiceUnavailable struct { _ struct{} `type:"structure"` diff --git a/service/sagemakerruntime/errors.go b/service/sagemakerruntime/errors.go index 014e55c2116..712eb06c1d2 100644 --- a/service/sagemakerruntime/errors.go +++ b/service/sagemakerruntime/errors.go @@ -21,6 +21,13 @@ const ( // An internal failure occurred. ErrCodeInternalFailure = "InternalFailure" + // ErrCodeInternalStreamFailure for service response error code + // "InternalStreamFailure". + // + // The stream processing failed because of an unknown error, exception or failure. + // Try your request again. + ErrCodeInternalStreamFailure = "InternalStreamFailure" + // ErrCodeModelError for service response error code // "ModelError". // @@ -36,6 +43,23 @@ const ( // Wait and try your request again. ErrCodeModelNotReadyException = "ModelNotReadyException" + // ErrCodeModelStreamError for service response error code + // "ModelStreamError". + // + // An error occurred while streaming the response body. This error can have + // the following error codes: + // + // ModelInvocationTimeExceeded + // + // The model failed to finish sending the response within the timeout period + // allowed by Amazon SageMaker. + // + // StreamBroken + // + // The Transmission Control Protocol (TCP) connection between the client and + // the model was reset or closed. + ErrCodeModelStreamError = "ModelStreamError" + // ErrCodeServiceUnavailable for service response error code // "ServiceUnavailable". // @@ -52,8 +76,10 @@ const ( var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "InternalDependencyException": newErrorInternalDependencyException, "InternalFailure": newErrorInternalFailure, + "InternalStreamFailure": newErrorInternalStreamFailure, "ModelError": newErrorModelError, "ModelNotReadyException": newErrorModelNotReadyException, + "ModelStreamError": newErrorModelStreamError, "ServiceUnavailable": newErrorServiceUnavailable, "ValidationError": newErrorValidationError, } diff --git a/service/sagemakerruntime/eventstream_test.go b/service/sagemakerruntime/eventstream_test.go new file mode 100644 index 00000000000..4ce085fa1ad --- /dev/null +++ b/service/sagemakerruntime/eventstream_test.go @@ -0,0 +1,344 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +//go:build go1.16 +// +build go1.16 + +package sagemakerruntime + +import ( + "bytes" + "context" + "io/ioutil" + "net/http" + "reflect" + "strings" + "sync" + "testing" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/aws/corehandlers" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/awstesting/unit" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/eventstream" + "github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi" + "github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamtest" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +var _ time.Time +var _ awserr.Error +var _ context.Context +var _ sync.WaitGroup +var _ strings.Reader + +func TestInvokeEndpointWithResponseStream_Read(t *testing.T) { + expectEvents, eventMsgs := mockInvokeEndpointWithResponseStreamReadEvents() + sess, cleanupFn, err := eventstreamtest.SetupEventStreamSession(t, + eventstreamtest.ServeEventStream{ + T: t, + Events: eventMsgs, + }, + true, + ) + if err != nil { + t.Fatalf("expect no error, %v", err) + } + defer cleanupFn() + + svc := New(sess) + resp, err := svc.InvokeEndpointWithResponseStream(nil) + if err != nil { + t.Fatalf("expect no error got, %v", err) + } + defer resp.GetStream().Close() + + var i int + for event := range resp.GetStream().Events() { + if event == nil { + t.Errorf("%d, expect event, got nil", i) + } + if e, a := expectEvents[i], event; !reflect.DeepEqual(e, a) { + t.Errorf("%d, expect %T %v, got %T %v", i, e, e, a, a) + } + i++ + } + + if err := resp.GetStream().Err(); err != nil { + t.Errorf("expect no error, %v", err) + } +} + +func TestInvokeEndpointWithResponseStream_ReadClose(t *testing.T) { + _, eventMsgs := mockInvokeEndpointWithResponseStreamReadEvents() + sess, cleanupFn, err := eventstreamtest.SetupEventStreamSession(t, + eventstreamtest.ServeEventStream{ + T: t, + Events: eventMsgs, + }, + true, + ) + if err != nil { + t.Fatalf("expect no error, %v", err) + } + defer cleanupFn() + + svc := New(sess) + resp, err := svc.InvokeEndpointWithResponseStream(nil) + if err != nil { + t.Fatalf("expect no error got, %v", err) + } + + // Assert calling Err before close does not close the stream. + resp.GetStream().Err() + select { + case _, ok := <-resp.GetStream().Events(): + if !ok { + t.Fatalf("expect stream not to be closed, but was") + } + default: + } + + resp.GetStream().Close() + <-resp.GetStream().Events() + + if err := resp.GetStream().Err(); err != nil { + t.Errorf("expect no error, %v", err) + } +} + +func TestInvokeEndpointWithResponseStream_ReadUnknownEvent(t *testing.T) { + expectEvents, eventMsgs := mockInvokeEndpointWithResponseStreamReadEvents() + var eventOffset int + + unknownEvent := eventstream.Message{ + Headers: eventstream.Headers{ + eventstreamtest.EventMessageTypeHeader, + { + Name: eventstreamapi.EventTypeHeader, + Value: eventstream.StringValue("UnknownEventName"), + }, + }, + Payload: []byte("some unknown event"), + } + + eventMsgs = append(eventMsgs[:eventOffset], + append([]eventstream.Message{unknownEvent}, eventMsgs[eventOffset:]...)...) + + expectEvents = append(expectEvents[:eventOffset], + append([]ResponseStreamEvent{ + &ResponseStreamUnknownEvent{ + Type: "UnknownEventName", + Message: unknownEvent, + }, + }, + expectEvents[eventOffset:]...)...) + + sess, cleanupFn, err := eventstreamtest.SetupEventStreamSession(t, + eventstreamtest.ServeEventStream{ + T: t, + Events: eventMsgs, + }, + true, + ) + if err != nil { + t.Fatalf("expect no error, %v", err) + } + defer cleanupFn() + + svc := New(sess) + resp, err := svc.InvokeEndpointWithResponseStream(nil) + if err != nil { + t.Fatalf("expect no error got, %v", err) + } + defer resp.GetStream().Close() + + var i int + for event := range resp.GetStream().Events() { + if event == nil { + t.Errorf("%d, expect event, got nil", i) + } + if e, a := expectEvents[i], event; !reflect.DeepEqual(e, a) { + t.Errorf("%d, expect %T %v, got %T %v", i, e, e, a, a) + } + i++ + } + + if err := resp.GetStream().Err(); err != nil { + t.Errorf("expect no error, %v", err) + } +} + +func BenchmarkInvokeEndpointWithResponseStream_Read(b *testing.B) { + _, eventMsgs := mockInvokeEndpointWithResponseStreamReadEvents() + var buf bytes.Buffer + encoder := eventstream.NewEncoder(&buf) + for _, msg := range eventMsgs { + if err := encoder.Encode(msg); err != nil { + b.Fatalf("failed to encode message, %v", err) + } + } + stream := &loopReader{source: bytes.NewReader(buf.Bytes())} + + sess := unit.Session + svc := New(sess, &aws.Config{ + Endpoint: aws.String("https://example.com"), + DisableParamValidation: aws.Bool(true), + }) + svc.Handlers.Send.Swap(corehandlers.SendHandler.Name, + request.NamedHandler{Name: "mockSend", + Fn: func(r *request.Request) { + r.HTTPResponse = &http.Response{ + Status: "200 OK", + StatusCode: 200, + Header: http.Header{}, + Body: ioutil.NopCloser(stream), + } + }, + }, + ) + + resp, err := svc.InvokeEndpointWithResponseStream(nil) + if err != nil { + b.Fatalf("failed to create request, %v", err) + } + defer resp.GetStream().Close() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + if err = resp.GetStream().Err(); err != nil { + b.Fatalf("expect no error, got %v", err) + } + event := <-resp.GetStream().Events() + if event == nil { + b.Fatalf("expect event, got nil, %v, %d", resp.GetStream().Err(), i) + } + } +} + +func mockInvokeEndpointWithResponseStreamReadEvents() ( + []ResponseStreamEvent, + []eventstream.Message, +) { + expectEvents := []ResponseStreamEvent{ + &PayloadPart{ + Bytes: []byte("blob value goes here"), + }, + } + + var marshalers request.HandlerList + marshalers.PushBackNamed(restjson.BuildHandler) + payloadMarshaler := protocol.HandlerPayloadMarshal{ + Marshalers: marshalers, + } + _ = payloadMarshaler + + eventMsgs := []eventstream.Message{ + { + Headers: eventstream.Headers{ + eventstreamtest.EventMessageTypeHeader, + { + Name: eventstreamapi.EventTypeHeader, + Value: eventstream.StringValue("PayloadPart"), + }, + }, + Payload: expectEvents[0].(*PayloadPart).Bytes, + }, + } + + return expectEvents, eventMsgs +} +func TestInvokeEndpointWithResponseStream_ReadException(t *testing.T) { + expectEvents := []ResponseStreamEvent{ + &InternalStreamFailure{ + RespMetadata: protocol.ResponseMetadata{ + StatusCode: 200, + }, + Message_: aws.String("string value goes here"), + }, + } + + var marshalers request.HandlerList + marshalers.PushBackNamed(restjson.BuildHandler) + payloadMarshaler := protocol.HandlerPayloadMarshal{ + Marshalers: marshalers, + } + + eventMsgs := []eventstream.Message{ + { + Headers: eventstream.Headers{ + eventstreamtest.EventExceptionTypeHeader, + { + Name: eventstreamapi.ExceptionTypeHeader, + Value: eventstream.StringValue("InternalStreamFailure"), + }, + }, + Payload: eventstreamtest.MarshalEventPayload(payloadMarshaler, expectEvents[0]), + }, + } + + sess, cleanupFn, err := eventstreamtest.SetupEventStreamSession(t, + eventstreamtest.ServeEventStream{ + T: t, + Events: eventMsgs, + }, + true, + ) + if err != nil { + t.Fatalf("expect no error, %v", err) + } + defer cleanupFn() + + svc := New(sess) + resp, err := svc.InvokeEndpointWithResponseStream(nil) + if err != nil { + t.Fatalf("expect no error got, %v", err) + } + + defer resp.GetStream().Close() + + <-resp.GetStream().Events() + + err = resp.GetStream().Err() + if err == nil { + t.Fatalf("expect err, got none") + } + + expectErr := &InternalStreamFailure{ + RespMetadata: protocol.ResponseMetadata{ + StatusCode: 200, + }, + Message_: aws.String("string value goes here"), + } + aerr, ok := err.(awserr.Error) + if !ok { + t.Errorf("expect exception, got %T, %#v", err, err) + } + if e, a := expectErr.Code(), aerr.Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := expectErr.Message(), aerr.Message(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + + if e, a := expectErr, aerr; !reflect.DeepEqual(e, a) { + t.Errorf("expect error %+#v, got %+#v", e, a) + } +} + +var _ awserr.Error = (*InternalStreamFailure)(nil) +var _ awserr.Error = (*ModelStreamError)(nil) + +type loopReader struct { + source *bytes.Reader +} + +func (c *loopReader) Read(p []byte) (int, error) { + if c.source.Len() == 0 { + c.source.Seek(0, 0) + } + + return c.source.Read(p) +} diff --git a/service/sagemakerruntime/sagemakerruntimeiface/interface.go b/service/sagemakerruntime/sagemakerruntimeiface/interface.go index 831446f0ba6..e887db7be02 100644 --- a/service/sagemakerruntime/sagemakerruntimeiface/interface.go +++ b/service/sagemakerruntime/sagemakerruntimeiface/interface.go @@ -67,6 +67,10 @@ type SageMakerRuntimeAPI interface { InvokeEndpointAsync(*sagemakerruntime.InvokeEndpointAsyncInput) (*sagemakerruntime.InvokeEndpointAsyncOutput, error) InvokeEndpointAsyncWithContext(aws.Context, *sagemakerruntime.InvokeEndpointAsyncInput, ...request.Option) (*sagemakerruntime.InvokeEndpointAsyncOutput, error) InvokeEndpointAsyncRequest(*sagemakerruntime.InvokeEndpointAsyncInput) (*request.Request, *sagemakerruntime.InvokeEndpointAsyncOutput) + + InvokeEndpointWithResponseStream(*sagemakerruntime.InvokeEndpointWithResponseStreamInput) (*sagemakerruntime.InvokeEndpointWithResponseStreamOutput, error) + InvokeEndpointWithResponseStreamWithContext(aws.Context, *sagemakerruntime.InvokeEndpointWithResponseStreamInput, ...request.Option) (*sagemakerruntime.InvokeEndpointWithResponseStreamOutput, error) + InvokeEndpointWithResponseStreamRequest(*sagemakerruntime.InvokeEndpointWithResponseStreamInput) (*request.Request, *sagemakerruntime.InvokeEndpointWithResponseStreamOutput) } var _ SageMakerRuntimeAPI = (*sagemakerruntime.SageMakerRuntime)(nil) diff --git a/service/sagemakerruntime/service.go b/service/sagemakerruntime/service.go index 4888e47034c..f8af815502b 100644 --- a/service/sagemakerruntime/service.go +++ b/service/sagemakerruntime/service.go @@ -84,6 +84,9 @@ func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), ) + svc.Handlers.BuildStream.PushBackNamed(restjson.BuildHandler) + svc.Handlers.UnmarshalStream.PushBackNamed(restjson.UnmarshalHandler) + // Run custom client initialization if present if initClient != nil { initClient(svc.Client)