From 3542ab9ec69437dd1e263f6090b47d454e19ff7b Mon Sep 17 00:00:00 2001 From: AWS SDK Swift Automation Date: Thu, 21 Nov 2024 19:13:51 +0000 Subject: [PATCH 1/4] Update API model --- .../sdk-codegen/aws-models/api-gateway.json | 445 +- .../aws-models/application-auto-scaling.json | 606 ++- codegen/sdk-codegen/aws-models/appsync.json | 6 + .../sdk-codegen/aws-models/cloudfront.json | 25 +- .../sdk-codegen/aws-models/cloudtrail.json | 1075 ++++- .../aws-models/cloudwatch-logs.json | 2218 ++++++++- .../sdk-codegen/aws-models/cost-explorer.json | 792 +++- codegen/sdk-codegen/aws-models/ec2.json | 945 +++- .../aws-models/elastic-load-balancing-v2.json | 4 +- .../sdk-codegen/aws-models/elasticache.json | 108 +- codegen/sdk-codegen/aws-models/health.json | 59 +- .../aws-models/iot-jobs-data-plane.json | 379 +- codegen/sdk-codegen/aws-models/iot.json | 1639 ++++++- .../sdk-codegen/aws-models/iotfleetwise.json | 1678 ++++++- codegen/sdk-codegen/aws-models/lambda.json | 73 +- .../sdk-codegen/aws-models/notifications.json | 4059 +++++++++++++++++ .../aws-models/notificationscontacts.json | 1670 +++++++ .../sdk-codegen/aws-models/resiliencehub.json | 552 ++- codegen/sdk-codegen/aws-models/s3.json | 704 +-- .../aws-models/ssm-quicksetup.json | 325 +- codegen/sdk-codegen/aws-models/ssm.json | 1407 +++++- codegen/sdk-codegen/aws-models/xray.json | 955 +++- 22 files changed, 18658 insertions(+), 1066 deletions(-) create mode 100644 codegen/sdk-codegen/aws-models/notifications.json create mode 100644 codegen/sdk-codegen/aws-models/notificationscontacts.json diff --git a/codegen/sdk-codegen/aws-models/api-gateway.json b/codegen/sdk-codegen/aws-models/api-gateway.json index 71a38b5a50c..44117eaf165 100644 --- a/codegen/sdk-codegen/aws-models/api-gateway.json +++ b/codegen/sdk-codegen/aws-models/api-gateway.json @@ -29,6 +29,17 @@ ] }, "shapes": { + "com.amazonaws.apigateway#AccessAssociationSourceType": { + "type": "enum", + "members": { + "VPCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VPCE" + } + } + } + }, "com.amazonaws.apigateway#AccessLogSettings": { "type": "structure", "members": { @@ -393,6 +404,9 @@ { "target": "com.amazonaws.apigateway#CreateDomainName" }, + { + "target": "com.amazonaws.apigateway#CreateDomainNameAccessAssociation" + }, { "target": "com.amazonaws.apigateway#CreateModel" }, @@ -441,6 +455,9 @@ { "target": "com.amazonaws.apigateway#DeleteDomainName" }, + { + "target": "com.amazonaws.apigateway#DeleteDomainNameAccessAssociation" + }, { "target": "com.amazonaws.apigateway#DeleteGatewayResponse" }, @@ -537,6 +554,9 @@ { "target": "com.amazonaws.apigateway#GetDomainName" }, + { + "target": "com.amazonaws.apigateway#GetDomainNameAccessAssociations" + }, { "target": "com.amazonaws.apigateway#GetDomainNames" }, @@ -654,6 +674,9 @@ { "target": "com.amazonaws.apigateway#PutRestApi" }, + { + "target": "com.amazonaws.apigateway#RejectDomainNameAccessAssociation" + }, { "target": "com.amazonaws.apigateway#TagResource" }, @@ -2229,6 +2252,13 @@ "smithy.api#required": {} } }, + "domainNameId": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

The identifier for the domain name resource. Supported only for private custom domain names.

", + "smithy.api#httpQuery": "domainNameId" + } + }, "basePath": { "target": "com.amazonaws.apigateway#String", "traits": { @@ -2534,6 +2564,75 @@ } } }, + "com.amazonaws.apigateway#CreateDomainNameAccessAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.apigateway#CreateDomainNameAccessAssociationRequest" + }, + "output": { + "target": "com.amazonaws.apigateway#DomainNameAccessAssociation" + }, + "errors": [ + { + "target": "com.amazonaws.apigateway#BadRequestException" + }, + { + "target": "com.amazonaws.apigateway#ConflictException" + }, + { + "target": "com.amazonaws.apigateway#LimitExceededException" + }, + { + "target": "com.amazonaws.apigateway#TooManyRequestsException" + }, + { + "target": "com.amazonaws.apigateway#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a domain name access association resource between an access association source and a private custom\n domain name.

", + "smithy.api#http": { + "method": "POST", + "uri": "/domainnameaccessassociations", + "code": 201 + } + } + }, + "com.amazonaws.apigateway#CreateDomainNameAccessAssociationRequest": { + "type": "structure", + "members": { + "domainNameArn": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

\n The ARN of the domain name.\n

", + "smithy.api#required": {} + } + }, + "accessAssociationSourceType": { + "target": "com.amazonaws.apigateway#AccessAssociationSourceType", + "traits": { + "smithy.api#documentation": "

\nThe type of the domain name access association source.\n

", + "smithy.api#required": {} + } + }, + "accessAssociationSource": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

\nThe identifier of the domain name access association source. For a VPCE, the value is the VPC endpoint ID.\n

", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.apigateway#MapOfStringToString", + "traits": { + "smithy.api#documentation": "

The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.apigateway#CreateDomainNameRequest": { "type": "structure", "members": { @@ -2547,13 +2646,13 @@ "certificateName": { "target": "com.amazonaws.apigateway#String", "traits": { - "smithy.api#documentation": "

The user-friendly name of the certificate that will be used by edge-optimized endpoint for this domain name.

" + "smithy.api#documentation": "

The user-friendly name of the certificate that will be used by edge-optimized endpoint or private endpoint for this domain name.

" } }, "certificateBody": { "target": "com.amazonaws.apigateway#String", "traits": { - "smithy.api#documentation": "

[Deprecated] The body of the server certificate that will be used by edge-optimized endpoint for this domain name provided by your certificate authority.

" + "smithy.api#documentation": "

[Deprecated] The body of the server certificate that will be used by edge-optimized endpoint or private endpoint for this domain name provided by your certificate authority.

" } }, "certificatePrivateKey": { @@ -2571,7 +2670,7 @@ "certificateArn": { "target": "com.amazonaws.apigateway#String", "traits": { - "smithy.api#documentation": "

The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint for this domain name. Certificate Manager is the only supported source.

" + "smithy.api#documentation": "

The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. Certificate Manager is the only supported source.

" } }, "regionalCertificateName": { @@ -2612,6 +2711,12 @@ "traits": { "smithy.api#documentation": "

The ARN of the public certificate issued by ACM to validate ownership of your custom\n domain. Only required when configuring mutual TLS and using an ACM imported or private CA\n certificate ARN as the regionalCertificateArn.

" } + }, + "policy": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

A stringified JSON policy document that applies to the execute-api service for this DomainName regardless of the caller and Method\n configuration. Supported only for private custom\n domain names.

" + } } }, "traits": { @@ -3446,6 +3551,13 @@ "smithy.api#required": {} } }, + "domainNameId": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

\n The identifier for the domain name resource. Supported only for private custom domain names.\n

", + "smithy.api#httpQuery": "domainNameId" + } + }, "basePath": { "target": "com.amazonaws.apigateway#String", "traits": { @@ -3725,6 +3837,56 @@ } } }, + "com.amazonaws.apigateway#DeleteDomainNameAccessAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.apigateway#DeleteDomainNameAccessAssociationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.apigateway#BadRequestException" + }, + { + "target": "com.amazonaws.apigateway#ConflictException" + }, + { + "target": "com.amazonaws.apigateway#NotFoundException" + }, + { + "target": "com.amazonaws.apigateway#TooManyRequestsException" + }, + { + "target": "com.amazonaws.apigateway#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the DomainNameAccessAssociation resource.

\n

Only the AWS account that created the DomainNameAccessAssociation resource can delete it. To stop an access association source in another AWS account from accessing your private custom domain name, use the RejectDomainNameAccessAssociation operation.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/domainnameaccessassociations/{domainNameAccessAssociationArn}", + "code": 202 + } + } + }, + "com.amazonaws.apigateway#DeleteDomainNameAccessAssociationRequest": { + "type": "structure", + "members": { + "domainNameAccessAssociationArn": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

\n The ARN of the domain name access association resource.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.apigateway#DeleteDomainNameRequest": { "type": "structure", "members": { @@ -3735,6 +3897,13 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "domainNameId": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

\n The identifier for the domain name resource. Supported only for private custom domain names.\n

", + "smithy.api#httpQuery": "domainNameId" + } } }, "traits": { @@ -4862,22 +5031,34 @@ "smithy.api#documentation": "

The custom domain name as an API host name, for example, my-api.example.com.

" } }, + "domainNameId": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

The identifier for the domain name resource. Supported only for private custom domain names.

" + } + }, + "domainNameArn": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

The ARN of the domain name. Supported only for private custom domain names.\n

" + } + }, "certificateName": { "target": "com.amazonaws.apigateway#String", "traits": { - "smithy.api#documentation": "

The name of the certificate that will be used by edge-optimized endpoint for this domain name.

" + "smithy.api#documentation": "

The name of the certificate that will be used by edge-optimized endpoint or private endpoint for this domain name.

" } }, "certificateArn": { "target": "com.amazonaws.apigateway#String", "traits": { - "smithy.api#documentation": "

The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint for this domain name. Certificate Manager is the only supported source.

" + "smithy.api#documentation": "

The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. Certificate Manager is the only supported source.

" } }, "certificateUploadDate": { "target": "com.amazonaws.apigateway#Timestamp", "traits": { - "smithy.api#documentation": "

The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded. API Gateway doesn't change this value if you update the certificate.

" + "smithy.api#documentation": "

The timestamp when the certificate that was used by edge-optimized endpoint or private endpoint for this domain name was uploaded.

" } }, "regionalDomainName": { @@ -4957,12 +5138,81 @@ "traits": { "smithy.api#documentation": "

The ARN of the public certificate issued by ACM to validate ownership of your custom\n domain. Only required when configuring mutual TLS and using an ACM imported or private CA\n certificate ARN as the regionalCertificateArn.

" } + }, + "managementPolicy": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

A stringified JSON policy document that applies to the API Gateway Management service for this DomainName. This policy document controls access for access association sources to create domain name access associations with this DomainName. Supported only for private custom domain names.

" + } + }, + "policy": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

A stringified JSON policy document that applies to the execute-api service for this DomainName regardless of the caller and Method\n configuration. Supported only for private custom\n domain names.

" + } } }, "traits": { "smithy.api#documentation": "

Represents a custom domain name as a user-friendly host name of an API (RestApi).

" } }, + "com.amazonaws.apigateway#DomainNameAccessAssociation": { + "type": "structure", + "members": { + "domainNameAccessAssociationArn": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

The ARN of the domain name access association resource.\n

" + } + }, + "domainNameArn": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

The ARN of the domain name.\n

" + } + }, + "accessAssociationSourceType": { + "target": "com.amazonaws.apigateway#AccessAssociationSourceType", + "traits": { + "smithy.api#documentation": "

\n The type of the domain name access association source.\n

" + } + }, + "accessAssociationSource": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

\n The ARN of the domain name access association source. For a VPCE, the ARN must be a VPC endpoint. \n

" + } + }, + "tags": { + "target": "com.amazonaws.apigateway#MapOfStringToString", + "traits": { + "smithy.api#documentation": "

\nThe collection of tags. Each tag element is associated with a given resource.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a domain name access association between an access association source and a private custom domain name. With a domain name access association, an access association source can invoke a private custom domain name while isolated from the public internet.

" + } + }, + "com.amazonaws.apigateway#DomainNameAccessAssociations": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.apigateway#ListOfDomainNameAccessAssociation", + "traits": { + "smithy.api#documentation": "

\nThe current page of elements from this collection.\n

", + "smithy.api#jsonName": "item" + } + }, + "position": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

The current pagination position in the paged result set.\n

", + "smithy.api#httpQuery": "position" + } + } + } + }, "com.amazonaws.apigateway#DomainNameStatus": { "type": "enum", "members": { @@ -5808,6 +6058,13 @@ "smithy.api#required": {} } }, + "domainNameId": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

The identifier for the domain name resource. Supported only for private custom domain names.\n

", + "smithy.api#httpQuery": "domainNameId" + } + }, "basePath": { "target": "com.amazonaws.apigateway#String", "traits": { @@ -5870,6 +6127,13 @@ "smithy.api#required": {} } }, + "domainNameId": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

\n The identifier for the domain name resource. Supported only for private custom domain names.\n

", + "smithy.api#httpQuery": "domainNameId" + } + }, "position": { "target": "com.amazonaws.apigateway#String", "traits": { @@ -6427,6 +6691,66 @@ } } }, + "com.amazonaws.apigateway#GetDomainNameAccessAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.apigateway#GetDomainNameAccessAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.apigateway#DomainNameAccessAssociations" + }, + "errors": [ + { + "target": "com.amazonaws.apigateway#BadRequestException" + }, + { + "target": "com.amazonaws.apigateway#NotFoundException" + }, + { + "target": "com.amazonaws.apigateway#TooManyRequestsException" + }, + { + "target": "com.amazonaws.apigateway#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Represents a collection on DomainNameAccessAssociations resources.

", + "smithy.api#http": { + "method": "GET", + "uri": "/domainnameaccessassociations", + "code": 200 + } + } + }, + "com.amazonaws.apigateway#GetDomainNameAccessAssociationsRequest": { + "type": "structure", + "members": { + "position": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

The current pagination position in the paged result set.\n

", + "smithy.api#httpQuery": "position" + } + }, + "limit": { + "target": "com.amazonaws.apigateway#NullableInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of returned results per page. The default value is 25 and the maximum value is 500.\n

", + "smithy.api#httpQuery": "limit" + } + }, + "resourceOwner": { + "target": "com.amazonaws.apigateway#ResourceOwner", + "traits": { + "smithy.api#documentation": "

The owner of the domain name access association. Use SELF to only list the domain name access associations owned by your own account.\n Use OTHER_ACCOUNTS to list the domain name access associations with your private custom domain names that are owned by other AWS\n accounts.

", + "smithy.api#httpQuery": "resourceOwner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.apigateway#GetDomainNameRequest": { "type": "structure", "members": { @@ -6437,6 +6761,13 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "domainNameId": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

\n The identifier for the domain name resource. Supported only for private custom domain names.\n

", + "smithy.api#httpQuery": "domainNameId" + } } }, "traits": { @@ -6510,6 +6841,13 @@ "smithy.api#documentation": "

The maximum number of returned results per page. The default value is 25 and the maximum value is 500.

", "smithy.api#httpQuery": "limit" } + }, + "resourceOwner": { + "target": "com.amazonaws.apigateway#ResourceOwner", + "traits": { + "smithy.api#documentation": "

The owner of the domain name access association.\n

", + "smithy.api#httpQuery": "resourceOwner" + } } }, "traits": { @@ -8819,6 +9157,12 @@ "target": "com.amazonaws.apigateway#DomainName" } }, + "com.amazonaws.apigateway#ListOfDomainNameAccessAssociation": { + "type": "list", + "member": { + "target": "com.amazonaws.apigateway#DomainNameAccessAssociation" + } + }, "com.amazonaws.apigateway#ListOfEndpointType": { "type": "list", "member": { @@ -10142,6 +10486,64 @@ "smithy.api#documentation": "

Quotas configured for a usage plan.

" } }, + "com.amazonaws.apigateway#RejectDomainNameAccessAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.apigateway#RejectDomainNameAccessAssociationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.apigateway#BadRequestException" + }, + { + "target": "com.amazonaws.apigateway#ConflictException" + }, + { + "target": "com.amazonaws.apigateway#NotFoundException" + }, + { + "target": "com.amazonaws.apigateway#TooManyRequestsException" + }, + { + "target": "com.amazonaws.apigateway#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Rejects a domain name access association with a private custom domain name.

\n

To reject a domain name access association with an access association source in another AWS account, use this operation. To remove a domain name access association with an access association source in your own account, use the DeleteDomainNameAccessAssociation operation.

", + "smithy.api#http": { + "method": "POST", + "uri": "/rejectdomainnameaccessassociations", + "code": 202 + } + } + }, + "com.amazonaws.apigateway#RejectDomainNameAccessAssociationRequest": { + "type": "structure", + "members": { + "domainNameAccessAssociationArn": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

The ARN of the domain name access association resource.\n

", + "smithy.api#httpQuery": "domainNameAccessAssociationArn", + "smithy.api#required": {} + } + }, + "domainNameArn": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

\nThe ARN of the domain name.\n

", + "smithy.api#httpQuery": "domainNameArn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.apigateway#RequestValidator": { "type": "structure", "members": { @@ -10236,6 +10638,23 @@ "smithy.api#documentation": "

Represents an API resource.

" } }, + "com.amazonaws.apigateway#ResourceOwner": { + "type": "enum", + "members": { + "SELF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SELF" + } + }, + "OTHER_ACCOUNTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OTHER_ACCOUNTS" + } + } + } + }, "com.amazonaws.apigateway#Resources": { "type": "structure", "members": { @@ -11447,6 +11866,13 @@ "smithy.api#required": {} } }, + "domainNameId": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

\n The identifier for the domain name resource. Supported only for private custom domain names.\n

", + "smithy.api#httpQuery": "domainNameId" + } + }, "basePath": { "target": "com.amazonaws.apigateway#String", "traits": { @@ -11782,6 +12208,13 @@ "smithy.api#required": {} } }, + "domainNameId": { + "target": "com.amazonaws.apigateway#String", + "traits": { + "smithy.api#documentation": "

\n The identifier for the domain name resource. Supported only for private custom domain names.\n

", + "smithy.api#httpQuery": "domainNameId" + } + }, "patchOperations": { "target": "com.amazonaws.apigateway#ListOfPatchOperation", "traits": { diff --git a/codegen/sdk-codegen/aws-models/application-auto-scaling.json b/codegen/sdk-codegen/aws-models/application-auto-scaling.json index 149c976a819..c43f482884c 100644 --- a/codegen/sdk-codegen/aws-models/application-auto-scaling.json +++ b/codegen/sdk-codegen/aws-models/application-auto-scaling.json @@ -115,6 +115,9 @@ { "target": "com.amazonaws.applicationautoscaling#DescribeScheduledActions" }, + { + "target": "com.amazonaws.applicationautoscaling#GetPredictiveScalingForecast" + }, { "target": "com.amazonaws.applicationautoscaling#ListTagsForResource" }, @@ -1129,6 +1132,28 @@ } } }, + "com.amazonaws.applicationautoscaling#CapacityForecast": { + "type": "structure", + "members": { + "Timestamps": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingForecastTimestamps", + "traits": { + "smithy.api#documentation": "

\n The timestamps for the data points, in UTC format.\n

", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingForecastValues", + "traits": { + "smithy.api#documentation": "

\n The values of the data points.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n A GetPredictiveScalingForecast call returns the capacity forecast for a\n predictive scaling policy. This structure includes the data points for that capacity\n forecast, along with the timestamps of those data points.\n

" + } + }, "com.amazonaws.applicationautoscaling#ConcurrentUpdateException": { "type": "structure", "members": { @@ -1999,6 +2024,102 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.applicationautoscaling#GetPredictiveScalingForecast": { + "type": "operation", + "input": { + "target": "com.amazonaws.applicationautoscaling#GetPredictiveScalingForecastRequest" + }, + "output": { + "target": "com.amazonaws.applicationautoscaling#GetPredictiveScalingForecastResponse" + }, + "errors": [ + { + "target": "com.amazonaws.applicationautoscaling#InternalServiceException" + }, + { + "target": "com.amazonaws.applicationautoscaling#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the forecast data for a predictive scaling policy.

\n

Load forecasts are predictions of the hourly load values using historical load data\n from CloudWatch and an analysis of historical trends. Capacity forecasts are represented as\n predicted values for the minimum capacity that is needed on an hourly basis, based on\n the hourly load forecast.

\n

A minimum of 24 hours of data is required to create the initial forecasts. However,\n having a full 14 days of historical data results in more accurate forecasts.

" + } + }, + "com.amazonaws.applicationautoscaling#GetPredictiveScalingForecastRequest": { + "type": "structure", + "members": { + "ServiceNamespace": { + "target": "com.amazonaws.applicationautoscaling#ServiceNamespace", + "traits": { + "smithy.api#documentation": "

\n The namespace of the Amazon Web Services service that provides the resource. For a resource provided\n by your own application or service, use custom-resource instead. \n

", + "smithy.api#required": {} + } + }, + "ResourceId": { + "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", + "traits": { + "smithy.api#documentation": "

\n The identifier of the resource.\n

", + "smithy.api#required": {} + } + }, + "ScalableDimension": { + "target": "com.amazonaws.applicationautoscaling#ScalableDimension", + "traits": { + "smithy.api#documentation": "

\n The scalable dimension.\n

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.applicationautoscaling#PolicyName", + "traits": { + "smithy.api#documentation": "

The name of the policy.

", + "smithy.api#required": {} + } + }, + "StartTime": { + "target": "com.amazonaws.applicationautoscaling#TimestampType", + "traits": { + "smithy.api#documentation": "

\n The inclusive start time of the time range for the forecast data to get. At most, the\n date and time can be one year before the current date and time\n

", + "smithy.api#required": {} + } + }, + "EndTime": { + "target": "com.amazonaws.applicationautoscaling#TimestampType", + "traits": { + "smithy.api#documentation": "

\n The exclusive end time of the time range for the forecast data to get. The maximum\n time duration between the start and end time is 30 days. \n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.applicationautoscaling#GetPredictiveScalingForecastResponse": { + "type": "structure", + "members": { + "LoadForecast": { + "target": "com.amazonaws.applicationautoscaling#LoadForecasts", + "traits": { + "smithy.api#documentation": "

\n The load forecast.\n

" + } + }, + "CapacityForecast": { + "target": "com.amazonaws.applicationautoscaling#CapacityForecast", + "traits": { + "smithy.api#documentation": "

\n The capacity forecast.\n

" + } + }, + "UpdateTime": { + "target": "com.amazonaws.applicationautoscaling#TimestampType", + "traits": { + "smithy.api#documentation": "

\n The time the forecast was made.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.applicationautoscaling#Id": { "type": "string", "traits": { @@ -2123,6 +2244,41 @@ "smithy.api#output": {} } }, + "com.amazonaws.applicationautoscaling#LoadForecast": { + "type": "structure", + "members": { + "Timestamps": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingForecastTimestamps", + "traits": { + "smithy.api#documentation": "

\n The timestamps for the data points, in UTC format.\n

", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingForecastValues", + "traits": { + "smithy.api#documentation": "

\n The values of the data points.\n

", + "smithy.api#required": {} + } + }, + "MetricSpecification": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricSpecification", + "traits": { + "smithy.api#documentation": "

\n The metric specification for the load forecast.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n A GetPredictiveScalingForecast call returns the load forecast for a\n predictive scaling policy. This structure includes the data points for that load\n forecast, along with the timestamps of those data points and the metric specification.\n

" + } + }, + "com.amazonaws.applicationautoscaling#LoadForecasts": { + "type": "list", + "member": { + "target": "com.amazonaws.applicationautoscaling#LoadForecast" + } + }, "com.amazonaws.applicationautoscaling#MaxResults": { "type": "integer" }, @@ -2480,6 +2636,12 @@ "traits": { "smithy.api#enumValue": "TargetTrackingScaling" } + }, + "PredictiveScaling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PredictiveScaling" + } } } }, @@ -2501,7 +2663,431 @@ } }, "traits": { - "smithy.api#documentation": "

Represents a predefined metric for a target tracking scaling policy to use with\n Application Auto Scaling.

\n

For more information, Predefined metrics for target tracking scaling policies in the\n Application Auto Scaling User Guide.

" + "smithy.api#documentation": "

Represents a predefined metric for a target tracking scaling policy to use with\n Application Auto Scaling.

\n

For more information, Predefined metrics for target tracking scaling policies in the\n Application Auto Scaling User Guide.

" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingCustomizedMetricSpecification": { + "type": "structure", + "members": { + "MetricDataQueries": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDataQueries", + "traits": { + "smithy.api#documentation": "

\n One or more metric data queries to provide data points for a metric specification.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Represents a CloudWatch metric of your choosing for a predictive scaling policy.\n

" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingForecastTimestamps": { + "type": "list", + "member": { + "target": "com.amazonaws.applicationautoscaling#TimestampType" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingForecastValues": { + "type": "list", + "member": { + "target": "com.amazonaws.applicationautoscaling#MetricScale" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMaxCapacityBreachBehavior": { + "type": "enum", + "members": { + "HonorMaxCapacity": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HonorMaxCapacity" + } + }, + "IncreaseMaxCapacity": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IncreaseMaxCapacity" + } + } + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMaxCapacityBuffer": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetric": { + "type": "structure", + "members": { + "Dimensions": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDimensions", + "traits": { + "smithy.api#documentation": "

\n Describes the dimensions of the metric.\n

" + } + }, + "MetricName": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricName", + "traits": { + "smithy.api#documentation": "

\n The name of the metric.\n

" + } + }, + "Namespace": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricNamespace", + "traits": { + "smithy.api#documentation": "

\n The namespace of the metric.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Describes the scaling metric.\n

" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDataQueries": { + "type": "list", + "member": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDataQuery" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDataQuery": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.applicationautoscaling#Id", + "traits": { + "smithy.api#documentation": "

\n A short name that identifies the object's results in the response. This name must be\n unique among all MetricDataQuery objects specified for a single scaling\n policy. If you are performing math expressions on this set of data, this name represents\n that data and can serve as a variable in the mathematical expression. The valid\n characters are letters, numbers, and underscores. The first character must be a\n lowercase letter.\n

", + "smithy.api#required": {} + } + }, + "Expression": { + "target": "com.amazonaws.applicationautoscaling#Expression", + "traits": { + "smithy.api#documentation": "

\n The math expression to perform on the returned data, if this object is performing a\n math expression. This expression can use the Id of the other metrics to\n refer to those metrics, and can also use the Id of other expressions to use\n the result of those expressions.\n

\n

Conditional: Within each MetricDataQuery object, you must specify either\n Expression or MetricStat, but not both.

" + } + }, + "MetricStat": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricStat", + "traits": { + "smithy.api#documentation": "

\n Information about the metric data to return.\n

\n

Conditional: Within each MetricDataQuery object, you must specify either\n Expression or MetricStat, but not both.

" + } + }, + "Label": { + "target": "com.amazonaws.applicationautoscaling#XmlString", + "traits": { + "smithy.api#documentation": "

\n A human-readable label for this metric or expression. This is especially useful if\n this is a math expression, so that you know what the value represents.\n

" + } + }, + "ReturnData": { + "target": "com.amazonaws.applicationautoscaling#ReturnData", + "traits": { + "smithy.api#documentation": "

\n Indicates whether to return the timestamps and raw data values of this metric.\n

\n

If you use any math expressions, specify true for this value for only the\n final math expression that the metric specification is based on. You must specify\n false for ReturnData for all the other metrics and\n expressions used in the metric specification.

\n

If you are only retrieving metrics and not performing any math expressions, do not\n specify anything for ReturnData. This sets it to its default\n (true).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The metric data to return. Also defines whether this call is returning data for one\n metric only, or whether it is performing a math expression on the values of returned\n metric statistics to create a new time series. A time series is a series of data points,\n each of which is associated with a timestamp.\n

" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDimension": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDimensionName", + "traits": { + "smithy.api#documentation": "

\n The name of the dimension.\n

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDimensionValue", + "traits": { + "smithy.api#documentation": "

\n The value of the dimension.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Describes the dimension of a metric.\n

" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDimensionName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*$" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDimensionValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*$" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDimensions": { + "type": "list", + "member": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricDimension" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*$" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricNamespace": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*$" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricSpecification": { + "type": "structure", + "members": { + "TargetValue": { + "target": "com.amazonaws.applicationautoscaling#MetricScale", + "traits": { + "smithy.api#documentation": "

\n Specifies the target utilization.\n

", + "smithy.api#required": {} + } + }, + "PredefinedMetricPairSpecification": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingPredefinedMetricPairSpecification", + "traits": { + "smithy.api#documentation": "

\n The predefined metric pair specification that determines the appropriate scaling metric and load metric to use.\n

" + } + }, + "PredefinedScalingMetricSpecification": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingPredefinedScalingMetricSpecification", + "traits": { + "smithy.api#documentation": "

\n The predefined scaling metric specification.\n

" + } + }, + "PredefinedLoadMetricSpecification": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingPredefinedLoadMetricSpecification", + "traits": { + "smithy.api#documentation": "

\n The predefined load metric specification.\n

" + } + }, + "CustomizedScalingMetricSpecification": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingCustomizedMetricSpecification", + "traits": { + "smithy.api#documentation": "

\n The customized scaling metric specification.\n

" + } + }, + "CustomizedLoadMetricSpecification": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingCustomizedMetricSpecification", + "traits": { + "smithy.api#documentation": "

\n The customized load metric specification.\n

" + } + }, + "CustomizedCapacityMetricSpecification": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingCustomizedMetricSpecification", + "traits": { + "smithy.api#documentation": "

\n The customized capacity metric specification.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This structure specifies the metrics and target utilization settings for a predictive\n scaling policy.\n

\n

You must specify either a metric pair, or a load metric and a scaling metric\n individually. Specifying a metric pair instead of individual metrics provides a simpler\n way to configure metrics for a scaling policy. You choose the metric pair, and the\n policy automatically knows the correct sum and average statistics to use for the load\n metric and the scaling metric.

" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricSpecifications": { + "type": "list", + "member": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricSpecification" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricStat": { + "type": "structure", + "members": { + "Metric": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetric", + "traits": { + "smithy.api#documentation": "

\n The CloudWatch metric to return, including the metric name, namespace, and dimensions. To\n get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics. \n

", + "smithy.api#required": {} + } + }, + "Stat": { + "target": "com.amazonaws.applicationautoscaling#XmlString", + "traits": { + "smithy.api#documentation": "

\n The statistic to return. It can include any CloudWatch statistic or extended statistic. For\n a list of valid values, see the table in Statistics in the Amazon CloudWatch User Guide.\n

\n

The most commonly used metrics for predictive scaling are Average and\n Sum.

", + "smithy.api#required": {} + } + }, + "Unit": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricUnit", + "traits": { + "smithy.api#documentation": "

\n The unit to use for the returned data points. For a complete list of the units that\n CloudWatch supports, see the MetricDatum \n data type in the Amazon CloudWatch API Reference.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This structure defines the CloudWatch metric to return, along with the statistic and unit.\n

" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMetricUnit": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1023 + }, + "smithy.api#pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*$" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingMode": { + "type": "enum", + "members": { + "ForecastOnly": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ForecastOnly" + } + }, + "ForecastAndScale": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ForecastAndScale" + } + } + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingPolicyConfiguration": { + "type": "structure", + "members": { + "MetricSpecifications": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricSpecifications", + "traits": { + "smithy.api#documentation": "

\n This structure includes the metrics and target utilization to use for predictive scaling.\n

\n

This is an array, but we currently only support a single metric specification. That\n is, you can specify a target value and a single metric pair, or a target value and one\n scaling metric and one load metric.

", + "smithy.api#required": {} + } + }, + "Mode": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMode", + "traits": { + "smithy.api#documentation": "

\n The predictive scaling mode. Defaults to ForecastOnly if not specified.\n

" + } + }, + "SchedulingBufferTime": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingSchedulingBufferTime", + "traits": { + "smithy.api#documentation": "

\n The amount of time, in seconds, that the start time can be advanced.\n

\n

The value must be less than the forecast interval duration of 3600 seconds (60\n minutes). Defaults to 300 seconds if not specified.

" + } + }, + "MaxCapacityBreachBehavior": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMaxCapacityBreachBehavior", + "traits": { + "smithy.api#documentation": "

\n Defines the behavior that should be applied if the forecast capacity approaches or\n exceeds the maximum capacity. Defaults to\n HonorMaxCapacity if not specified.\n

" + } + }, + "MaxCapacityBuffer": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMaxCapacityBuffer", + "traits": { + "smithy.api#documentation": "

\n The size of the capacity buffer to use when the forecast capacity is close to or\n exceeds the maximum capacity. The value is specified as a percentage relative to the\n forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer,\n such that if the forecast capacity is 50, and the maximum capacity is 40, then the\n effective maximum capacity is 55.\n

\n

Required if the MaxCapacityBreachBehavior property is set to\n IncreaseMaxCapacity, and cannot be used otherwise.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Represents a predictive scaling policy configuration.\n

" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingPredefinedLoadMetricSpecification": { + "type": "structure", + "members": { + "PredefinedMetricType": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricType", + "traits": { + "smithy.api#documentation": "

\n The metric type.\n

", + "smithy.api#required": {} + } + }, + "ResourceLabel": { + "target": "com.amazonaws.applicationautoscaling#ResourceLabel", + "traits": { + "smithy.api#documentation": "

\n A label that uniquely identifies a target group.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Describes a load metric for a predictive scaling policy.\n

\n

When returned in the output of DescribePolicies, it indicates that a\n predictive scaling policy uses individually specified load and scaling metrics instead\n of a metric pair.

" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingPredefinedMetricPairSpecification": { + "type": "structure", + "members": { + "PredefinedMetricType": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricType", + "traits": { + "smithy.api#documentation": "

\n Indicates which metrics to use. There are two different types of metrics for each\n metric type: one is a load metric and one is a scaling metric.\n

", + "smithy.api#required": {} + } + }, + "ResourceLabel": { + "target": "com.amazonaws.applicationautoscaling#ResourceLabel", + "traits": { + "smithy.api#documentation": "

\n A label that uniquely identifies a specific target group from which to determine\n the total and average request count.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Represents a metric pair for a predictive scaling policy.\n

" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingPredefinedScalingMetricSpecification": { + "type": "structure", + "members": { + "PredefinedMetricType": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingMetricType", + "traits": { + "smithy.api#documentation": "

\n The metric type.\n

", + "smithy.api#required": {} + } + }, + "ResourceLabel": { + "target": "com.amazonaws.applicationautoscaling#ResourceLabel", + "traits": { + "smithy.api#documentation": "

\n A label that uniquely identifies a specific target group from which to determine\n the average request count. \n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Describes a scaling metric for a predictive scaling policy.\n

\n

When returned in the output of DescribePolicies, it indicates that a\n predictive scaling policy uses individually specified load and scaling metrics instead\n of a metric pair.

" + } + }, + "com.amazonaws.applicationautoscaling#PredictiveScalingSchedulingBufferTime": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 3600 + } } }, "com.amazonaws.applicationautoscaling#PutScalingPolicy": { @@ -2618,6 +3204,12 @@ "traits": { "smithy.api#documentation": "

A target tracking scaling policy. Includes support for predefined or customized\n metrics.

\n

This parameter is required if you are creating a policy and the policy type is\n TargetTrackingScaling.

" } + }, + "PredictiveScalingPolicyConfiguration": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingPolicyConfiguration", + "traits": { + "smithy.api#documentation": "

\n The configuration of the predictive scaling policy.\n

" + } } }, "traits": { @@ -3122,6 +3714,12 @@ "smithy.api#required": {} } }, + "PredictedCapacity": { + "target": "com.amazonaws.applicationautoscaling#ResourceCapacity", + "traits": { + "smithy.api#documentation": "

\n The predicted capacity of the scalable target.\n

" + } + }, "RoleARN": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { @@ -3380,6 +3978,12 @@ "smithy.api#documentation": "

A target tracking scaling policy.

" } }, + "PredictiveScalingPolicyConfiguration": { + "target": "com.amazonaws.applicationautoscaling#PredictiveScalingPolicyConfiguration", + "traits": { + "smithy.api#documentation": "

\n The predictive scaling policy configuration.\n

" + } + }, "Alarms": { "target": "com.amazonaws.applicationautoscaling#Alarms", "traits": { diff --git a/codegen/sdk-codegen/aws-models/appsync.json b/codegen/sdk-codegen/aws-models/appsync.json index 67302678221..96c95212674 100644 --- a/codegen/sdk-codegen/aws-models/appsync.json +++ b/codegen/sdk-codegen/aws-models/appsync.json @@ -3881,6 +3881,12 @@ "traits": { "smithy.api#enumValue": "AMAZON_EVENTBRIDGE" } + }, + "AMAZON_BEDROCK_RUNTIME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AMAZON_BEDROCK_RUNTIME" + } } } }, diff --git a/codegen/sdk-codegen/aws-models/cloudfront.json b/codegen/sdk-codegen/aws-models/cloudfront.json index 81dcd389773..389634425be 100644 --- a/codegen/sdk-codegen/aws-models/cloudfront.json +++ b/codegen/sdk-codegen/aws-models/cloudfront.json @@ -14445,10 +14445,16 @@ "smithy.api#documentation": "

A complex type that contains information about the origins in an origin group.

", "smithy.api#required": {} } + }, + "SelectionCriteria": { + "target": "com.amazonaws.cloudfront#OriginGroupSelectionCriteria", + "traits": { + "smithy.api#documentation": "

The selection criteria for the origin group. For more information, see Create an origin group in the Amazon CloudFront\n\t\t\t\tDeveloper Guide.

" + } } }, "traits": { - "smithy.api#documentation": "

An origin group includes two origins (a primary origin and a second origin to failover to)\n\t\t\tand a failover criteria that you specify. You create an origin group to support origin\n\t\t\tfailover in CloudFront. When you create or update a distribution, you can specify the\n\t\t\torigin group instead of a single origin, and CloudFront will failover from the primary\n\t\t\torigin to the second origin under the failover conditions that you've chosen.

" + "smithy.api#documentation": "

An origin group includes two origins (a primary origin and a secondary origin to failover\n\t\t\tto) and a failover criteria that you specify. You create an origin group to support\n\t\t\torigin failover in CloudFront. When you create or update a distribution, you can specify the\n\t\t\torigin group instead of a single origin, and CloudFront will failover from the primary origin\n\t\t\tto the secondary origin under the failover conditions that you've chosen.

\n

Optionally, you can choose selection criteria for your origin group to specify how your origins are selected when your distribution routes viewer requests.

" } }, "com.amazonaws.cloudfront#OriginGroupFailoverCriteria": { @@ -14531,6 +14537,23 @@ "smithy.api#documentation": "

A complex data type for the origins included in an origin group.

" } }, + "com.amazonaws.cloudfront#OriginGroupSelectionCriteria": { + "type": "enum", + "members": { + "Default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "MediaQualityBased": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "media-quality-based" + } + } + } + }, "com.amazonaws.cloudfront#OriginGroups": { "type": "structure", "members": { diff --git a/codegen/sdk-codegen/aws-models/cloudtrail.json b/codegen/sdk-codegen/aws-models/cloudtrail.json index 3ddb2d12095..eaa156e77a8 100644 --- a/codegen/sdk-codegen/aws-models/cloudtrail.json +++ b/codegen/sdk-codegen/aws-models/cloudtrail.json @@ -198,7 +198,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds one or more tags to a trail, event data store, or channel, up to a limit of 50. Overwrites an\n existing tag's value when a new value is specified for an existing tag key. Tag key names\n must be unique; you cannot have two keys with the same name but different\n values. If you specify a key without a value, the tag will be created with the specified\n key and a value of null. You can tag a trail or event data store that applies to all\n Amazon Web Services Regions only from the Region in which the trail or event data store\n was created (also known as its home Region).

", + "smithy.api#documentation": "

Adds one or more tags to a trail, event data store, dashboard, or channel, up to a limit of 50. Overwrites an\n existing tag's value when a new value is specified for an existing tag key. Tag key names\n must be unique; you cannot have two keys with the same name but different\n values. If you specify a key without a value, the tag will be created with the specified\n key and a value of null. You can tag a trail or event data store that applies to all\n Amazon Web Services Regions only from the Region in which the trail or event data store\n was created (also known as its home Region).

", "smithy.api#idempotent": {} } }, @@ -208,7 +208,7 @@ "ResourceId": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the ARN of the trail, event data store, or channel to which one or more tags will be\n added.

\n

The format of a trail ARN is:\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

\n

The format of an event data store ARN is:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

The format of a channel ARN is:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", + "smithy.api#documentation": "

Specifies the ARN of the trail, event data store, dashboard, or channel to which one or more tags will be\n added.

\n

The format of a trail ARN is:\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

\n

The format of an event data store ARN is:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

The format of a dashboard ARN is: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash\n

\n

The format of a channel ARN is:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", "smithy.api#required": {} } }, @@ -221,7 +221,7 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies the tags to add to a trail, event data store, or channel.

", + "smithy.api#documentation": "

Specifies the tags to add to a trail, event data store, dashboard, or channel.

", "smithy.api#input": {} } }, @@ -408,6 +408,12 @@ "smithy.api#documentation": "

The ID of the query that you want to cancel. The QueryId comes from the\n response of a StartQuery operation.

", "smithy.api#required": {} } + }, + "EventDataStoreOwnerAccountId": { + "target": "com.amazonaws.cloudtrail#AccountId", + "traits": { + "smithy.api#documentation": "

\nThe account ID of the event data store owner.\n

" + } } }, "traits": { @@ -430,6 +436,12 @@ "smithy.api#documentation": "

Shows the status of a query after a CancelQuery request. Typically, the\n values shown are either RUNNING or CANCELLED.

", "smithy.api#required": {} } + }, + "EventDataStoreOwnerAccountId": { + "target": "com.amazonaws.cloudtrail#AccountId", + "traits": { + "smithy.api#documentation": "

\n The account ID of the event data store owner.\n

" + } } }, "traits": { @@ -617,7 +629,7 @@ "code": "CloudTrailARNInvalid", "httpResponseCode": 400 }, - "smithy.api#documentation": "

This exception is thrown when an operation is called with an ARN that is not valid.

\n

The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

\n

The following is the format of an event data store ARN:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

The following is the format of a channel ARN:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", + "smithy.api#documentation": "

This exception is thrown when an operation is called with an ARN that is not valid.

\n

The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

\n

The following is the format of an event data store ARN:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash\n

\n

The following is the format of a channel ARN:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -675,6 +687,9 @@ { "target": "com.amazonaws.cloudtrail#CreateChannel" }, + { + "target": "com.amazonaws.cloudtrail#CreateDashboard" + }, { "target": "com.amazonaws.cloudtrail#CreateEventDataStore" }, @@ -684,6 +699,9 @@ { "target": "com.amazonaws.cloudtrail#DeleteChannel" }, + { + "target": "com.amazonaws.cloudtrail#DeleteDashboard" + }, { "target": "com.amazonaws.cloudtrail#DeleteEventDataStore" }, @@ -714,6 +732,9 @@ { "target": "com.amazonaws.cloudtrail#GetChannel" }, + { + "target": "com.amazonaws.cloudtrail#GetDashboard" + }, { "target": "com.amazonaws.cloudtrail#GetEventDataStore" }, @@ -741,6 +762,9 @@ { "target": "com.amazonaws.cloudtrail#ListChannels" }, + { + "target": "com.amazonaws.cloudtrail#ListDashboards" + }, { "target": "com.amazonaws.cloudtrail#ListEventDataStores" }, @@ -786,6 +810,9 @@ { "target": "com.amazonaws.cloudtrail#RestoreEventDataStore" }, + { + "target": "com.amazonaws.cloudtrail#StartDashboardRefresh" + }, { "target": "com.amazonaws.cloudtrail#StartEventDataStoreIngestion" }, @@ -810,6 +837,9 @@ { "target": "com.amazonaws.cloudtrail#UpdateChannel" }, + { + "target": "com.amazonaws.cloudtrail#UpdateDashboard" + }, { "target": "com.amazonaws.cloudtrail#UpdateEventDataStore" }, @@ -2043,6 +2073,128 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudtrail#CreateDashboard": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudtrail#CreateDashboardRequest" + }, + "output": { + "target": "com.amazonaws.cloudtrail#CreateDashboardResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudtrail#ConflictException" + }, + { + "target": "com.amazonaws.cloudtrail#EventDataStoreNotFoundException" + }, + { + "target": "com.amazonaws.cloudtrail#InactiveEventDataStoreException" + }, + { + "target": "com.amazonaws.cloudtrail#InsufficientEncryptionPolicyException" + }, + { + "target": "com.amazonaws.cloudtrail#InvalidQueryStatementException" + }, + { + "target": "com.amazonaws.cloudtrail#InvalidTagParameterException" + }, + { + "target": "com.amazonaws.cloudtrail#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.cloudtrail#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

\nCreates a custom dashboard or the Highlights dashboard.\n

\n \n

\n CloudTrail runs queries to populate the dashboard's widgets during a manual or scheduled refresh. CloudTrail must be granted permissions to run the StartQuery operation on your behalf. To provide permissions, run the PutResourcePolicy operation to attach a resource-based policy to each event data store. For more information, \n see Example: Allow CloudTrail to run queries to populate a dashboard in the CloudTrail User Guide.\n

\n

\n To set a refresh schedule, CloudTrail must be granted permissions to run the StartDashboardRefresh operation to refresh the dashboard on your behalf. To provide permissions, run the PutResourcePolicy operation to attach a resource-based policy to the dashboard. For more information, \n see \n Resource-based policy example for a dashboard in the CloudTrail User Guide.\n

\n

For more information about dashboards, see CloudTrail Lake dashboards in the CloudTrail User Guide.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudtrail#CreateDashboardRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudtrail#DashboardName", + "traits": { + "smithy.api#documentation": "

\n The name of the dashboard. The name must be unique to your account.\n

\n

To create the Highlights dashboard, the name must be AWSCloudTrail-Highlights.

", + "smithy.api#required": {} + } + }, + "RefreshSchedule": { + "target": "com.amazonaws.cloudtrail#RefreshSchedule", + "traits": { + "smithy.api#documentation": "

\n The refresh schedule configuration for the dashboard.\n

\n

To create the Highlights dashboard, you must set a refresh schedule and set the Status to ENABLED. The Unit for the refresh schedule must be HOURS \n and the Value must be 6.

" + } + }, + "TagsList": { + "target": "com.amazonaws.cloudtrail#TagsList" + }, + "TerminationProtectionEnabled": { + "target": "com.amazonaws.cloudtrail#TerminationProtectionEnabled", + "traits": { + "smithy.api#documentation": "

\n Specifies whether termination protection is enabled for the dashboard. If termination protection is enabled, you cannot delete the dashboard until termination protection is disabled.\n

" + } + }, + "Widgets": { + "target": "com.amazonaws.cloudtrail#RequestWidgetList", + "traits": { + "smithy.api#documentation": "

\nAn array of widgets for a custom dashboard. A custom dashboard can have a maximum of ten widgets.\n

\n

You do not need to specify widgets for the Highlights dashboard.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudtrail#CreateDashboardResponse": { + "type": "structure", + "members": { + "DashboardArn": { + "target": "com.amazonaws.cloudtrail#DashboardArn", + "traits": { + "smithy.api#documentation": "

\nThe ARN for the dashboard.\n

" + } + }, + "Name": { + "target": "com.amazonaws.cloudtrail#DashboardName", + "traits": { + "smithy.api#documentation": "

\nThe name of the dashboard.\n

" + } + }, + "Type": { + "target": "com.amazonaws.cloudtrail#DashboardType", + "traits": { + "smithy.api#documentation": "

\nThe dashboard type.\n

" + } + }, + "Widgets": { + "target": "com.amazonaws.cloudtrail#WidgetList", + "traits": { + "smithy.api#documentation": "

\nAn array of widgets for the dashboard.\n

" + } + }, + "TagsList": { + "target": "com.amazonaws.cloudtrail#TagsList" + }, + "RefreshSchedule": { + "target": "com.amazonaws.cloudtrail#RefreshSchedule", + "traits": { + "smithy.api#documentation": "

\nThe refresh schedule for the dashboard, if configured.\n

" + } + }, + "TerminationProtectionEnabled": { + "target": "com.amazonaws.cloudtrail#TerminationProtectionEnabled", + "traits": { + "smithy.api#documentation": "

\n Indicates whether termination protection is enabled for the dashboard.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.cloudtrail#CreateEventDataStore": { "type": "operation", "input": { @@ -2542,6 +2694,100 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudtrail#DashboardArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z0-9._/\\-:]+$" + } + }, + "com.amazonaws.cloudtrail#DashboardDetail": { + "type": "structure", + "members": { + "DashboardArn": { + "target": "com.amazonaws.cloudtrail#DashboardArn", + "traits": { + "smithy.api#documentation": "

\nThe ARN for the dashboard.\n

" + } + }, + "Type": { + "target": "com.amazonaws.cloudtrail#DashboardType", + "traits": { + "smithy.api#documentation": "

\nThe type of dashboard.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nProvides information about a CloudTrail Lake dashboard.\n

" + } + }, + "com.amazonaws.cloudtrail#DashboardName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_\\-]+$" + } + }, + "com.amazonaws.cloudtrail#DashboardStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATED" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATING" + } + }, + "UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATED" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + } + } + }, + "com.amazonaws.cloudtrail#DashboardType": { + "type": "enum", + "members": { + "MANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANAGED" + } + }, + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM" + } + } + } + }, + "com.amazonaws.cloudtrail#Dashboards": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudtrail#DashboardDetail" + } + }, "com.amazonaws.cloudtrail#DataResource": { "type": "structure", "members": { @@ -2645,6 +2891,52 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudtrail#DeleteDashboard": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudtrail#DeleteDashboardRequest" + }, + "output": { + "target": "com.amazonaws.cloudtrail#DeleteDashboardResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudtrail#ConflictException" + }, + { + "target": "com.amazonaws.cloudtrail#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudtrail#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

\nDeletes the specified dashboard. You cannot delete a dashboard that has termination protection enabled.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudtrail#DeleteDashboardRequest": { + "type": "structure", + "members": { + "DashboardId": { + "target": "com.amazonaws.cloudtrail#DashboardArn", + "traits": { + "smithy.api#documentation": "

\nThe name or ARN for the dashboard.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudtrail#DeleteDashboardResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.cloudtrail#DeleteEventDataStore": { "type": "operation", "input": { @@ -2732,6 +3024,9 @@ "target": "com.amazonaws.cloudtrail#DeleteResourcePolicyResponse" }, "errors": [ + { + "target": "com.amazonaws.cloudtrail#ConflictException" + }, { "target": "com.amazonaws.cloudtrail#OperationNotPermittedException" }, @@ -2752,7 +3047,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Deletes the resource-based policy attached to the CloudTrail channel.\n

", + "smithy.api#documentation": "

\n Deletes the resource-based policy attached to the CloudTrail event data store, dashboard, or channel.\n

", "smithy.api#idempotent": {} } }, @@ -2762,7 +3057,7 @@ "ResourceArn": { "target": "com.amazonaws.cloudtrail#ResourceArn", "traits": { - "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the CloudTrail channel you're deleting the resource-based policy from. \n The following is the format of a resource ARN: \n arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel.\n

", + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the CloudTrail event data store, dashboard, or channel you're deleting the resource-based policy from.

\n

Example event data store ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash\n

\n

Example channel ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", "smithy.api#required": {} } } @@ -3026,7 +3321,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns metadata about a query, including query run time in milliseconds, number of\n events scanned and matched, and query status. If the query results were delivered to an S3 bucket, \n the response also provides the S3 URI and the delivery status.

\n

You must specify either a QueryID or a QueryAlias. Specifying\n the QueryAlias parameter returns information about the last query run for the\n alias.

", + "smithy.api#documentation": "

Returns metadata about a query, including query run time in milliseconds, number of\n events scanned and matched, and query status. If the query results were delivered to an S3 bucket, \n the response also provides the S3 URI and the delivery status.

\n

You must specify either QueryId or QueryAlias. Specifying the QueryAlias parameter \n returns information about the last query run for the alias. You can provide \n RefreshId along with QueryAlias to view the query results \n of a dashboard query for the specified RefreshId.

", "smithy.api#idempotent": {} } }, @@ -3053,6 +3348,18 @@ "traits": { "smithy.api#documentation": "

\n The alias that identifies a query template.\n

" } + }, + "RefreshId": { + "target": "com.amazonaws.cloudtrail#RefreshId", + "traits": { + "smithy.api#documentation": "

\nThe ID of the dashboard refresh.\n

" + } + }, + "EventDataStoreOwnerAccountId": { + "target": "com.amazonaws.cloudtrail#AccountId", + "traits": { + "smithy.api#documentation": "

\nThe account ID of the event data store owner.\n

" + } } }, "traits": { @@ -3109,6 +3416,12 @@ "traits": { "smithy.api#documentation": "

\n The prompt used for a generated query. For information about generated queries, see \n Create CloudTrail Lake queries from natural language prompts \n in the CloudTrail user guide.\n

" } + }, + "EventDataStoreOwnerAccountId": { + "target": "com.amazonaws.cloudtrail#AccountId", + "traits": { + "smithy.api#documentation": "

\n The account ID of the event data store owner.\n

" + } } }, "traits": { @@ -4044,6 +4357,12 @@ "traits": { "smithy.api#documentation": "

\n An alias that identifies the prompt. When you run the StartQuery operation, you can pass in either the QueryAlias or \n QueryStatement parameter.\n

" } + }, + "EventDataStoreOwnerAccountId": { + "target": "com.amazonaws.cloudtrail#AccountId", + "traits": { + "smithy.api#documentation": "

\n The account ID of the event data store owner.\n

" + } } }, "traits": { @@ -4156,44 +4475,148 @@ "smithy.api#output": {} } }, - "com.amazonaws.cloudtrail#GetEventDataStore": { + "com.amazonaws.cloudtrail#GetDashboard": { "type": "operation", "input": { - "target": "com.amazonaws.cloudtrail#GetEventDataStoreRequest" + "target": "com.amazonaws.cloudtrail#GetDashboardRequest" }, "output": { - "target": "com.amazonaws.cloudtrail#GetEventDataStoreResponse" + "target": "com.amazonaws.cloudtrail#GetDashboardResponse" }, "errors": [ { - "target": "com.amazonaws.cloudtrail#EventDataStoreARNInvalidException" - }, - { - "target": "com.amazonaws.cloudtrail#EventDataStoreNotFoundException" - }, - { - "target": "com.amazonaws.cloudtrail#InvalidParameterException" - }, - { - "target": "com.amazonaws.cloudtrail#NoManagementAccountSLRExistsException" - }, - { - "target": "com.amazonaws.cloudtrail#OperationNotPermittedException" + "target": "com.amazonaws.cloudtrail#ResourceNotFoundException" }, { "target": "com.amazonaws.cloudtrail#UnsupportedOperationException" } ], "traits": { - "smithy.api#documentation": "

Returns information about an event data store specified as either an ARN or the ID\n portion of the ARN.

", + "smithy.api#documentation": "

\nReturns the specified dashboard.\n

", "smithy.api#idempotent": {} } }, - "com.amazonaws.cloudtrail#GetEventDataStoreRequest": { + "com.amazonaws.cloudtrail#GetDashboardRequest": { "type": "structure", "members": { - "EventDataStore": { - "target": "com.amazonaws.cloudtrail#EventDataStoreArn", + "DashboardId": { + "target": "com.amazonaws.cloudtrail#DashboardArn", + "traits": { + "smithy.api#documentation": "

\nThe name or ARN for the dashboard.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudtrail#GetDashboardResponse": { + "type": "structure", + "members": { + "DashboardArn": { + "target": "com.amazonaws.cloudtrail#DashboardArn", + "traits": { + "smithy.api#documentation": "

\n The ARN for the dashboard.\n

" + } + }, + "Type": { + "target": "com.amazonaws.cloudtrail#DashboardType", + "traits": { + "smithy.api#documentation": "

\nThe type of dashboard.\n

" + } + }, + "Status": { + "target": "com.amazonaws.cloudtrail#DashboardStatus", + "traits": { + "smithy.api#documentation": "

\nThe status of the dashboard.\n

" + } + }, + "Widgets": { + "target": "com.amazonaws.cloudtrail#WidgetList", + "traits": { + "smithy.api#documentation": "

\nAn array of widgets for the dashboard.\n

" + } + }, + "RefreshSchedule": { + "target": "com.amazonaws.cloudtrail#RefreshSchedule", + "traits": { + "smithy.api#documentation": "

\nThe refresh schedule for the dashboard, if configured.\n

" + } + }, + "CreatedTimestamp": { + "target": "com.amazonaws.cloudtrail#Date", + "traits": { + "smithy.api#documentation": "

\n The timestamp that shows when the dashboard was created.\n

" + } + }, + "UpdatedTimestamp": { + "target": "com.amazonaws.cloudtrail#Date", + "traits": { + "smithy.api#documentation": "

\n The timestamp that shows when the dashboard was last updated.\n

" + } + }, + "LastRefreshId": { + "target": "com.amazonaws.cloudtrail#RefreshId", + "traits": { + "smithy.api#documentation": "

\nThe ID of the last dashboard refresh.\n

" + } + }, + "LastRefreshFailureReason": { + "target": "com.amazonaws.cloudtrail#ErrorMessage", + "traits": { + "smithy.api#documentation": "

\nProvides information about failures for the last scheduled refresh.\n

" + } + }, + "TerminationProtectionEnabled": { + "target": "com.amazonaws.cloudtrail#TerminationProtectionEnabled", + "traits": { + "smithy.api#documentation": "

\nIndicates whether termination protection is enabled for the dashboard.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudtrail#GetEventDataStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudtrail#GetEventDataStoreRequest" + }, + "output": { + "target": "com.amazonaws.cloudtrail#GetEventDataStoreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudtrail#EventDataStoreARNInvalidException" + }, + { + "target": "com.amazonaws.cloudtrail#EventDataStoreNotFoundException" + }, + { + "target": "com.amazonaws.cloudtrail#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudtrail#NoManagementAccountSLRExistsException" + }, + { + "target": "com.amazonaws.cloudtrail#OperationNotPermittedException" + }, + { + "target": "com.amazonaws.cloudtrail#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about an event data store specified as either an ARN or the ID\n portion of the ARN.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudtrail#GetEventDataStoreRequest": { + "type": "structure", + "members": { + "EventDataStore": { + "target": "com.amazonaws.cloudtrail#EventDataStoreArn", "traits": { "smithy.api#documentation": "

The ARN (or ID suffix of the ARN) of the event data store about which you want\n information.

", "smithy.api#required": {} @@ -4657,6 +5080,12 @@ "traits": { "smithy.api#documentation": "

The maximum number of query results to display on a single page.

" } + }, + "EventDataStoreOwnerAccountId": { + "target": "com.amazonaws.cloudtrail#AccountId", + "traits": { + "smithy.api#documentation": "

\nThe account ID of the event data store owner.\n

" + } } }, "traits": { @@ -4730,7 +5159,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Retrieves the JSON text of the resource-based policy document attached to the CloudTrail channel.\n

", + "smithy.api#documentation": "

\n Retrieves the JSON text of the resource-based policy document attached to the CloudTrail event data store, dashboard, or channel.\n

", "smithy.api#idempotent": {} } }, @@ -4740,7 +5169,7 @@ "ResourceArn": { "target": "com.amazonaws.cloudtrail#ResourceArn", "traits": { - "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the CloudTrail channel attached to the resource-based policy. \n The following is the format of a resource ARN: \n arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel.\n

", + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the CloudTrail event data store, dashboard, or channel attached to the resource-based policy.

\n

Example event data store ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash\n

\n

Example channel ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", "smithy.api#required": {} } } @@ -4755,13 +5184,19 @@ "ResourceArn": { "target": "com.amazonaws.cloudtrail#ResourceArn", "traits": { - "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the CloudTrail channel attached to resource-based policy. \n

" + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the CloudTrail event data store, dashboard, or channel attached to resource-based policy. \n

\n

Example event data store ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash\n

\n

Example channel ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

" } }, "ResourcePolicy": { "target": "com.amazonaws.cloudtrail#ResourcePolicy", "traits": { - "smithy.api#documentation": "

\n A JSON-formatted string that contains the resource-based policy attached to the CloudTrail channel.\n

" + "smithy.api#documentation": "

\n A JSON-formatted string that contains the resource-based policy attached to the CloudTrail event data store, dashboard, or channel.\n

" + } + }, + "DelegatedAdminResourcePolicy": { + "target": "com.amazonaws.cloudtrail#ResourcePolicy", + "traits": { + "smithy.api#documentation": "

\n The default resource-based policy that is automatically generated for the delegated administrator of an Organizations organization. \n This policy will be evaluated in tandem with any policy you submit for the resource. For more information about this policy, \n see Default resource policy for delegated administrators.\n

" } } }, @@ -4861,7 +5296,7 @@ "Name": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the name or the CloudTrail ARN of the trail for which you are\n requesting status. To get the status of a shadow trail (a replication of the trail in\n another Region), you must specify its ARN. The following is the format of a trail\n ARN.

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", + "smithy.api#documentation": "

Specifies the name or the CloudTrail ARN of the trail for which you are\n requesting status. To get the status of a shadow trail (a replication of the trail in\n another Region), you must specify its ARN.

\n

\n The following is the format of a trail\n ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

\n \n

If the trail is an organization trail and you are a member account in the organization in Organizations, you must provide the full ARN of that trail, and not just the name.

\n
", "smithy.api#required": {} } } @@ -5433,7 +5868,7 @@ "code": "InsufficientEncryptionPolicy", "httpResponseCode": 400 }, - "smithy.api#documentation": "

This exception is thrown when the policy on the S3 bucket or KMS key does\n not have sufficient permissions for the operation.

", + "smithy.api#documentation": "

For the CreateTrail\n PutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown \n when the policy on the S3 bucket or KMS key does\n not have sufficient permissions for the operation.

\n

For all other operations, this exception is thrown when the policy for the KMS key does\n not have sufficient permissions for the operation.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -6140,6 +6575,85 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudtrail#ListDashboards": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudtrail#ListDashboardsRequest" + }, + "output": { + "target": "com.amazonaws.cloudtrail#ListDashboardsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudtrail#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Returns information about all dashboards in the account, in the current Region.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudtrail#ListDashboardsMaxResultsCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.cloudtrail#ListDashboardsRequest": { + "type": "structure", + "members": { + "NamePrefix": { + "target": "com.amazonaws.cloudtrail#DashboardName", + "traits": { + "smithy.api#documentation": "

\nSpecify a name prefix to filter on.\n

" + } + }, + "Type": { + "target": "com.amazonaws.cloudtrail#DashboardType", + "traits": { + "smithy.api#documentation": "

\nSpecify a dashboard type to filter on: CUSTOM or MANAGED.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudtrail#PaginationToken", + "traits": { + "smithy.api#documentation": "

\n A token you can use to get the next page of dashboard results.\n

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudtrail#ListDashboardsMaxResultsCount", + "traits": { + "smithy.api#documentation": "

\n The maximum number of dashboards to display on a single page.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudtrail#ListDashboardsResponse": { + "type": "structure", + "members": { + "Dashboards": { + "target": "com.amazonaws.cloudtrail#Dashboards", + "traits": { + "smithy.api#documentation": "

\n Contains information about dashboards in the account, in the current Region that match the applied filters.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudtrail#PaginationToken", + "traits": { + "smithy.api#documentation": "

\n A token you can use to get the next page of dashboard results.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.cloudtrail#ListEventDataStores": { "type": "operation", "input": { @@ -6490,13 +7004,13 @@ "DataType": { "target": "com.amazonaws.cloudtrail#InsightsMetricDataType", "traits": { - "smithy.api#documentation": "

Type of datapoints to return. Valid values are NonZeroData and \n FillWithZeros. The default is NonZeroData.

" + "smithy.api#documentation": "

Type of data points to return. Valid values are NonZeroData and \n FillWithZeros. The default is NonZeroData.

" } }, "MaxResults": { "target": "com.amazonaws.cloudtrail#InsightsMetricMaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of datapoints to return. Valid values are integers from 1 to 21600. \n The default value is 21600.

" + "smithy.api#documentation": "

The maximum number of data points to return. Valid values are integers from 1 to 21600. \n The default value is 21600.

" } }, "NextToken": { @@ -6814,7 +7328,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the tags for the specified trails, event data stores, or channels in the current Region.

", + "smithy.api#documentation": "

Lists the tags for the specified trails, event data stores, dashboards, or channels in the current Region.

", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "NextToken", @@ -6829,7 +7343,7 @@ "ResourceIdList": { "target": "com.amazonaws.cloudtrail#ResourceIdList", "traits": { - "smithy.api#documentation": "

Specifies a list of trail, event data store, or channel ARNs whose tags will be listed. The list\n has a limit of 20 ARNs.

\n

Example trail ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

\n

Example event data store ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

Example channel ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", + "smithy.api#documentation": "

Specifies a list of trail, event data store, dashboard, or channel ARNs whose tags will be listed. The list\n has a limit of 20 ARNs.

\n

Example trail ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

\n

Example event data store ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash\n

\n

Example channel ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", "smithy.api#required": {} } }, @@ -7692,6 +8206,9 @@ "target": "com.amazonaws.cloudtrail#PutResourcePolicyResponse" }, "errors": [ + { + "target": "com.amazonaws.cloudtrail#ConflictException" + }, { "target": "com.amazonaws.cloudtrail#OperationNotPermittedException" }, @@ -7712,7 +8229,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Attaches a resource-based permission policy to a CloudTrail channel that is used for an integration with an event source outside of Amazon Web Services. For more information about resource-based policies, see \n CloudTrail resource-based policy examples \n in the CloudTrail User Guide.\n

", + "smithy.api#documentation": "

\n Attaches a resource-based permission policy to a CloudTrail event data store, dashboard, or channel. For more information about resource-based policies, see \n CloudTrail resource-based policy examples \n in the CloudTrail User Guide.\n

", "smithy.api#idempotent": {} } }, @@ -7722,14 +8239,14 @@ "ResourceArn": { "target": "com.amazonaws.cloudtrail#ResourceArn", "traits": { - "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the CloudTrail channel attached to the resource-based policy. \n The following is the format of a resource ARN: \n arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel.\n

", + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the CloudTrail event data store, dashboard, or channel attached to the resource-based policy.

\n

Example event data store ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash\n

\n

Example channel ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", "smithy.api#required": {} } }, "ResourcePolicy": { "target": "com.amazonaws.cloudtrail#ResourcePolicy", "traits": { - "smithy.api#documentation": "

\n A JSON-formatted string for an Amazon Web Services resource-based policy.\n

\n

The following are requirements for the resource policy:

\n ", + "smithy.api#documentation": "

\n A JSON-formatted string for an Amazon Web Services resource-based policy.\n

\n

For example resource-based policies, see \n CloudTrail resource-based policy examples \n in the CloudTrail User Guide.

", "smithy.api#required": {} } } @@ -7744,13 +8261,19 @@ "ResourceArn": { "target": "com.amazonaws.cloudtrail#ResourceArn", "traits": { - "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the CloudTrail channel attached to the resource-based policy.\n

" + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the CloudTrail event data store, dashboard, or channel attached to the resource-based policy.\n

\n

Example event data store ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash\n

\n

Example channel ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

" } }, "ResourcePolicy": { "target": "com.amazonaws.cloudtrail#ResourcePolicy", "traits": { - "smithy.api#documentation": "

\n The JSON-formatted string of the Amazon Web Services resource-based policy attached to the CloudTrail channel.\n

" + "smithy.api#documentation": "

\n The JSON-formatted string of the Amazon Web Services resource-based policy attached to the CloudTrail event data store, dashboard, or channel.\n

" + } + }, + "DelegatedAdminResourcePolicy": { + "target": "com.amazonaws.cloudtrail#ResourcePolicy", + "traits": { + "smithy.api#documentation": "

\n The default resource-based policy that is automatically generated for the delegated administrator of an Organizations organization. \n This policy will be evaluated in tandem with any policy you submit for the resource. For more information about this policy, \n see Default resource policy for delegated administrators.\n

" } } }, @@ -7830,6 +8353,35 @@ "smithy.api#pattern": ".*" } }, + "com.amazonaws.cloudtrail#QueryParameterKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9._/\\-:$]+$" + } + }, + "com.amazonaws.cloudtrail#QueryParameterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9._/\\-:]+$" + } + }, + "com.amazonaws.cloudtrail#QueryParameterValues": { + "type": "map", + "key": { + "target": "com.amazonaws.cloudtrail#QueryParameterKey" + }, + "value": { + "target": "com.amazonaws.cloudtrail#QueryParameterValue" + } + }, "com.amazonaws.cloudtrail#QueryParameters": { "type": "list", "member": { @@ -8007,6 +8559,99 @@ } } }, + "com.amazonaws.cloudtrail#RefreshId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 10, + "max": 20 + }, + "smithy.api#pattern": "^\\d+$" + } + }, + "com.amazonaws.cloudtrail#RefreshSchedule": { + "type": "structure", + "members": { + "Frequency": { + "target": "com.amazonaws.cloudtrail#RefreshScheduleFrequency", + "traits": { + "smithy.api#documentation": "

\nThe frequency at which you want the dashboard refreshed.\n

" + } + }, + "Status": { + "target": "com.amazonaws.cloudtrail#RefreshScheduleStatus", + "traits": { + "smithy.api#documentation": "

\nSpecifies whether the refresh schedule is enabled. Set the value to ENABLED to enable the refresh schedule, or to DISABLED to turn off the refresh schedule.\n

" + } + }, + "TimeOfDay": { + "target": "com.amazonaws.cloudtrail#TimeOfDay", + "traits": { + "smithy.api#documentation": "

\n The time of day in UTC to run the schedule; for hourly only refer to minutes; default is 00:00.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nThe schedule for a dashboard refresh.\n

" + } + }, + "com.amazonaws.cloudtrail#RefreshScheduleFrequency": { + "type": "structure", + "members": { + "Unit": { + "target": "com.amazonaws.cloudtrail#RefreshScheduleFrequencyUnit", + "traits": { + "smithy.api#documentation": "

\n The unit to use for the refresh.\n

\n

For custom dashboards, the unit can be HOURS or DAYS.

\n

For the Highlights dashboard, the Unit must be HOURS.

" + } + }, + "Value": { + "target": "com.amazonaws.cloudtrail#RefreshScheduleFrequencyValue", + "traits": { + "smithy.api#documentation": "

\nThe value for the refresh schedule.\n

\n

\n For custom dashboards, the following values are valid when the unit is HOURS: 1, 6, 12, 24\n

\n

For custom dashboards, the only valid value when the unit is DAYS is 1.

\n

For the Highlights dashboard, the Value must be 6.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nSpecifies the frequency for a dashboard refresh schedule.\n

\n

\n For a custom dashboard, you can schedule a refresh for every 1, 6, 12, or 24 hours, or every day.\n

" + } + }, + "com.amazonaws.cloudtrail#RefreshScheduleFrequencyUnit": { + "type": "enum", + "members": { + "HOURS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOURS" + } + }, + "DAYS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DAYS" + } + } + } + }, + "com.amazonaws.cloudtrail#RefreshScheduleFrequencyValue": { + "type": "integer" + }, + "com.amazonaws.cloudtrail#RefreshScheduleStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, "com.amazonaws.cloudtrail#RegisterOrganizationDelegatedAdmin": { "type": "operation", "input": { @@ -8141,7 +8786,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes the specified tags from a trail, event data store, or channel.

", + "smithy.api#documentation": "

Removes the specified tags from a trail, event data store, dashboard, or channel.

", "smithy.api#idempotent": {} } }, @@ -8151,7 +8796,7 @@ "ResourceId": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the ARN of the trail, event data store, or channel from which tags should be\n removed.

\n

Example trail ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

\n

Example event data store ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

Example channel ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", + "smithy.api#documentation": "

Specifies the ARN of the trail, event data store, dashboard, or channel from which tags should be\n removed.

\n

Example trail ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

\n

Example event data store ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash\n

\n

Example channel ARN format:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", "smithy.api#required": {} } }, @@ -8164,7 +8809,7 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies the tags to remove from a trail, event data store, or channel.

", + "smithy.api#documentation": "

Specifies the tags to remove from a trail, event data store, dashboard, or channel.

", "smithy.api#input": {} } }, @@ -8176,6 +8821,40 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudtrail#RequestWidget": { + "type": "structure", + "members": { + "QueryStatement": { + "target": "com.amazonaws.cloudtrail#QueryStatement", + "traits": { + "smithy.api#documentation": "

\nThe query statement for the widget. For custom dashboard widgets, you can query across multiple event data stores as long as all event data stores exist in your account.\n

\n \n

When a query uses ? with eventTime, ? must be surrounded by single quotes as follows: '?'.

\n
", + "smithy.api#required": {} + } + }, + "QueryParameters": { + "target": "com.amazonaws.cloudtrail#QueryParameters", + "traits": { + "smithy.api#documentation": "

\n The optional query parameters. The following query parameters are valid: $StartTime$, $EndTime$, and $Period$.\n

" + } + }, + "ViewProperties": { + "target": "com.amazonaws.cloudtrail#ViewPropertiesMap", + "traits": { + "smithy.api#documentation": "

\n The view properties for the widget. For more information about view properties, see \n View properties for widgets\n in the CloudTrail User Guide.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\nContains information about a widget on a CloudTrail Lake dashboard.\n

" + } + }, + "com.amazonaws.cloudtrail#RequestWidgetList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudtrail#RequestWidget" + } + }, "com.amazonaws.cloudtrail#Resource": { "type": "structure", "members": { @@ -8211,7 +8890,7 @@ "code": "ResourceARNNotValid", "httpResponseCode": 400 }, - "smithy.api#documentation": "

\n This exception is thrown when the provided resource does not exist, or the ARN format of the resource is not valid. The following is the valid format for a resource ARN: \n arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel.\n

", + "smithy.api#documentation": "

\n This exception is thrown when the provided resource does not exist, or the ARN format of the resource is not valid.\n

\n

The following is the format of an event data store ARN:\n arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE\n

\n

The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash\n

\n

The following is the format of a channel ARN:\n arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890\n

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -8305,7 +8984,7 @@ "code": "ResourcePolicyNotValid", "httpResponseCode": 400 }, - "smithy.api#documentation": "

\n This exception is thrown when the resouce-based policy has syntax errors, or contains a principal that is not valid.\n

\n

The following are requirements for the resource policy:

\n ", + "smithy.api#documentation": "

\n This exception is thrown when the resouce-based policy has syntax errors, or contains a principal that is not valid.\n

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -8582,6 +9261,26 @@ "smithy.api#pattern": ".*" } }, + "com.amazonaws.cloudtrail#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudtrail#ErrorMessage", + "traits": { + "smithy.api#documentation": "

Brief description of the exception returned by the request.

" + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ServiceQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

\n This exception is thrown when the quota is exceeded. For information about CloudTrail quotas, see Service quotas \n in the Amazon Web Services General Reference.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.cloudtrail#Source": { "type": "string", "traits": { @@ -8612,6 +9311,71 @@ "smithy.api#documentation": "

Contains configuration information about the channel.

" } }, + "com.amazonaws.cloudtrail#StartDashboardRefresh": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudtrail#StartDashboardRefreshRequest" + }, + "output": { + "target": "com.amazonaws.cloudtrail#StartDashboardRefreshResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudtrail#EventDataStoreNotFoundException" + }, + { + "target": "com.amazonaws.cloudtrail#InactiveEventDataStoreException" + }, + { + "target": "com.amazonaws.cloudtrail#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudtrail#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.cloudtrail#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

\nStarts a refresh of the specified dashboard.\n

\n

\n Each time a dashboard is refreshed, CloudTrail runs queries to populate the dashboard's widgets. CloudTrail must be granted permissions to run the StartQuery operation on your behalf. To provide permissions, run the PutResourcePolicy operation to attach a resource-based policy to each event data store. For more information, \n see Example: Allow CloudTrail to run queries to populate a dashboard in the CloudTrail User Guide.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudtrail#StartDashboardRefreshRequest": { + "type": "structure", + "members": { + "DashboardId": { + "target": "com.amazonaws.cloudtrail#DashboardArn", + "traits": { + "smithy.api#documentation": "

\nThe name or ARN of the dashboard.\n

", + "smithy.api#required": {} + } + }, + "QueryParameterValues": { + "target": "com.amazonaws.cloudtrail#QueryParameterValues", + "traits": { + "smithy.api#documentation": "

\n The query parameter values for the dashboard\n

\n

For custom dashboards, the following query parameters are valid: $StartTime$, $EndTime$, and $Period$.

\n

For managed dashboards, the following query parameters are valid: $StartTime$,\n $EndTime$, $Period$, and $EventDataStoreId$. The\n $EventDataStoreId$ query parameter is required.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudtrail#StartDashboardRefreshResponse": { + "type": "structure", + "members": { + "RefreshId": { + "target": "com.amazonaws.cloudtrail#RefreshId", + "traits": { + "smithy.api#documentation": "

\nThe refresh ID for the dashboard.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.cloudtrail#StartEventDataStoreIngestion": { "type": "operation", "input": { @@ -8977,6 +9741,12 @@ "traits": { "smithy.api#documentation": "

\n The query parameters for the specified QueryAlias.\n

" } + }, + "EventDataStoreOwnerAccountId": { + "target": "com.amazonaws.cloudtrail#AccountId", + "traits": { + "smithy.api#documentation": "

\nThe account ID of the event data store owner.\n

" + } } }, "traits": { @@ -8991,6 +9761,12 @@ "traits": { "smithy.api#documentation": "

The ID of the started query.

" } + }, + "EventDataStoreOwnerAccountId": { + "target": "com.amazonaws.cloudtrail#AccountId", + "traits": { + "smithy.api#documentation": "

\n The account ID of the event data store owner.\n

" + } } }, "traits": { @@ -9259,7 +10035,7 @@ } }, "traits": { - "smithy.api#documentation": "

A custom key-value pair associated with a resource such as a CloudTrail\n trail, event data store, or channel.

" + "smithy.api#documentation": "

A custom key-value pair associated with a resource such as a CloudTrail\n trail, event data store, dashboard, or channel.

" } }, "com.amazonaws.cloudtrail#TagKey": { @@ -9295,7 +10071,7 @@ "code": "TagsLimitExceeded", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The number of tags per trail, event data store, or channel has exceeded the permitted amount. Currently, the limit is\n 50.

", + "smithy.api#documentation": "

The number of tags per trail, event data store, dashboard, or channel has exceeded the permitted amount. Currently, the limit is\n 50.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -9336,6 +10112,12 @@ "smithy.api#httpError": 429 } }, + "com.amazonaws.cloudtrail#TimeOfDay": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[0-9]{2}:[0-9]{2}$" + } + }, "com.amazonaws.cloudtrail#Timestamps": { "type": "list", "member": { @@ -9685,6 +10467,134 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudtrail#UpdateDashboard": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudtrail#UpdateDashboardRequest" + }, + "output": { + "target": "com.amazonaws.cloudtrail#UpdateDashboardResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudtrail#ConflictException" + }, + { + "target": "com.amazonaws.cloudtrail#EventDataStoreNotFoundException" + }, + { + "target": "com.amazonaws.cloudtrail#InactiveEventDataStoreException" + }, + { + "target": "com.amazonaws.cloudtrail#InsufficientEncryptionPolicyException" + }, + { + "target": "com.amazonaws.cloudtrail#InvalidQueryStatementException" + }, + { + "target": "com.amazonaws.cloudtrail#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudtrail#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.cloudtrail#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

\nUpdates the specified dashboard.\n

\n

\n To set a refresh schedule, CloudTrail must be granted permissions to run the StartDashboardRefresh operation to refresh the dashboard on your behalf. To provide permissions, run the PutResourcePolicy operation to attach a resource-based policy to the dashboard. For more information, \n see \n Resource-based policy example for a dashboard in the CloudTrail User Guide.\n

\n

\n CloudTrail runs queries to populate the dashboard's widgets during a manual or scheduled refresh. CloudTrail must be granted permissions to run the StartQuery operation on your behalf. To provide permissions, run the PutResourcePolicy operation to attach a resource-based policy to each event data store. For more information, \n see Example: Allow CloudTrail to run queries to populate a dashboard in the CloudTrail User Guide.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudtrail#UpdateDashboardRequest": { + "type": "structure", + "members": { + "DashboardId": { + "target": "com.amazonaws.cloudtrail#DashboardArn", + "traits": { + "smithy.api#documentation": "

\n The name or ARN of the dashboard.\n

", + "smithy.api#required": {} + } + }, + "Widgets": { + "target": "com.amazonaws.cloudtrail#RequestWidgetList", + "traits": { + "smithy.api#documentation": "

\nAn array of widgets for the dashboard. A custom dashboard can have a maximum of 10 widgets.\n

\n

To add new widgets, pass in an array that includes the existing widgets along with any new widgets. Run the GetDashboard operation to get the list of widgets for the dashboard.

\n

To remove widgets, pass in an array that includes the existing widgets minus the widgets you want removed.

" + } + }, + "RefreshSchedule": { + "target": "com.amazonaws.cloudtrail#RefreshSchedule", + "traits": { + "smithy.api#documentation": "

\nThe refresh schedule configuration for the dashboard.\n

" + } + }, + "TerminationProtectionEnabled": { + "target": "com.amazonaws.cloudtrail#TerminationProtectionEnabled", + "traits": { + "smithy.api#documentation": "

\n Specifies whether termination protection is enabled for the dashboard. If termination protection is enabled, you cannot delete the dashboard until termination protection is disabled.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudtrail#UpdateDashboardResponse": { + "type": "structure", + "members": { + "DashboardArn": { + "target": "com.amazonaws.cloudtrail#DashboardArn", + "traits": { + "smithy.api#documentation": "

\nThe ARN for the dashboard.\n

" + } + }, + "Name": { + "target": "com.amazonaws.cloudtrail#DashboardName", + "traits": { + "smithy.api#documentation": "

\nThe name for the dashboard.\n

" + } + }, + "Type": { + "target": "com.amazonaws.cloudtrail#DashboardType", + "traits": { + "smithy.api#documentation": "

\nThe type of dashboard.\n

" + } + }, + "Widgets": { + "target": "com.amazonaws.cloudtrail#WidgetList", + "traits": { + "smithy.api#documentation": "

\nAn array of widgets for the dashboard.\n

" + } + }, + "RefreshSchedule": { + "target": "com.amazonaws.cloudtrail#RefreshSchedule", + "traits": { + "smithy.api#documentation": "

\nThe refresh schedule for the dashboard, if configured.\n

" + } + }, + "TerminationProtectionEnabled": { + "target": "com.amazonaws.cloudtrail#TerminationProtectionEnabled", + "traits": { + "smithy.api#documentation": "

\n Indicates whether termination protection is enabled for the dashboard.\n

" + } + }, + "CreatedTimestamp": { + "target": "com.amazonaws.cloudtrail#Date", + "traits": { + "smithy.api#documentation": "

\n The timestamp that shows when the dashboard was created.\n

" + } + }, + "UpdatedTimestamp": { + "target": "com.amazonaws.cloudtrail#Date", + "traits": { + "smithy.api#documentation": "

\n The timestamp that shows when the dashboard was updated.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.cloudtrail#UpdateEventDataStore": { "type": "operation", "input": { @@ -10192,6 +11102,73 @@ "smithy.api#documentation": "

Returns the objects or data listed below if successful. Otherwise, returns an\n error.

", "smithy.api#output": {} } + }, + "com.amazonaws.cloudtrail#ViewPropertiesKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9._\\-]+$" + } + }, + "com.amazonaws.cloudtrail#ViewPropertiesMap": { + "type": "map", + "key": { + "target": "com.amazonaws.cloudtrail#ViewPropertiesKey" + }, + "value": { + "target": "com.amazonaws.cloudtrail#ViewPropertiesValue" + } + }, + "com.amazonaws.cloudtrail#ViewPropertiesValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9._\\- ]+$" + } + }, + "com.amazonaws.cloudtrail#Widget": { + "type": "structure", + "members": { + "QueryAlias": { + "target": "com.amazonaws.cloudtrail#QueryAlias", + "traits": { + "smithy.api#documentation": "

The query alias used to identify the query for the widget.\n

" + } + }, + "QueryStatement": { + "target": "com.amazonaws.cloudtrail#QueryStatement", + "traits": { + "smithy.api#documentation": "

\nThe SQL query statement for the widget.\n

" + } + }, + "QueryParameters": { + "target": "com.amazonaws.cloudtrail#QueryParameters", + "traits": { + "smithy.api#documentation": "

\n The query parameters for the widget.\n

" + } + }, + "ViewProperties": { + "target": "com.amazonaws.cloudtrail#ViewPropertiesMap", + "traits": { + "smithy.api#documentation": "

\n The view properties for the widget. For more information about view properties, see \n View properties for widgets\n in the CloudTrail User Guide..\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n A widget on a CloudTrail Lake dashboard.\n

" + } + }, + "com.amazonaws.cloudtrail#WidgetList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudtrail#Widget" + } } } } diff --git a/codegen/sdk-codegen/aws-models/cloudwatch-logs.json b/codegen/sdk-codegen/aws-models/cloudwatch-logs.json index 89a096ddd94..bf8ad6a7c04 100644 --- a/codegen/sdk-codegen/aws-models/cloudwatch-logs.json +++ b/codegen/sdk-codegen/aws-models/cloudwatch-logs.json @@ -113,7 +113,7 @@ "selectionCriteria": { "target": "com.amazonaws.cloudwatchlogs#SelectionCriteria", "traits": { - "smithy.api#documentation": "

The log group selection criteria for this subscription filter policy.

" + "smithy.api#documentation": "

The log group selection criteria that is used for this policy.

" } }, "accountId": { @@ -130,6 +130,71 @@ "com.amazonaws.cloudwatchlogs#AccountPolicyDocument": { "type": "string" }, + "com.amazonaws.cloudwatchlogs#AddKeyEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#AddKeyEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.cloudwatchlogs#AddKeyEntry": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.cloudwatchlogs#Key", + "traits": { + "smithy.api#documentation": "

The key of the new entry to be added to the log event

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.cloudwatchlogs#AddKeyValue", + "traits": { + "smithy.api#documentation": "

The value of the new entry to be added to the log event

", + "smithy.api#required": {} + } + }, + "overwriteIfExists": { + "target": "com.amazonaws.cloudwatchlogs#OverwriteIfExists", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to overwrite the value if the key already exists in the log event. If you omit this, the default is false.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This object defines one key that will be added with the \n addKeys processor.

" + } + }, + "com.amazonaws.cloudwatchlogs#AddKeyValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.cloudwatchlogs#AddKeys": { + "type": "structure", + "members": { + "entries": { + "target": "com.amazonaws.cloudwatchlogs#AddKeyEntries", + "traits": { + "smithy.api#documentation": "

An array of objects, where each object contains the information about one key to add to the log event.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor adds new key-value pairs to the log event.

\n

For more information about this processor including examples, see \n addKeys in the CloudWatch Logs User Guide.

" + } + }, "com.amazonaws.cloudwatchlogs#AllowedActionForAllowVendedLogsDeliveryForResource": { "type": "string" }, @@ -441,6 +506,12 @@ } } }, + "com.amazonaws.cloudwatchlogs#ApplyOnTransformedLogs": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, "com.amazonaws.cloudwatchlogs#Arn": { "type": "string" }, @@ -503,6 +574,38 @@ "com.amazonaws.cloudwatchlogs#Boolean": { "type": "boolean" }, + "com.amazonaws.cloudwatchlogs#CSV": { + "type": "structure", + "members": { + "quoteCharacter": { + "target": "com.amazonaws.cloudwatchlogs#QuoteCharacter", + "traits": { + "smithy.api#documentation": "

The character used used as a text qualifier for a single column of data. If you omit this, \n the double quotation mark \" character is used.

" + } + }, + "delimiter": { + "target": "com.amazonaws.cloudwatchlogs#Delimiter", + "traits": { + "smithy.api#documentation": "

The character used to separate each column in the original comma-separated value log event. If you omit this, the processor looks for\n the comma , character as the delimiter.

" + } + }, + "columns": { + "target": "com.amazonaws.cloudwatchlogs#Columns", + "traits": { + "smithy.api#documentation": "

An array of names to use for the columns in the transformed log event.

\n

If you omit this, default column names ([column_1, column_2 ...]) are used.

" + } + }, + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

The path to the field in the log event that has the comma separated values to be parsed. If you omit this value, the whole log message is processed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CSV processor parses comma-separated values (CSV) from the log events into columns.

\n

For more information about this processor including examples, see \n csv in the CloudWatch Logs User Guide.

" + } + }, "com.amazonaws.cloudwatchlogs#CancelExportTask": { "type": "operation", "input": { @@ -554,6 +657,27 @@ "smithy.api#pattern": "^\\S{36,128}$" } }, + "com.amazonaws.cloudwatchlogs#Column": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.cloudwatchlogs#Columns": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#Column" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, "com.amazonaws.cloudwatchlogs#ConfigurationTemplate": { "type": "structure", "members": { @@ -666,6 +790,62 @@ "smithy.api#error": "client" } }, + "com.amazonaws.cloudwatchlogs#CopyValue": { + "type": "structure", + "members": { + "entries": { + "target": "com.amazonaws.cloudwatchlogs#CopyValueEntries", + "traits": { + "smithy.api#documentation": "

An array of CopyValueEntry objects, where each object contains the information about one field value to copy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor copies values within a log event. \n You can also use this processor to add metadata to log events by copying the values of the following metadata keys into the log events: \n @logGroupName, @logGroupStream, @accountId, @regionName.

\n

For more information about this processor including examples, see \n copyValue in the CloudWatch Logs User Guide.

" + } + }, + "com.amazonaws.cloudwatchlogs#CopyValueEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#CopyValueEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.cloudwatchlogs#CopyValueEntry": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

The key to copy.

", + "smithy.api#required": {} + } + }, + "target": { + "target": "com.amazonaws.cloudwatchlogs#Target", + "traits": { + "smithy.api#documentation": "

The key of the field to copy the value to.

", + "smithy.api#required": {} + } + }, + "overwriteIfExists": { + "target": "com.amazonaws.cloudwatchlogs#OverwriteIfExists", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to overwrite the value if the destination key already exists. If you omit this, the default is false.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This object defines one value to be copied with the \n copyValue processor.

" + } + }, "com.amazonaws.cloudwatchlogs#Count": { "type": "long", "traits": { @@ -1118,6 +1298,59 @@ } } }, + "com.amazonaws.cloudwatchlogs#DateTimeConverter": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

The key to apply the date conversion to.

", + "smithy.api#required": {} + } + }, + "target": { + "target": "com.amazonaws.cloudwatchlogs#Target", + "traits": { + "smithy.api#documentation": "

The JSON field to store the result in.

", + "smithy.api#required": {} + } + }, + "targetFormat": { + "target": "com.amazonaws.cloudwatchlogs#TargetFormat", + "traits": { + "smithy.api#documentation": "

The datetime format to use for the converted data in the target field.

\n

If you omit this, the default of \n yyyy-MM-dd'T'HH:mm:ss.SSS'Z is used.

" + } + }, + "matchPatterns": { + "target": "com.amazonaws.cloudwatchlogs#MatchPatterns", + "traits": { + "smithy.api#documentation": "

A list of patterns to match against the source field.

", + "smithy.api#required": {} + } + }, + "sourceTimezone": { + "target": "com.amazonaws.cloudwatchlogs#SourceTimezone", + "traits": { + "smithy.api#documentation": "

The time zone of the source field. If you omit this, the default used is the UTC zone.

" + } + }, + "targetTimezone": { + "target": "com.amazonaws.cloudwatchlogs#TargetTimezone", + "traits": { + "smithy.api#documentation": "

The time zone of the target field. If you omit this, the default used is the UTC zone.

" + } + }, + "locale": { + "target": "com.amazonaws.cloudwatchlogs#Locale", + "traits": { + "smithy.api#documentation": "

The locale of the source field. If you omit this, the default of locale.ROOT is used.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor converts a datetime string into a format that you specify.

\n

For more information about this processor including examples, see \n datetimeConverter in the CloudWatch Logs User Guide.

" + } + }, "com.amazonaws.cloudwatchlogs#Days": { "type": "integer", "traits": { @@ -1150,7 +1383,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a CloudWatch Logs account policy. This stops the policy from applying to all log groups\n or a subset of log groups in the account. Log-group level policies will still be in effect.

\n

To use this operation, you must be signed on with the correct permissions depending on the type of policy\n that you are deleting.

\n " + "smithy.api#documentation": "

Deletes a CloudWatch Logs account policy. This stops the account-wide policy from applying to log groups in the account. If you delete a data protection \n policy or subscription filter policy, any log-group level policies of those types remain in effect.

\n

To use this operation, you must be signed on with the correct permissions depending on the type of policy\n that you are deleting.

\n \n

If you delete a field index policy, the indexing of the log events that happened before\n you deleted the policy will still be used for up to 30 days to improve CloudWatch Logs Insights queries.

" } }, "com.amazonaws.cloudwatchlogs#DeleteAccountPolicyRequest": { @@ -1439,6 +1672,72 @@ "smithy.api#input": {} } }, + "com.amazonaws.cloudwatchlogs#DeleteIndexPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudwatchlogs#DeleteIndexPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudwatchlogs#DeleteIndexPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#LimitExceededException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#OperationAbortedException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a log-group level field index policy that was applied to a single log group. The indexing of the log events that happened before\n you delete the policy will still be used for as many as 30 days to improve CloudWatch Logs Insights queries.

\n

You can't use this operation to delete an account-level index policy. Instead, use \n DeletAccountPolicy.

\n

If you delete a log-group level field index policy and there is an account-level field index policy, in a few minutes the log group begins using that account-wide policy to index new\n incoming log events.

" + } + }, + "com.amazonaws.cloudwatchlogs#DeleteIndexPolicyRequest": { + "type": "structure", + "members": { + "logGroupIdentifier": { + "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifier", + "traits": { + "smithy.api#documentation": "

The log group to delete the index policy for. You can specify either the name or the ARN of the log group.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudwatchlogs#DeleteIndexPolicyResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudwatchlogs#DeleteKeys": { + "type": "structure", + "members": { + "withKeys": { + "target": "com.amazonaws.cloudwatchlogs#DeleteWithKeys", + "traits": { + "smithy.api#documentation": "

The list of keys to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor deletes entries from a log event. These entries are key-value pairs.

\n

For more information about this processor including examples, see \n deleteKeys in the CloudWatch Logs User Guide.

" + } + }, "com.amazonaws.cloudwatchlogs#DeleteLogAnomalyDetector": { "type": "operation", "input": { @@ -1796,31 +2095,96 @@ "smithy.api#input": {} } }, - "com.amazonaws.cloudwatchlogs#Deliveries": { - "type": "list", - "member": { - "target": "com.amazonaws.cloudwatchlogs#Delivery" + "com.amazonaws.cloudwatchlogs#DeleteTransformer": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudwatchlogs#DeleteTransformerRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#OperationAbortedException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the log transformer for the specified log group. As soon as you do this, \n the transformation of incoming log events according to that transformer stops. If this account has an \n account-level transformer that applies to this log group, the log group begins\n using that account-level transformer when this log-group level transformer is deleted.

\n

After you delete a transformer, be sure to edit any metric filters or subscription filters that relied\n on the transformed versions of the log events.

" } }, - "com.amazonaws.cloudwatchlogs#Delivery": { + "com.amazonaws.cloudwatchlogs#DeleteTransformerRequest": { "type": "structure", "members": { - "id": { - "target": "com.amazonaws.cloudwatchlogs#DeliveryId", - "traits": { - "smithy.api#documentation": "

The unique ID that identifies this delivery in your account.

" - } - }, - "arn": { - "target": "com.amazonaws.cloudwatchlogs#Arn", + "logGroupIdentifier": { + "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifier", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that uniquely identifies this delivery.

" + "smithy.api#documentation": "

Specify either the name or ARN of the log group to delete the transformer for. If the log group is in a source account\n and you are using a monitoring account, you must use the log group ARN.

", + "smithy.api#required": {} } - }, - "deliverySourceName": { - "target": "com.amazonaws.cloudwatchlogs#DeliverySourceName", - "traits": { - "smithy.api#documentation": "

The name of the delivery source that is associated with this delivery.

" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudwatchlogs#DeleteWithKeys": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#WithKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.cloudwatchlogs#Delimiter": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "com.amazonaws.cloudwatchlogs#Deliveries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#Delivery" + } + }, + "com.amazonaws.cloudwatchlogs#Delivery": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.cloudwatchlogs#DeliveryId", + "traits": { + "smithy.api#documentation": "

The unique ID that identifies this delivery in your account.

" + } + }, + "arn": { + "target": "com.amazonaws.cloudwatchlogs#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that uniquely identifies this delivery.

" + } + }, + "deliverySourceName": { + "target": "com.amazonaws.cloudwatchlogs#DeliverySourceName", + "traits": { + "smithy.api#documentation": "

The name of the delivery source that is associated with this delivery.

" } }, "deliveryDestinationArn": { @@ -2112,6 +2476,12 @@ "traits": { "smithy.api#documentation": "

If you are using an account that is set up as a monitoring account for CloudWatch unified cross-account\n observability, you can use this to specify the account ID of a source account. If you do, \n the operation returns the account policy for the specified account. Currently, you can specify only\n one account ID in this parameter.

\n

If you\n omit this parameter, only the policy in the current account is returned.

" } + }, + "nextToken": { + "target": "com.amazonaws.cloudwatchlogs#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous call.)

" + } } }, "traits": { @@ -2126,6 +2496,12 @@ "traits": { "smithy.api#documentation": "

An array of structures that contain information about the CloudWatch Logs account policies that match \n the specified filters.

" } + }, + "nextToken": { + "target": "com.amazonaws.cloudwatchlogs#NextToken", + "traits": { + "smithy.api#documentation": "

The token to use when requesting the next set of items. The token expires after 24 hours.

" + } } }, "traits": { @@ -2558,6 +2934,158 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudwatchlogs#DescribeFieldIndexes": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudwatchlogs#DescribeFieldIndexesRequest" + }, + "output": { + "target": "com.amazonaws.cloudwatchlogs#DescribeFieldIndexesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#LimitExceededException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#OperationAbortedException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of field indexes listed in the field index policies of \n one or more log groups. For more information about field index policies, see\n PutIndexPolicy.

" + } + }, + "com.amazonaws.cloudwatchlogs#DescribeFieldIndexesLogGroupIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.cloudwatchlogs#DescribeFieldIndexesRequest": { + "type": "structure", + "members": { + "logGroupIdentifiers": { + "target": "com.amazonaws.cloudwatchlogs#DescribeFieldIndexesLogGroupIdentifiers", + "traits": { + "smithy.api#documentation": "

An array containing the names or ARNs of the log groups that you want\n to retrieve field indexes for.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.cloudwatchlogs#NextToken" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudwatchlogs#DescribeFieldIndexesResponse": { + "type": "structure", + "members": { + "fieldIndexes": { + "target": "com.amazonaws.cloudwatchlogs#FieldIndexes", + "traits": { + "smithy.api#documentation": "

An array containing the field index information.

" + } + }, + "nextToken": { + "target": "com.amazonaws.cloudwatchlogs#NextToken" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudwatchlogs#DescribeIndexPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudwatchlogs#DescribeIndexPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.cloudwatchlogs#DescribeIndexPoliciesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#LimitExceededException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#OperationAbortedException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the field index policies of \n one or more log groups. For more information about field index policies, see\n PutIndexPolicy.

\n

If a specified log group has a log-group level index policy, that policy is returned by this operation.

\n

If a specified log group doesn't have a log-group level index policy, but an account-wide index policy applies to it, \n that account-wide policy is returned by this operation.

\n

To find information about only account-level policies, use DescribeAccountPolicies instead.

" + } + }, + "com.amazonaws.cloudwatchlogs#DescribeIndexPoliciesLogGroupIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "com.amazonaws.cloudwatchlogs#DescribeIndexPoliciesRequest": { + "type": "structure", + "members": { + "logGroupIdentifiers": { + "target": "com.amazonaws.cloudwatchlogs#DescribeIndexPoliciesLogGroupIdentifiers", + "traits": { + "smithy.api#documentation": "

An array containing the name or ARN of the log group that you want\n to retrieve field index policies for.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.cloudwatchlogs#NextToken" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudwatchlogs#DescribeIndexPoliciesResponse": { + "type": "structure", + "members": { + "indexPolicies": { + "target": "com.amazonaws.cloudwatchlogs#IndexPolicies", + "traits": { + "smithy.api#documentation": "

An array containing the field index policies.

" + } + }, + "nextToken": { + "target": "com.amazonaws.cloudwatchlogs#NextToken" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.cloudwatchlogs#DescribeLimit": { "type": "integer", "traits": { @@ -3190,6 +3718,15 @@ } } }, + "com.amazonaws.cloudwatchlogs#DestinationField": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, "com.amazonaws.cloudwatchlogs#DestinationName": { "type": "string", "traits": { @@ -3328,18 +3865,18 @@ "keyAttributes": { "target": "com.amazonaws.cloudwatchlogs#EntityKeyAttributes", "traits": { - "smithy.api#documentation": "

Reserved for internal use.

" + "smithy.api#documentation": "

The attributes of the entity which identify the specific entity, as a list of \n key-value pairs. Entities with the same keyAttributes are considered to \n be the same entity.

\n

There are five allowed attributes (key names): Type, \n ResourceType, Identifier\n Name, and \n Environment.

\n

For details about how to use the key attributes, see How \n to add related information to telemetry in the CloudWatch\n User Guide.

" } }, "attributes": { "target": "com.amazonaws.cloudwatchlogs#EntityAttributes", "traits": { - "smithy.api#documentation": "

Reserved for internal use.

" + "smithy.api#documentation": "

Additional attributes of the entity that are not used to specify the identity of the\n entity. A list of key-value pairs.

\n

For details about how to use the attributes, see How \n to add related information to telemetry in the CloudWatch\n User Guide.

" } } }, "traits": { - "smithy.api#documentation": "

Reserved for internal use.

" + "smithy.api#documentation": "

The entity associated with the log events in a PutLogEvents call.

" } }, "com.amazonaws.cloudwatchlogs#EntityAttributes": { @@ -3752,6 +4289,60 @@ } } }, + "com.amazonaws.cloudwatchlogs#FieldIndex": { + "type": "structure", + "members": { + "logGroupIdentifier": { + "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifier", + "traits": { + "smithy.api#documentation": "

If this field index appears in an index policy that applies only to a \n single log group, the ARN of that log group is displayed here.

" + } + }, + "fieldIndexName": { + "target": "com.amazonaws.cloudwatchlogs#FieldIndexName", + "traits": { + "smithy.api#documentation": "

The string that this field index matches.

" + } + }, + "lastScanTime": { + "target": "com.amazonaws.cloudwatchlogs#Timestamp", + "traits": { + "smithy.api#documentation": "

The most recent time that CloudWatch Logs scanned ingested log events to search for this field index to improve the speed of future \n CloudWatch Logs Insights queries that search for this field index.

" + } + }, + "firstEventTime": { + "target": "com.amazonaws.cloudwatchlogs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time and date of the earliest log event that matches this field index, after the index policy that contains it was created.

" + } + }, + "lastEventTime": { + "target": "com.amazonaws.cloudwatchlogs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time and date of the most recent log event that matches this field index.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This structure describes one log event field that is used as an index in at least\n one index policy in this account.

" + } + }, + "com.amazonaws.cloudwatchlogs#FieldIndexName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[\\.\\-_/#A-Za-z0-9]+$" + } + }, + "com.amazonaws.cloudwatchlogs#FieldIndexes": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#FieldIndex" + } + }, "com.amazonaws.cloudwatchlogs#FilterCount": { "type": "integer" }, @@ -3951,12 +4542,44 @@ "target": "com.amazonaws.cloudwatchlogs#FilteredLogEvent" } }, + "com.amazonaws.cloudwatchlogs#Flatten": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, + "com.amazonaws.cloudwatchlogs#FlattenedElement": { + "type": "enum", + "members": { + "FIRST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "first" + } + }, + "LAST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "last" + } + } + } + }, "com.amazonaws.cloudwatchlogs#ForceUpdate": { "type": "boolean" }, - "com.amazonaws.cloudwatchlogs#GetDataProtectionPolicy": { - "type": "operation", - "input": { + "com.amazonaws.cloudwatchlogs#FromKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.cloudwatchlogs#GetDataProtectionPolicy": { + "type": "operation", + "input": { "target": "com.amazonaws.cloudwatchlogs#GetDataProtectionPolicyRequest" }, "output": { @@ -4682,6 +5305,109 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudwatchlogs#GetTransformer": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudwatchlogs#GetTransformerRequest" + }, + "output": { + "target": "com.amazonaws.cloudwatchlogs#GetTransformerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the information about the log transformer associated with this log group.

\n

This operation returns data only for transformers created at the log group level. To get information\n for an account-level transformer, use DescribeAccountPolicies.

" + } + }, + "com.amazonaws.cloudwatchlogs#GetTransformerRequest": { + "type": "structure", + "members": { + "logGroupIdentifier": { + "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifier", + "traits": { + "smithy.api#documentation": "

Specify either the name or ARN of the log group to return transformer information for. If the log group is in a source account\n and you are using a monitoring account, you must use the log group ARN.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudwatchlogs#GetTransformerResponse": { + "type": "structure", + "members": { + "logGroupIdentifier": { + "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifier", + "traits": { + "smithy.api#documentation": "

The ARN of the log group that you specified in your request.

" + } + }, + "creationTime": { + "target": "com.amazonaws.cloudwatchlogs#Timestamp", + "traits": { + "smithy.api#documentation": "

The creation time of the transformer, expressed as the number of milliseconds after Jan\n 1, 1970 00:00:00 UTC.

" + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.cloudwatchlogs#Timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when this transformer was most recently modified, expressed as the number of milliseconds after Jan\n 1, 1970 00:00:00 UTC.

" + } + }, + "transformerConfig": { + "target": "com.amazonaws.cloudwatchlogs#Processors", + "traits": { + "smithy.api#documentation": "

This sructure contains the configuration of the requested transformer.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudwatchlogs#Grok": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

The path to the field in the log event that you want to parse. If you omit this value, the whole log message is parsed.

" + } + }, + "match": { + "target": "com.amazonaws.cloudwatchlogs#GrokMatch", + "traits": { + "smithy.api#documentation": "

The grok pattern to match against the log event. For a list of \n supported grok patterns, see Supported grok patterns.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor uses pattern matching to parse and structure unstructured data. This processor can also extract fields from log messages.

\n

For more information about this processor including examples, see \n grok in the CloudWatch Logs User Guide.

" + } + }, + "com.amazonaws.cloudwatchlogs#GrokMatch": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, "com.amazonaws.cloudwatchlogs#Histogram": { "type": "map", "key": { @@ -4694,6 +5420,67 @@ "com.amazonaws.cloudwatchlogs#IncludeLinkedAccounts": { "type": "boolean" }, + "com.amazonaws.cloudwatchlogs#IndexPolicies": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#IndexPolicy" + } + }, + "com.amazonaws.cloudwatchlogs#IndexPolicy": { + "type": "structure", + "members": { + "logGroupIdentifier": { + "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifier", + "traits": { + "smithy.api#documentation": "

The ARN of the log group that this index policy applies to.

" + } + }, + "lastUpdateTime": { + "target": "com.amazonaws.cloudwatchlogs#Timestamp", + "traits": { + "smithy.api#documentation": "

The date and time that this index policy was most recently updated.

" + } + }, + "policyDocument": { + "target": "com.amazonaws.cloudwatchlogs#PolicyDocument", + "traits": { + "smithy.api#documentation": "

The policy document for this index policy, in JSON format.

" + } + }, + "policyName": { + "target": "com.amazonaws.cloudwatchlogs#PolicyName", + "traits": { + "smithy.api#documentation": "

The name of this policy. Responses about log group-level field index policies don't have this field, because those policies\n don't have names.

" + } + }, + "source": { + "target": "com.amazonaws.cloudwatchlogs#IndexSource", + "traits": { + "smithy.api#documentation": "

This field indicates whether this is an account-level index policy or an index policy that applies\n only to a single log group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This structure contains information about one field index policy in this account.

" + } + }, + "com.amazonaws.cloudwatchlogs#IndexSource": { + "type": "enum", + "members": { + "ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCOUNT" + } + }, + "LOG_GROUP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LOG_GROUP" + } + } + } + }, "com.amazonaws.cloudwatchlogs#InferredTokenName": { "type": "string", "traits": { @@ -4819,6 +5606,33 @@ "smithy.api#default": false } }, + "com.amazonaws.cloudwatchlogs#Key": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.cloudwatchlogs#KeyPrefix": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.cloudwatchlogs#KeyValueDelimiter": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, "com.amazonaws.cloudwatchlogs#KmsKeyId": { "type": "string", "traits": { @@ -5008,6 +5822,88 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudwatchlogs#ListLogGroupsForQuery": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudwatchlogs#ListLogGroupsForQueryRequest" + }, + "output": { + "target": "com.amazonaws.cloudwatchlogs#ListLogGroupsForQueryResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#AccessDeniedException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of the log groups that were analyzed during a single CloudWatch Logs Insights query. This can be useful for queries\n that use\n log group name prefixes or the filterIndex command, because the log groups are dynamically selected in these cases.

\n

For more information about field indexes, see \n Create field indexes to improve query performance and reduce costs.

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "logGroupIdentifiers", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.cloudwatchlogs#ListLogGroupsForQueryMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 50, + "max": 500 + } + } + }, + "com.amazonaws.cloudwatchlogs#ListLogGroupsForQueryRequest": { + "type": "structure", + "members": { + "queryId": { + "target": "com.amazonaws.cloudwatchlogs#QueryId", + "traits": { + "smithy.api#documentation": "

The ID of the query to use. This query ID is from the response\n to your StartQuery operation.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.cloudwatchlogs#NextToken" + }, + "maxResults": { + "target": "com.amazonaws.cloudwatchlogs#ListLogGroupsForQueryMaxResults", + "traits": { + "smithy.api#documentation": "

Limits the number of returned log groups to the specified number.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudwatchlogs#ListLogGroupsForQueryResponse": { + "type": "structure", + "members": { + "logGroupIdentifiers": { + "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifiers", + "traits": { + "smithy.api#documentation": "

An array of the names and ARNs of the log groups that were processed in the query.

" + } + }, + "nextToken": { + "target": "com.amazonaws.cloudwatchlogs#NextToken" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.cloudwatchlogs#ListTagsForResource": { "type": "operation", "input": { @@ -5118,6 +6014,53 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudwatchlogs#ListToMap": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

The key in the log event that has a list of objects that will be converted to a map.

", + "smithy.api#required": {} + } + }, + "key": { + "target": "com.amazonaws.cloudwatchlogs#Key", + "traits": { + "smithy.api#documentation": "

The key of the field to be extracted as keys in the generated map

", + "smithy.api#required": {} + } + }, + "valueKey": { + "target": "com.amazonaws.cloudwatchlogs#ValueKey", + "traits": { + "smithy.api#documentation": "

If this is specified, the values that you specify in this parameter will be extracted from the source objects and put into the values of the generated map.\n Otherwise, original objects in the source list will be put into the values of the generated map.

" + } + }, + "target": { + "target": "com.amazonaws.cloudwatchlogs#Target", + "traits": { + "smithy.api#documentation": "

The key of the field that will hold the generated map

" + } + }, + "flatten": { + "target": "com.amazonaws.cloudwatchlogs#Flatten", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A Boolean value to indicate whether the list will be flattened into single items. Specify true to flatten the list. The default is false\n

" + } + }, + "flattenedElement": { + "target": "com.amazonaws.cloudwatchlogs#FlattenedElement", + "traits": { + "smithy.api#documentation": "

If you set flatten to true, use flattenedElement to specify which element, first or last, to keep.

\n

You must specify this parameter if flatten is true\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor takes a list of objects that contain key fields, and converts them into a map of target keys.

\n

For more information about this processor including examples, see \n listToMap in the CloudWatch Logs User Guide.

" + } + }, "com.amazonaws.cloudwatchlogs#LiveTailSessionLogEvent": { "type": "structure", "members": { @@ -5241,9 +6184,17 @@ "smithy.api#documentation": "

This object contains the log events and metadata for a Live Tail session.

" } }, - "com.amazonaws.cloudwatchlogs#LogEvent": { - "type": "structure", - "members": { + "com.amazonaws.cloudwatchlogs#Locale": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.cloudwatchlogs#LogEvent": { + "type": "structure", + "members": { "timestamp": { "target": "com.amazonaws.cloudwatchlogs#Timestamp", "traits": { @@ -5607,6 +6558,9 @@ { "target": "com.amazonaws.cloudwatchlogs#DeleteDestination" }, + { + "target": "com.amazonaws.cloudwatchlogs#DeleteIndexPolicy" + }, { "target": "com.amazonaws.cloudwatchlogs#DeleteLogAnomalyDetector" }, @@ -5631,6 +6585,9 @@ { "target": "com.amazonaws.cloudwatchlogs#DeleteSubscriptionFilter" }, + { + "target": "com.amazonaws.cloudwatchlogs#DeleteTransformer" + }, { "target": "com.amazonaws.cloudwatchlogs#DescribeAccountPolicies" }, @@ -5652,6 +6609,12 @@ { "target": "com.amazonaws.cloudwatchlogs#DescribeExportTasks" }, + { + "target": "com.amazonaws.cloudwatchlogs#DescribeFieldIndexes" + }, + { + "target": "com.amazonaws.cloudwatchlogs#DescribeIndexPolicies" + }, { "target": "com.amazonaws.cloudwatchlogs#DescribeLogGroups" }, @@ -5709,12 +6672,18 @@ { "target": "com.amazonaws.cloudwatchlogs#GetQueryResults" }, + { + "target": "com.amazonaws.cloudwatchlogs#GetTransformer" + }, { "target": "com.amazonaws.cloudwatchlogs#ListAnomalies" }, { "target": "com.amazonaws.cloudwatchlogs#ListLogAnomalyDetectors" }, + { + "target": "com.amazonaws.cloudwatchlogs#ListLogGroupsForQuery" + }, { "target": "com.amazonaws.cloudwatchlogs#ListTagsForResource" }, @@ -5742,6 +6711,9 @@ { "target": "com.amazonaws.cloudwatchlogs#PutDestinationPolicy" }, + { + "target": "com.amazonaws.cloudwatchlogs#PutIndexPolicy" + }, { "target": "com.amazonaws.cloudwatchlogs#PutLogEvents" }, @@ -5760,6 +6732,9 @@ { "target": "com.amazonaws.cloudwatchlogs#PutSubscriptionFilter" }, + { + "target": "com.amazonaws.cloudwatchlogs#PutTransformer" + }, { "target": "com.amazonaws.cloudwatchlogs#StartLiveTail" }, @@ -5778,6 +6753,9 @@ { "target": "com.amazonaws.cloudwatchlogs#TestMetricFilter" }, + { + "target": "com.amazonaws.cloudwatchlogs#TestTransformer" + }, { "target": "com.amazonaws.cloudwatchlogs#UntagLogGroup" }, @@ -6844,6 +7822,33 @@ } } }, + "com.amazonaws.cloudwatchlogs#LowerCaseString": { + "type": "structure", + "members": { + "withKeys": { + "target": "com.amazonaws.cloudwatchlogs#LowerCaseStringWithKeys", + "traits": { + "smithy.api#documentation": "

The array caontaining the keys of the fields to convert to lowercase.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor converts a string to lowercase.

\n

For more information about this processor including examples, see \n lowerCaseString in the CloudWatch Logs User Guide.

" + } + }, + "com.amazonaws.cloudwatchlogs#LowerCaseStringWithKeys": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#WithKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.cloudwatchlogs#MalformedQueryException": { "type": "structure", "members": { @@ -6859,6 +7864,26 @@ "smithy.api#error": "client" } }, + "com.amazonaws.cloudwatchlogs#MatchPattern": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.cloudwatchlogs#MatchPatterns": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#MatchPattern" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, "com.amazonaws.cloudwatchlogs#Message": { "type": "string" }, @@ -6891,6 +7916,13 @@ "traits": { "smithy.api#documentation": "

The name of the log group.

" } + }, + "applyOnTransformedLogs": { + "target": "com.amazonaws.cloudwatchlogs#ApplyOnTransformedLogs", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

This parameter is valid only for log groups that have an active log transformer. For more information about\n log transformers, see PutTransformer.

\n

If this value is true, the metric filter\n is applied on the transformed version of the log events instead of the original ingested log events.

" + } } }, "traits": { @@ -7026,6 +8058,62 @@ } } }, + "com.amazonaws.cloudwatchlogs#MoveKeyEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#MoveKeyEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.cloudwatchlogs#MoveKeyEntry": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

The key to move.

", + "smithy.api#required": {} + } + }, + "target": { + "target": "com.amazonaws.cloudwatchlogs#Target", + "traits": { + "smithy.api#documentation": "

The key to move to.

", + "smithy.api#required": {} + } + }, + "overwriteIfExists": { + "target": "com.amazonaws.cloudwatchlogs#OverwriteIfExists", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to overwrite the value if the destination key already exists. If you omit this, the default is false.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This object defines one key that will be moved with the \n moveKey processor.

" + } + }, + "com.amazonaws.cloudwatchlogs#MoveKeys": { + "type": "structure", + "members": { + "entries": { + "target": "com.amazonaws.cloudwatchlogs#MoveKeyEntries", + "traits": { + "smithy.api#documentation": "

An array of objects, where each object contains the information about one key to move.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor moves a key from one field to another. The original key is deleted.

\n

For more information about this processor including examples, see \n moveKeys in the CloudWatch Logs User Guide.

" + } + }, "com.amazonaws.cloudwatchlogs#NextToken": { "type": "string", "traits": { @@ -7035,6 +8123,15 @@ } } }, + "com.amazonaws.cloudwatchlogs#NonMatchValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, "com.amazonaws.cloudwatchlogs#OperationAbortedException": { "type": "structure", "members": { @@ -7137,6 +8234,162 @@ "target": "com.amazonaws.cloudwatchlogs#OutputLogEvent" } }, + "com.amazonaws.cloudwatchlogs#OverwriteIfExists": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, + "com.amazonaws.cloudwatchlogs#ParseCloudfront": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

Omit this parameter and the whole log message will be processed by this processor. No other value than @message is allowed for source.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor parses CloudFront vended logs, extract fields, and convert them into\n JSON format. Encoded field values are decoded. Values that are integers and doubles are treated as such.\n For more information about this processor including examples, see \n parseCloudfront\n

\n

For more information about CloudFront log format, see \n \n Configure and use standard logs (access logs).

\n

If you use this processor, it must be the first processor in your transformer.

" + } + }, + "com.amazonaws.cloudwatchlogs#ParseJSON": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

Path to the field in the log event that will be parsed. Use dot notation to access child fields. For example, store.book\n

" + } + }, + "destination": { + "target": "com.amazonaws.cloudwatchlogs#DestinationField", + "traits": { + "smithy.api#documentation": "

The location to put the parsed key value pair into. If you \n omit this parameter, it is placed under the root node.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor parses log events that are in JSON format. It can extract JSON key-value pairs and place them\n under a destination that you specify.

\n

Additionally, because you must have at least one parse-type processor in a transformer, you can use ParseJSON as that\n processor for JSON-format logs, so that you can also apply other processors, such as mutate processors, to these logs.

\n

For more information about this processor including examples, see \n parseJSON in the CloudWatch Logs User Guide.

" + } + }, + "com.amazonaws.cloudwatchlogs#ParseKeyValue": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

Path to the field in the log event that will be parsed. Use dot notation to access child fields. For example, store.book\n

" + } + }, + "destination": { + "target": "com.amazonaws.cloudwatchlogs#DestinationField", + "traits": { + "smithy.api#documentation": "

The destination field to put the extracted key-value pairs into

" + } + }, + "fieldDelimiter": { + "target": "com.amazonaws.cloudwatchlogs#ParserFieldDelimiter", + "traits": { + "smithy.api#documentation": "

The field delimiter string that is used between key-value pairs in the original log events.\n If you omit this, \n the ampersand & character is used.

" + } + }, + "keyValueDelimiter": { + "target": "com.amazonaws.cloudwatchlogs#KeyValueDelimiter", + "traits": { + "smithy.api#documentation": "

The delimiter string to use between the key and value in each pair in the transformed log event.

\n

If you omit this, \n the equal = character is used.

" + } + }, + "keyPrefix": { + "target": "com.amazonaws.cloudwatchlogs#KeyPrefix", + "traits": { + "smithy.api#documentation": "

If you want to add a prefix to all transformed keys, specify it here.

" + } + }, + "nonMatchValue": { + "target": "com.amazonaws.cloudwatchlogs#NonMatchValue", + "traits": { + "smithy.api#documentation": "

A value to insert into the value field in the result, when a key-value pair is not successfully split.

" + } + }, + "overwriteIfExists": { + "target": "com.amazonaws.cloudwatchlogs#OverwriteIfExists", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to overwrite the value if the destination key already exists. If you omit this, the default is false.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor parses a specified field in the original log event into key-value pairs.

\n

For more information about this processor including examples, see \n parseKeyValue in the CloudWatch Logs User Guide.

" + } + }, + "com.amazonaws.cloudwatchlogs#ParsePostgres": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

Omit this parameter and the whole log message will be processed by this processor. No other value than @message is allowed for source.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this processor to parse RDS for PostgreSQL vended logs, extract fields, and and convert them into a JSON format. This processor always\n processes the entire log event message.\n For more information about this processor including examples, see \n parsePostGres.

\n

For more information about RDS for PostgreSQL log format, see \n \n RDS for PostgreSQL database log filesTCP flag sequence.

\n \n

If you use this processor, it must be the first processor in your transformer.

\n
" + } + }, + "com.amazonaws.cloudwatchlogs#ParseRoute53": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

Omit this parameter and the whole log message will be processed by this processor. No other value than @message is allowed for source.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this processor to parse Route 53 vended logs, extract fields, and and convert them into a JSON format. This processor always\n processes the entire log event message.\n For more information about this processor including examples, see \n parseRoute53.

\n \n

If you use this processor, it must be the first processor in your transformer.

\n
" + } + }, + "com.amazonaws.cloudwatchlogs#ParseVPC": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

Omit this parameter and the whole log message will be processed by this processor. No other value than @message is allowed for source.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this processor to parse Amazon VPC vended logs, extract fields, and and convert them into a JSON format. This processor always\n processes the entire log event message.

\n

This processor doesn't support custom log formats, such as NAT gateway logs. For more information about custom log formats in Amazon VPC, see\n \n parseVPC\n For more information about this processor including examples, see \n parseVPC.

\n \n

If you use this processor, it must be the first processor in your transformer.

\n
" + } + }, + "com.amazonaws.cloudwatchlogs#ParseWAF": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

Omit this parameter and the whole log message will be processed by this processor. No other value than @message is allowed for source.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this processor to parse WAF vended logs, extract fields, and and convert them into a JSON format. This processor always\n processes the entire log event message.\n For more information about this processor including examples, see \n parseWAF.

\n

For more information about WAF log format, see \n \n Log examples for web ACL traffic.

\n \n

If you use this processor, it must be the first processor in your transformer.

\n
" + } + }, + "com.amazonaws.cloudwatchlogs#ParserFieldDelimiter": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, "com.amazonaws.cloudwatchlogs#PatternId": { "type": "string", "traits": { @@ -7257,6 +8510,18 @@ "traits": { "smithy.api#enumValue": "SUBSCRIPTION_FILTER_POLICY" } + }, + "FIELD_INDEX_POLICY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FIELD_INDEX_POLICY" + } + }, + "TRANSFORMER_POLICY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRANSFORMER_POLICY" + } } } }, @@ -7268,46 +8533,198 @@ } } }, - "com.amazonaws.cloudwatchlogs#PutAccountPolicy": { - "type": "operation", - "input": { - "target": "com.amazonaws.cloudwatchlogs#PutAccountPolicyRequest" - }, - "output": { - "target": "com.amazonaws.cloudwatchlogs#PutAccountPolicyResponse" - }, - "errors": [ - { - "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" - }, - { - "target": "com.amazonaws.cloudwatchlogs#LimitExceededException" - }, - { - "target": "com.amazonaws.cloudwatchlogs#OperationAbortedException" - }, - { - "target": "com.amazonaws.cloudwatchlogs#ServiceUnavailableException" - } - ], - "traits": { - "smithy.api#documentation": "

Creates an account-level data protection policy or subscription filter policy that applies to all log groups \n or a subset of log groups in the account.

\n

\n Data protection policy\n

\n

A data protection policy can help safeguard sensitive \n data that's ingested by your log groups by auditing and masking the sensitive log data. Each account can have only\n one account-level data protection policy.

\n \n

Sensitive data is detected and masked when it is ingested into a log group. When you set a \n data protection policy, log events ingested into the log groups before that time are not masked.

\n
\n

If you use PutAccountPolicy to create a data protection policy for your whole account, it applies to both existing log groups\n and all log groups that are created later in this account. The account-level policy is applied to existing log groups\n with eventual consistency. It might take up to 5 minutes before sensitive data in existing log groups begins to be masked.

\n

By default, when a user views a log event that includes masked data, the sensitive data is replaced by asterisks.\n A user who has the logs:Unmask permission can use a \n GetLogEvents or \n FilterLogEvents\n operation with the unmask parameter set to true to view the unmasked \n log events. Users with the logs:Unmask can also view unmasked data in the CloudWatch Logs\n console by running a CloudWatch Logs Insights query with the unmask query command.

\n

For more information, including a list of types of data that can be audited and masked, see\n Protect sensitive log data with masking.

\n

To use the PutAccountPolicy operation for a data protection policy, you must be signed on with \n the logs:PutDataProtectionPolicy\n and logs:PutAccountPolicy permissions.

\n

The PutAccountPolicy operation applies to all log groups in the account. You can use \n PutDataProtectionPolicy\n to create a data protection policy that applies to just one log group. \n If a log group has its own data protection policy and \n the account also has an account-level data protection policy, then the two policies are cumulative. Any sensitive term\n specified in either policy is masked.

\n

\n Subscription filter policy\n

\n

A subscription filter policy sets up a real-time feed of log events from CloudWatch Logs to other Amazon Web Services services.\n Account-level subscription filter policies apply to both existing log groups and log groups that are created later in \n this account. Supported destinations are Kinesis Data Streams, Firehose, and \n Lambda. When log events are sent to the receiving service, they are Base64 encoded and \n compressed with the GZIP format.

\n

The following destinations are supported for subscription filters:

\n \n

Each account can have one account-level subscription filter policy per Region. \n If you are updating an existing filter, you must specify the correct name in PolicyName.\n To perform a PutAccountPolicy subscription filter operation for any destination except a Lambda \n function, you must also have the iam:PassRole permission.

" - } - }, - "com.amazonaws.cloudwatchlogs#PutAccountPolicyRequest": { + "com.amazonaws.cloudwatchlogs#Processor": { "type": "structure", "members": { - "policyName": { - "target": "com.amazonaws.cloudwatchlogs#PolicyName", + "addKeys": { + "target": "com.amazonaws.cloudwatchlogs#AddKeys", "traits": { - "smithy.api#documentation": "

A name for the policy. This must be unique within the account.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Use this parameter to include the \n addKeys processor in your transformer.

" } }, - "policyDocument": { - "target": "com.amazonaws.cloudwatchlogs#AccountPolicyDocument", + "copyValue": { + "target": "com.amazonaws.cloudwatchlogs#CopyValue", "traits": { - "smithy.api#documentation": "

Specify the policy, in JSON.

\n

\n Data protection policy\n

\n

A data protection policy must include two JSON blocks:

\n \n

For an example data protection policy, see the Examples section on this page.

\n \n

The contents of the two DataIdentifer arrays must match exactly.

\n
\n

In addition to the two JSON blocks, the policyDocument can also include Name,\n Description, and Version fields. The Name is different than the \n operation's policyName parameter, and is used as a dimension when\n CloudWatch Logs reports audit findings metrics to CloudWatch.

\n

The JSON specified in policyDocument can be up to 30,720 characters long.

\n

\n Subscription filter policy\n

\n

A subscription filter policy can include the following attributes in a JSON block:

\n ", + "smithy.api#documentation": "

Use this parameter to include the \n copyValue processor in your transformer.

" + } + }, + "csv": { + "target": "com.amazonaws.cloudwatchlogs#CSV", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n CSV processor in your transformer.

" + } + }, + "dateTimeConverter": { + "target": "com.amazonaws.cloudwatchlogs#DateTimeConverter", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n datetimeConverter processor in your transformer.

" + } + }, + "deleteKeys": { + "target": "com.amazonaws.cloudwatchlogs#DeleteKeys", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n deleteKeys processor in your transformer.

" + } + }, + "grok": { + "target": "com.amazonaws.cloudwatchlogs#Grok", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n grok processor in your transformer.

" + } + }, + "listToMap": { + "target": "com.amazonaws.cloudwatchlogs#ListToMap", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n listToMap processor in your transformer.

" + } + }, + "lowerCaseString": { + "target": "com.amazonaws.cloudwatchlogs#LowerCaseString", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n lowerCaseString processor in your transformer.

" + } + }, + "moveKeys": { + "target": "com.amazonaws.cloudwatchlogs#MoveKeys", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n moveKeys processor in your transformer.

" + } + }, + "parseCloudfront": { + "target": "com.amazonaws.cloudwatchlogs#ParseCloudfront", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n parseCloudfront processor in your transformer.

\n

If you use this processor, it must be the first processor in your transformer.

" + } + }, + "parseJSON": { + "target": "com.amazonaws.cloudwatchlogs#ParseJSON", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n parseJSON processor in your transformer.

" + } + }, + "parseKeyValue": { + "target": "com.amazonaws.cloudwatchlogs#ParseKeyValue", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n parseKeyValue processor in your transformer.

" + } + }, + "parseRoute53": { + "target": "com.amazonaws.cloudwatchlogs#ParseRoute53", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n parseRoute53 processor in your transformer.

\n

If you use this processor, it must be the first processor in your transformer.

" + } + }, + "parsePostgres": { + "target": "com.amazonaws.cloudwatchlogs#ParsePostgres", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n parsePostGres processor in your transformer.

\n

If you use this processor, it must be the first processor in your transformer.

" + } + }, + "parseVPC": { + "target": "com.amazonaws.cloudwatchlogs#ParseVPC", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n parseVPC processor in your transformer.

\n

If you use this processor, it must be the first processor in your transformer.

" + } + }, + "parseWAF": { + "target": "com.amazonaws.cloudwatchlogs#ParseWAF", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n parseWAF processor in your transformer.

\n

If you use this processor, it must be the first processor in your transformer.

" + } + }, + "renameKeys": { + "target": "com.amazonaws.cloudwatchlogs#RenameKeys", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n renameKeys processor in your transformer.

" + } + }, + "splitString": { + "target": "com.amazonaws.cloudwatchlogs#SplitString", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n splitString processor in your transformer.

" + } + }, + "substituteString": { + "target": "com.amazonaws.cloudwatchlogs#SubstituteString", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n substituteString processor in your transformer.

" + } + }, + "trimString": { + "target": "com.amazonaws.cloudwatchlogs#TrimString", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n trimString processor in your transformer.

" + } + }, + "typeConverter": { + "target": "com.amazonaws.cloudwatchlogs#TypeConverter", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n typeConverter processor in your transformer.

" + } + }, + "upperCaseString": { + "target": "com.amazonaws.cloudwatchlogs#UpperCaseString", + "traits": { + "smithy.api#documentation": "

Use this parameter to include the \n upperCaseString processor in your transformer.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This structure contains the information about one processor in a log transformer.

" + } + }, + "com.amazonaws.cloudwatchlogs#Processors": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#Processor" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, + "com.amazonaws.cloudwatchlogs#PutAccountPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudwatchlogs#PutAccountPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudwatchlogs#PutAccountPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#LimitExceededException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#OperationAbortedException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an account-level data protection policy, subscription filter policy, or field index policy\n that applies to all log groups \n or a subset of log groups in the account.

\n

\n Data protection policy\n

\n

A data protection policy can help safeguard sensitive \n data that's ingested by your log groups by auditing and masking the sensitive log data. Each account can have only\n one account-level data protection policy.

\n \n

Sensitive data is detected and masked when it is ingested into a log group. When you set a \n data protection policy, log events ingested into the log groups before that time are not masked.

\n
\n

If you use PutAccountPolicy to create a data protection policy for your whole account, it applies to both existing log groups\n and all log groups that are created later in this account. The account-level policy is applied to existing log groups\n with eventual consistency. It might take up to 5 minutes before sensitive data in existing log groups begins to be masked.

\n

By default, when a user views a log event that includes masked data, the sensitive data is replaced by asterisks.\n A user who has the logs:Unmask permission can use a \n GetLogEvents or \n FilterLogEvents\n operation with the unmask parameter set to true to view the unmasked \n log events. Users with the logs:Unmask can also view unmasked data in the CloudWatch Logs\n console by running a CloudWatch Logs Insights query with the unmask query command.

\n

For more information, including a list of types of data that can be audited and masked, see\n Protect sensitive log data with masking.

\n

To use the PutAccountPolicy operation for a data protection policy, you must be signed on with \n the logs:PutDataProtectionPolicy\n and logs:PutAccountPolicy permissions.

\n

The PutAccountPolicy operation applies to all log groups in the account. You can use \n PutDataProtectionPolicy\n to create a data protection policy that applies to just one log group. \n If a log group has its own data protection policy and \n the account also has an account-level data protection policy, then the two policies are cumulative. Any sensitive term\n specified in either policy is masked.

\n

\n Subscription filter policy\n

\n

A subscription filter policy sets up a real-time feed of log events from CloudWatch Logs to other Amazon Web Services services.\n Account-level subscription filter policies apply to both existing log groups and log groups that are created later in \n this account. Supported destinations are Kinesis Data Streams, Firehose, and \n Lambda. When log events are sent to the receiving service, they are Base64 encoded and \n compressed with the GZIP format.

\n

The following destinations are supported for subscription filters:

\n \n

Each account can have one account-level subscription filter policy per Region. \n If you are updating an existing filter, you must specify the correct name in PolicyName.\n To perform a PutAccountPolicy subscription filter operation for any destination except a Lambda \n function, you must also have the iam:PassRole permission.

\n

\n Transformer policy\n

\n

Creates or updates a log transformer policy for your account. You use log transformers to transform log events into\n a different format, making them easier for you to process and analyze. You can also transform logs from different sources into standardized formats that \n contain\n relevant, source-specific information. After you have created a transformer, \n CloudWatch Logs performs this transformation at the time of log ingestion. You can then refer to the transformed versions of the logs during\n operations such as querying with CloudWatch Logs Insights or creating metric filters or subscription filters.

\n

You can also use a transformer to copy metadata from metadata keys into the log events themselves. This metadata can include log group name, \n log stream name, account ID and Region.

\n

A transformer for a log group is a series of processors, where each processor applies one type of transformation to the log events\n ingested into this log group. For more information about the available processors to use in a transformer, see \n Processors that you can use.

\n

Having log events in standardized format enables visibility across your applications for your log analysis, reporting, and alarming needs. \n CloudWatch Logs provides transformation for common log types with out-of-the-box transformation templates for major Amazon Web Services log sources such \n as VPC flow logs, Lambda, and Amazon RDS. You can use pre-built transformation templates or create custom transformation policies.

\n

You can create transformers only for the log groups in the Standard log class.

\n

You can have one account-level transformer policy that applies to all log groups in the account. \n Or you can create as many as 20 account-level transformer policies that are each scoped to a subset of log groups with \n the selectionCriteria parameter. If you have multiple\n account-level transformer policies with selection criteria, no two of them can use the same or overlapping log group name prefixes.\n For example, if you have one policy filtered to log groups that start with my-log, you can't have another field index\n policy filtered to my-logpprod or my-logging.

\n

You can also set up a transformer at the log-group level. For more information, see \n PutTransformer. If there is both a \n log-group level transformer created with PutTransformer and an account-level transformer that could apply to the same log \n group, the log group uses only the log-group level transformer. It ignores the account-level transformer.

\n

\n Field index policy\n

\n

You can use field index policies to create indexes on fields found in \n log events in the log group. Creating field indexes can help lower the scan volume for CloudWatch Logs Insights queries that reference\n those fields, because these queries attempt to skip the processing of log events that are known to not match the indexed field.\n Good fields to index are fields that you often need to query for and fields or values that match only a small fraction of the total log events.\n Common examples of indexes\n include request ID, session ID, user IDs, or instance IDs. For more information, see \n Create field indexes to improve query performance and reduce costs\n

\n

To find the fields that are in your log group events, use the \n GetLogGroupFields\n operation.

\n

For example, suppose you have created a field index for requestId. Then, any \n CloudWatch Logs Insights query on that log group that includes requestId = value\n \n or requestId in [value, value, ...] will attempt to process only the log events where\n the indexed field matches the specified value.

\n

Matches of log events to the names of indexed fields are case-sensitive. For example, an indexed field\n of RequestId won't match a log event containing requestId.

\n

You can have one account-level field index policy that applies to all log groups in the account. \n Or you can create as many as 20 account-level field index policies that are each scoped to a subset of log groups with \n the selectionCriteria parameter. If you have multiple\n account-level index policies with selection criteria, no two of them can use the same or overlapping log group name prefixes.\n For example, if you have one policy filtered to log groups that start with my-log, you can't have another field index\n policy filtered to my-logpprod or my-logging.

\n

If you create an account-level field index policy in a monitoring account in cross-account observability, the policy is applied only\n to the monitoring account and not to any source accounts.

\n

If you want to create a field index policy for a single log group, you can use PutIndexPolicy instead of \n PutAccountPolicy. If you do so, that log group will use only that log-group level policy, and will ignore the account-level policy\n that you create with PutAccountPolicy.

" + } + }, + "com.amazonaws.cloudwatchlogs#PutAccountPolicyRequest": { + "type": "structure", + "members": { + "policyName": { + "target": "com.amazonaws.cloudwatchlogs#PolicyName", + "traits": { + "smithy.api#documentation": "

A name for the policy. This must be unique within the account.

", + "smithy.api#required": {} + } + }, + "policyDocument": { + "target": "com.amazonaws.cloudwatchlogs#AccountPolicyDocument", + "traits": { + "smithy.api#documentation": "

Specify the policy, in JSON.

\n

\n Data protection policy\n

\n

A data protection policy must include two JSON blocks:

\n \n

For an example data protection policy, see the Examples section on this page.

\n \n

The contents of the two DataIdentifer arrays must match exactly.

\n
\n

In addition to the two JSON blocks, the policyDocument can also include Name,\n Description, and Version fields. The Name is different than the \n operation's policyName parameter, and is used as a dimension when\n CloudWatch Logs reports audit findings metrics to CloudWatch.

\n

The JSON specified in policyDocument can be up to 30,720 characters long.

\n

\n Subscription filter policy\n

\n

A subscription filter policy can include the following attributes in a JSON block:

\n \n

\n Transformer policy\n

\n

A transformer policy must include one JSON block with the array of processors and their configurations. For more information\n about available processors, see \n Processors that you can use.

\n

\n Field index policy\n

\n

A field index filter policy can include the following attribute in a JSON block:

\n \n

It must contain at least one field index.

\n

The following is an example\n of an index policy document that creates two indexes, RequestId and TransactionId.

\n

\n \"policyDocument\": \"{ \\\"Fields\\\": [ \\\"RequestId\\\", \\\"TransactionId\\\" ] }\"\n

", "smithy.api#required": {} } }, @@ -7327,7 +8744,7 @@ "selectionCriteria": { "target": "com.amazonaws.cloudwatchlogs#SelectionCriteria", "traits": { - "smithy.api#documentation": "

Use this parameter to apply the subscription filter policy to a subset of log groups in the account.\n Currently, the only supported filter is LogGroupName NOT IN []. The selectionCriteria\n string can be up to 25KB in length. The length is determined by using its UTF-8 bytes.

\n

Using the selectionCriteria parameter is useful to help prevent infinite loops. \n For more information, see Log recursion prevention.

\n

Specifing selectionCriteria is valid only when you specify SUBSCRIPTION_FILTER_POLICY\n for policyType.

" + "smithy.api#documentation": "

Use this parameter to apply the new policy to a subset of log groups in the account.

\n

Specifing selectionCriteria is valid only when you specify SUBSCRIPTION_FILTER_POLICY, FIELD_INDEX_POLICY\n or TRANSFORMER_POLICYfor policyType.

\n

If policyType is SUBSCRIPTION_FILTER_POLICY, the only supported \n selectionCriteria filter is LogGroupName NOT IN []\n

\n

If policyType is FIELD_INDEX_POLICY or TRANSFORMER_POLICY, the only supported \n selectionCriteria filter is LogGroupNamePrefix\n

\n

The selectionCriteria\n string can be up to 25KB in length. The length is determined by using its UTF-8 bytes.

\n

Using the selectionCriteria parameter with SUBSCRIPTION_FILTER_POLICY is useful to help prevent infinite loops. \n For more information, see Log recursion prevention.

" } } }, @@ -7772,6 +9189,71 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudwatchlogs#PutIndexPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudwatchlogs#PutIndexPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudwatchlogs#PutIndexPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#LimitExceededException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#OperationAbortedException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates or updates a field index policy for the specified log group. Only log groups\n in the Standard log class support field index policies. For more information about log classes, see\n Log classes.

\n

You can use field index policies to create field indexes on fields found in \n log events in the log group. Creating field indexes speeds up and lowers the costs for CloudWatch Logs Insights queries that reference\n those field indexes, because these queries attempt to skip the processing of log events that are known to not match the indexed field.\n Good fields to index are fields that you often need to query for and fields or values that match only a small fraction of the total log events.\n Common examples of indexes\n include request ID, session ID, userID, and instance IDs. For more information, see Create field indexes to improve query performance and reduce costs.

\n

To find the fields that are in your log group events, use the \n GetLogGroupFields\n operation.

\n

For example, suppose you have created a field index for requestId. Then, any \n CloudWatch Logs Insights query on that log group that includes requestId = value\n \n or requestId IN [value, value, ...] will process fewer log events\n to reduce costs, and have improved performance.

\n

Each index policy has the following quotas and restrictions:

\n \n

Matches of log events to the names of indexed fields are case-sensitive. For example, a field index\n of RequestId won't match a log event containing requestId.

\n

Log group-level field index policies created with PutIndexPolicy override account-level field \n index policies created with PutAccountPolicy. If you use\n PutIndexPolicy to create a field\n index policy for a log group, that log group uses only that policy. The log group ignores any account-wide\n field index policy that you might have created.

" + } + }, + "com.amazonaws.cloudwatchlogs#PutIndexPolicyRequest": { + "type": "structure", + "members": { + "logGroupIdentifier": { + "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifier", + "traits": { + "smithy.api#documentation": "

Specify either the log group name or log group ARN to apply this field index policy to. If you specify an ARN, use the format\n arn:aws:logs:region:account-id:log-group:log_group_name Don't include an * at the end.

", + "smithy.api#required": {} + } + }, + "policyDocument": { + "target": "com.amazonaws.cloudwatchlogs#PolicyDocument", + "traits": { + "smithy.api#documentation": "

The index policy document, in JSON format. The following is an example\n of an index policy document that creates two indexes, RequestId and TransactionId.

\n

\n \"policyDocument\": \"{ \"Fields\": [ \"RequestId\", \"TransactionId\" ] }\"\n

\n

The policy document must include at least one field index. For more information about the fields\n that can be included and other restrictions, see Field index syntax and quotas.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudwatchlogs#PutIndexPolicyResponse": { + "type": "structure", + "members": { + "indexPolicy": { + "target": "com.amazonaws.cloudwatchlogs#IndexPolicy", + "traits": { + "smithy.api#documentation": "

The index policy that you just created or updated.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.cloudwatchlogs#PutLogEvents": { "type": "operation", "input": { @@ -7837,7 +9319,7 @@ "entity": { "target": "com.amazonaws.cloudwatchlogs#Entity", "traits": { - "smithy.api#documentation": "

Reserved for internal use.

" + "smithy.api#documentation": "

The entity associated with the log events.

" } } }, @@ -7863,7 +9345,7 @@ "rejectedEntityInfo": { "target": "com.amazonaws.cloudwatchlogs#RejectedEntityInfo", "traits": { - "smithy.api#documentation": "

Reserved for internal use.

" + "smithy.api#documentation": "

Information about why the entity is rejected when calling \n PutLogEvents. Only returned when the entity is rejected.

\n \n

When the entity is rejected, the events may still be accepted.

\n
" } } }, @@ -7880,6 +9362,9 @@ "target": "smithy.api#Unit" }, "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#InvalidOperationException" + }, { "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" }, @@ -7897,7 +9382,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates or updates a metric filter and associates it with the specified log group. With\n metric filters, you can configure rules to extract metric data from log events ingested\n through PutLogEvents.

\n

The maximum number of metric filters that can be associated with a log group is\n 100.

\n

Using regular expressions to create metric filters is supported. For these filters, \n there is a quotas of quota of two regular expression patterns within a single filter pattern. There\n is also a quota of five regular expression patterns per log group.\n For more information about using regular expressions in metric filters, \n see \n Filter pattern syntax for metric filters, subscription filters, filter log events, and Live Tail.

\n

When you create a metric filter, you can also optionally assign a unit and dimensions\n to the metric that is created.

\n \n

Metrics extracted from log events are charged as custom metrics.\n To prevent unexpected high charges, do not specify high-cardinality fields such as \n IPAddress or requestID as dimensions. Each different value \n found for \n a dimension is treated as a separate metric and accrues charges as a separate custom metric.\n

\n

CloudWatch Logs might disable a metric filter if it generates 1,000 different name/value pairs for\n your specified dimensions within one hour.

\n

You can also set up a billing alarm to alert you if your charges are higher than \n expected. For more information, \n see \n Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services Charges.\n

\n
" + "smithy.api#documentation": "

Creates or updates a metric filter and associates it with the specified log group. With\n metric filters, you can configure rules to extract metric data from log events ingested\n through PutLogEvents.

\n

The maximum number of metric filters that can be associated with a log group is\n 100.

\n

Using regular expressions to create metric filters is supported. For these filters, \n there is a quota of two regular expression patterns within a single filter pattern. There\n is also a quota of five regular expression patterns per log group.\n For more information about using regular expressions in metric filters, \n see \n Filter pattern syntax for metric filters, subscription filters, filter log events, and Live Tail.

\n

When you create a metric filter, you can also optionally assign a unit and dimensions\n to the metric that is created.

\n \n

Metrics extracted from log events are charged as custom metrics.\n To prevent unexpected high charges, do not specify high-cardinality fields such as \n IPAddress or requestID as dimensions. Each different value \n found for \n a dimension is treated as a separate metric and accrues charges as a separate custom metric.\n

\n

CloudWatch Logs might disable a metric filter if it generates 1,000 different name/value pairs for\n your specified dimensions within one hour.

\n

You can also set up a billing alarm to alert you if your charges are higher than \n expected. For more information, \n see \n Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services Charges.\n

\n
" } }, "com.amazonaws.cloudwatchlogs#PutMetricFilterRequest": { @@ -7930,6 +9415,13 @@ "smithy.api#documentation": "

A collection of information that defines how metric data gets emitted.

", "smithy.api#required": {} } + }, + "applyOnTransformedLogs": { + "target": "com.amazonaws.cloudwatchlogs#ApplyOnTransformedLogs", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

This parameter is valid only for log groups that have an active log transformer. For more information about\n log transformers, see PutTransformer.

\n

If the log group uses either a log-group level or account-level transformer, and you specify true, the metric filter\n will be applied on the transformed version of the log events instead of the original ingested log events.

" + } } }, "traits": { @@ -8130,6 +9622,9 @@ "target": "smithy.api#Unit" }, "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#InvalidOperationException" + }, { "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" }, @@ -8192,6 +9687,67 @@ "traits": { "smithy.api#documentation": "

The method used to distribute log data to the destination. By default, log data is\n grouped by log stream, but the grouping can be set to random for a more even distribution.\n This property is only applicable when the destination is an Amazon Kinesis data stream.

" } + }, + "applyOnTransformedLogs": { + "target": "com.amazonaws.cloudwatchlogs#ApplyOnTransformedLogs", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

This parameter is valid only for log groups that have an active log transformer. For more information about\n log transformers, see PutTransformer.

\n

If the log group uses either a log-group level or account-level transformer, and you specify true, the subscription filter\n will be applied on the transformed version of the log events instead of the original ingested log events.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudwatchlogs#PutTransformer": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudwatchlogs#PutTransformerRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#LimitExceededException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#OperationAbortedException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates or updates a log transformer for a single log group. You use log transformers to transform log events into\n a different format, making them easier for you to process and analyze. You can also transform logs from different sources into standardized formats that \n contains\n relevant, source-specific information.

\n

After you have created a transformer, \n CloudWatch Logs performs the transformations at the time of log ingestion. You can then refer to the transformed versions of the logs during\n operations such as querying with CloudWatch Logs Insights or creating metric filters or subscription filers.

\n

You can also use a transformer to copy metadata from metadata keys into the log events themselves. This metadata can include log group name, \n log stream name, account ID and Region.

\n

A transformer for a log group is a series of processors, where each processor applies one type of transformation to the log events\n ingested into this log group. The processors work one after another, in the order that you list them, like a pipeline. For more information about the available processors to use in a transformer, see \n Processors that you can use.

\n

Having log events in standardized format enables visibility across your applications for your log analysis, reporting, and alarming needs. \n CloudWatch Logs provides transformation for common log types with out-of-the-box transformation templates for major Amazon Web Services log sources such \n as VPC flow logs, Lambda, and Amazon RDS. You can use pre-built transformation templates or create custom transformation policies.

\n

You can create transformers only for the log groups in the Standard log class.

\n

You can also set up a transformer at the account level. For more information, see \n PutAccountPolicy. If there is both a \n log-group level transformer created with PutTransformer and an account-level transformer that could apply to the same log \n group, the log group uses only the log-group level transformer. It ignores the account-level transformer.

" + } + }, + "com.amazonaws.cloudwatchlogs#PutTransformerRequest": { + "type": "structure", + "members": { + "logGroupIdentifier": { + "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifier", + "traits": { + "smithy.api#documentation": "

Specify either the name or ARN of the log group to create the transformer for.

", + "smithy.api#required": {} + } + }, + "transformerConfig": { + "target": "com.amazonaws.cloudwatchlogs#Processors", + "traits": { + "smithy.api#documentation": "

This structure contains the configuration of this log transformer. A log transformer is an array of processors,\n where each processor applies one type of transformation to the log events that are ingested.

", + "smithy.api#required": {} + } } }, "traits": { @@ -8388,16 +9944,37 @@ "smithy.api#documentation": "

The total number of log events scanned during the query.

" } }, + "estimatedRecordsSkipped": { + "target": "com.amazonaws.cloudwatchlogs#StatsValue", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

An estimate of the number of log events that were skipped when processing this query, \n because the query contained an indexed field. Skipping these entries lowers query costs and \n improves the query performance time.\n For more information about field indexes, see \n PutIndexPolicy.

" + } + }, "bytesScanned": { "target": "com.amazonaws.cloudwatchlogs#StatsValue", "traits": { "smithy.api#default": 0, "smithy.api#documentation": "

The total number of bytes in the log events scanned during the query.

" } + }, + "estimatedBytesSkipped": { + "target": "com.amazonaws.cloudwatchlogs#StatsValue", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

An estimate of the number of bytes in the log events that were skipped when processing this query, \n because the query contained an indexed field. Skipping these entries lowers query costs and improves the query performance time. For more information about field indexes, see \n PutIndexPolicy.

" + } + }, + "logGroupsScanned": { + "target": "com.amazonaws.cloudwatchlogs#StatsValue", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of log groups that were scanned by this query.

" + } } }, "traits": { - "smithy.api#documentation": "

Contains the number of log events scanned by the query, the number of log events that matched the \n query criteria, and the total number of bytes in the log events that were scanned.

" + "smithy.api#documentation": "

Contains the number of log events scanned by the query, the number of log events that matched the \n query criteria, and the total number of bytes in the log events that were scanned.

\n

If the query involved log groups that have field index policies, the estimated number of \n skipped log events and the total bytes of those skipped log events are included. Using field indexes to skip log events in\n queries reduces scan volume and improves performance. For more information, see \n Create field indexes to improve query performance and reduce scan volume.

" } }, "com.amazonaws.cloudwatchlogs#QueryStatus": { @@ -8456,6 +10033,15 @@ } } }, + "com.amazonaws.cloudwatchlogs#QuoteCharacter": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, "com.amazonaws.cloudwatchlogs#RecordField": { "type": "structure", "members": { @@ -8494,13 +10080,13 @@ "errorType": { "target": "com.amazonaws.cloudwatchlogs#EntityRejectionErrorType", "traits": { - "smithy.api#documentation": "

Reserved for internal use.

", + "smithy.api#documentation": "

The type of error that caused the rejection of the entity when calling\n PutLogEvents.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Reserved for internal use.

" + "smithy.api#documentation": "

If an entity is rejected when a PutLogEvents request was made, this\n includes details about the reason for the rejection.

" } }, "com.amazonaws.cloudwatchlogs#RejectedLogEventsInfo": { @@ -8529,8 +10115,73 @@ "smithy.api#documentation": "

Represents the rejected events.

" } }, - "com.amazonaws.cloudwatchlogs#RequestId": { - "type": "string", + "com.amazonaws.cloudwatchlogs#RenameKeyEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#RenameKeyEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.cloudwatchlogs#RenameKeyEntry": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.cloudwatchlogs#Key", + "traits": { + "smithy.api#documentation": "

The key to rename

", + "smithy.api#required": {} + } + }, + "renameTo": { + "target": "com.amazonaws.cloudwatchlogs#RenameTo", + "traits": { + "smithy.api#documentation": "

The string to use for the new key name

", + "smithy.api#required": {} + } + }, + "overwriteIfExists": { + "target": "com.amazonaws.cloudwatchlogs#OverwriteIfExists", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to overwrite the existing value if the destination key already exists. The default is false\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This object defines one key that will be renamed with the \n renameKey processor.

" + } + }, + "com.amazonaws.cloudwatchlogs#RenameKeys": { + "type": "structure", + "members": { + "entries": { + "target": "com.amazonaws.cloudwatchlogs#RenameKeyEntries", + "traits": { + "smithy.api#documentation": "

An array of RenameKeyEntry objects, where each object contains the information about a single key to rename.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this processor to rename keys in a log event.

\n

For more information about this processor including examples, see \n renameKeys in the CloudWatch Logs User Guide.

" + } + }, + "com.amazonaws.cloudwatchlogs#RenameTo": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.cloudwatchlogs#RequestId": { + "type": "string", "traits": { "smithy.api#length": { "min": 0, @@ -8801,6 +10452,72 @@ "smithy.api#error": "client" } }, + "com.amazonaws.cloudwatchlogs#Source": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.cloudwatchlogs#SourceTimezone": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.cloudwatchlogs#SplitString": { + "type": "structure", + "members": { + "entries": { + "target": "com.amazonaws.cloudwatchlogs#SplitStringEntries", + "traits": { + "smithy.api#documentation": "

An array of SplitStringEntry objects, where each object contains the information about one field to split.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this processor to split a field into an array of strings using a delimiting character.

\n

For more information about this processor including examples, see \n splitString in the CloudWatch Logs User Guide.

" + } + }, + "com.amazonaws.cloudwatchlogs#SplitStringEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#SplitStringEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.cloudwatchlogs#SplitStringEntry": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

The key of the field to split.

", + "smithy.api#required": {} + } + }, + "delimiter": { + "target": "com.amazonaws.cloudwatchlogs#Delimiter", + "traits": { + "smithy.api#documentation": "

The separator characters to split the string entry on.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This object defines one log field that will be split with the \n splitString processor.

" + } + }, "com.amazonaws.cloudwatchlogs#StandardUnit": { "type": "enum", "members": { @@ -9121,7 +10838,7 @@ } ], "traits": { - "smithy.api#documentation": "

Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group\n and time range to query and the query string to use.

\n

For more information, see CloudWatch Logs Insights Query Syntax.

\n

After you run a query using StartQuery, the query results are stored by CloudWatch Logs. \n You can use GetQueryResults to retrieve\n the results of a query, using the queryId that StartQuery returns.\n

\n

If you have associated a KMS key with the query results in this account, \n then \n StartQuery uses that key to \n encrypt the results when it stores them. If no key is associated with query results, the query results are \n encrypted with the default CloudWatch Logs encryption method.

\n

Queries time out after 60 minutes of runtime. If your queries are timing out, reduce the\n time range being searched or partition your query into a number of queries.

\n

If you are using CloudWatch cross-account observability, you can use this operation in a\n monitoring account to start a query in a linked source account. For more information, see\n CloudWatch\n cross-account observability. For a cross-account StartQuery operation,\n the query definition must be defined in the monitoring account.

\n

You can have up to 30 concurrent CloudWatch Logs insights queries, including queries\n that have been added to dashboards.

" + "smithy.api#documentation": "

Starts a query of one or more log groups using CloudWatch Logs Insights. You specify the log groups\n and time range to query and the query string to use.

\n

For more information, see CloudWatch Logs Insights Query Syntax.

\n

After you run a query using StartQuery, the query results are stored by CloudWatch Logs. \n You can use GetQueryResults to retrieve\n the results of a query, using the queryId that StartQuery returns.\n

\n \n

To specify the log groups to query, a StartQuery operation must include one of the following:

\n \n
\n

If you have associated a KMS key with the query results in this account, \n then \n StartQuery uses that key to \n encrypt the results when it stores them. If no key is associated with query results, the query results are \n encrypted with the default CloudWatch Logs encryption method.

\n

Queries time out after 60 minutes of runtime. If your queries are timing out, reduce the\n time range being searched or partition your query into a number of queries.

\n

If you are using CloudWatch cross-account observability, you can use this operation in a\n monitoring account to start a query in a linked source account. For more information, see\n CloudWatch\n cross-account observability. For a cross-account StartQuery operation,\n the query definition must be defined in the monitoring account.

\n

You can have up to 30 concurrent CloudWatch Logs insights queries, including queries\n that have been added to dashboards.

" } }, "com.amazonaws.cloudwatchlogs#StartQueryRequest": { @@ -9130,19 +10847,19 @@ "logGroupName": { "target": "com.amazonaws.cloudwatchlogs#LogGroupName", "traits": { - "smithy.api#documentation": "

The log group on which to perform the query.

\n \n

A StartQuery operation must include exactly one of the following\n parameters: logGroupName, logGroupNames, or\n logGroupIdentifiers.

\n
" + "smithy.api#documentation": "

The log group on which to perform the query.

" } }, "logGroupNames": { "target": "com.amazonaws.cloudwatchlogs#LogGroupNames", "traits": { - "smithy.api#documentation": "

The list of log groups to be queried. You can include up to 50 log groups.

\n \n

A StartQuery operation must include exactly one of the following\n parameters: logGroupName, logGroupNames, or\n logGroupIdentifiers.

\n
" + "smithy.api#documentation": "

The list of log groups to be queried. You can include up to 50 log groups.

" } }, "logGroupIdentifiers": { "target": "com.amazonaws.cloudwatchlogs#LogGroupIdentifiers", "traits": { - "smithy.api#documentation": "

The list of log groups to query. You can include up to 50 log groups.

\n

You can specify them by the log group name or ARN. If a log group that you're querying is\n in a source account and you're using a monitoring account, you must specify the ARN of the log\n group here. The query definition must also be defined in the monitoring account.

\n

If you specify an ARN, the ARN can't end with an asterisk (*).

\n

A StartQuery operation must include exactly one of the following parameters:\n logGroupName, logGroupNames, or logGroupIdentifiers.

" + "smithy.api#documentation": "

The list of log groups to query. You can include up to 50 log groups.

\n

You can specify them by the log group name or ARN. If a log group that you're querying is\n in a source account and you're using a monitoring account, you must specify the ARN of the log\n group here. The query definition must also be defined in the monitoring account.

\n

If you specify an ARN, use the format\n arn:aws:logs:region:account-id:log-group:log_group_name Don't include an * at the end.

\n

A StartQuery operation must include exactly one of the following parameters:\n logGroupName, logGroupNames, or logGroupIdentifiers.

" } }, "startTime": { @@ -9314,6 +11031,13 @@ "distribution": { "target": "com.amazonaws.cloudwatchlogs#Distribution" }, + "applyOnTransformedLogs": { + "target": "com.amazonaws.cloudwatchlogs#ApplyOnTransformedLogs", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

This parameter is valid only for log groups that have an active log transformer. For more information about\n log transformers, see PutTransformer.

\n

If this value is true, the subscription filter\n is applied on the transformed version of the log events instead of the original ingested log events.

" + } + }, "creationTime": { "target": "com.amazonaws.cloudwatchlogs#Timestamp", "traits": { @@ -9331,6 +11055,62 @@ "target": "com.amazonaws.cloudwatchlogs#SubscriptionFilter" } }, + "com.amazonaws.cloudwatchlogs#SubstituteString": { + "type": "structure", + "members": { + "entries": { + "target": "com.amazonaws.cloudwatchlogs#SubstituteStringEntries", + "traits": { + "smithy.api#documentation": "

An array of objects, where each object contains the information about one key to match and replace.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor matches a key’s value against a regular expression and replaces all matches with a replacement string.

\n

For more information about this processor including examples, see \n substituteString in the CloudWatch Logs User Guide.

" + } + }, + "com.amazonaws.cloudwatchlogs#SubstituteStringEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#SubstituteStringEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.cloudwatchlogs#SubstituteStringEntry": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.cloudwatchlogs#Source", + "traits": { + "smithy.api#documentation": "

The key to modify

", + "smithy.api#required": {} + } + }, + "from": { + "target": "com.amazonaws.cloudwatchlogs#FromKey", + "traits": { + "smithy.api#documentation": "

The regular expression string to be replaced. Special regex characters such as [ and ] must be escaped using \\\\ \n when using double quotes and with \\ when using single quotes. For more information, \n see \n Class Pattern on the Oracle web site.

", + "smithy.api#required": {} + } + }, + "to": { + "target": "com.amazonaws.cloudwatchlogs#ToKey", + "traits": { + "smithy.api#documentation": "

The string to be substituted for each match of from\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This object defines one log field key that will be replaced using the \n substituteString processor.

" + } + }, "com.amazonaws.cloudwatchlogs#Success": { "type": "boolean", "traits": { @@ -9569,6 +11349,15 @@ } } }, + "com.amazonaws.cloudwatchlogs#Target": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, "com.amazonaws.cloudwatchlogs#TargetArn": { "type": "string", "traits": { @@ -9577,6 +11366,23 @@ } } }, + "com.amazonaws.cloudwatchlogs#TargetFormat": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + } + } + }, + "com.amazonaws.cloudwatchlogs#TargetTimezone": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, "com.amazonaws.cloudwatchlogs#TestEventMessages": { "type": "list", "member": { @@ -9644,6 +11450,65 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudwatchlogs#TestTransformer": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudwatchlogs#TestTransformerRequest" + }, + "output": { + "target": "com.amazonaws.cloudwatchlogs#TestTransformerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudwatchlogs#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudwatchlogs#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Use this operation to test a log transformer. You enter the transformer configuration and a set of log events to test with. The operation\n responds with an array that includes the original log events and the transformed versions.

" + } + }, + "com.amazonaws.cloudwatchlogs#TestTransformerRequest": { + "type": "structure", + "members": { + "transformerConfig": { + "target": "com.amazonaws.cloudwatchlogs#Processors", + "traits": { + "smithy.api#documentation": "

This structure contains the configuration of this log transformer that you want to test. A log transformer is an array of processors,\n where each processor applies one type of transformation to the log events that are ingested.

", + "smithy.api#required": {} + } + }, + "logEventMessages": { + "target": "com.amazonaws.cloudwatchlogs#TestEventMessages", + "traits": { + "smithy.api#documentation": "

An array of the raw log events that you want to use to test this transformer.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudwatchlogs#TestTransformerResponse": { + "type": "structure", + "members": { + "transformedLogs": { + "target": "com.amazonaws.cloudwatchlogs#TransformedLogs", + "traits": { + "smithy.api#documentation": "

An array where each member of the array includes both the original version and the transformed version of one of the log events that you input.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.cloudwatchlogs#ThrottlingException": { "type": "structure", "members": { @@ -9672,6 +11537,15 @@ } } }, + "com.amazonaws.cloudwatchlogs#ToKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, "com.amazonaws.cloudwatchlogs#Token": { "type": "string" }, @@ -9708,6 +11582,152 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.cloudwatchlogs#TransformedEventMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.cloudwatchlogs#TransformedLogRecord": { + "type": "structure", + "members": { + "eventNumber": { + "target": "com.amazonaws.cloudwatchlogs#EventNumber", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The event number.

" + } + }, + "eventMessage": { + "target": "com.amazonaws.cloudwatchlogs#EventMessage", + "traits": { + "smithy.api#documentation": "

The original log event message before it was transformed.

" + } + }, + "transformedEventMessage": { + "target": "com.amazonaws.cloudwatchlogs#TransformedEventMessage", + "traits": { + "smithy.api#documentation": "

The log event message after being transformed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This structure contains information for one log event that\n has been processed by a log transformer.

" + } + }, + "com.amazonaws.cloudwatchlogs#TransformedLogs": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#TransformedLogRecord" + } + }, + "com.amazonaws.cloudwatchlogs#TrimString": { + "type": "structure", + "members": { + "withKeys": { + "target": "com.amazonaws.cloudwatchlogs#TrimStringWithKeys", + "traits": { + "smithy.api#documentation": "

The array containing the keys of the fields to trim.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this processor to remove leading and trailing whitespace.

\n

For more information about this processor including examples, see \n trimString in the CloudWatch Logs User Guide.

" + } + }, + "com.amazonaws.cloudwatchlogs#TrimStringWithKeys": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#WithKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.cloudwatchlogs#Type": { + "type": "enum", + "members": { + "BOOLEAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "boolean" + } + }, + "INTEGER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "integer" + } + }, + "DOUBLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "double" + } + }, + "STRING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "string" + } + } + } + }, + "com.amazonaws.cloudwatchlogs#TypeConverter": { + "type": "structure", + "members": { + "entries": { + "target": "com.amazonaws.cloudwatchlogs#TypeConverterEntries", + "traits": { + "smithy.api#documentation": "

An array of TypeConverterEntry objects, where each object contains the information about one field to change the type of.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this processor to convert a value type associated with the specified key to the specified type. It's\n a casting processor that changes the types of the specified fields. Values can be converted into one of the following datatypes: integer, \n double, string and boolean.

\n

For more information about this processor including examples, see \n trimString in the CloudWatch Logs User Guide.

" + } + }, + "com.amazonaws.cloudwatchlogs#TypeConverterEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#TypeConverterEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.cloudwatchlogs#TypeConverterEntry": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.cloudwatchlogs#Key", + "traits": { + "smithy.api#documentation": "

The key with the value that is to be converted to a different type.

", + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.cloudwatchlogs#Type", + "traits": { + "smithy.api#documentation": "

The type to convert the field value to. Valid values are integer, \n double, string and boolean.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This object defines one value type that will be converted using the \n typeConverter processor.

" + } + }, "com.amazonaws.cloudwatchlogs#Unmask": { "type": "boolean", "traits": { @@ -10022,6 +12042,33 @@ "smithy.api#input": {} } }, + "com.amazonaws.cloudwatchlogs#UpperCaseString": { + "type": "structure", + "members": { + "withKeys": { + "target": "com.amazonaws.cloudwatchlogs#UpperCaseStringWithKeys", + "traits": { + "smithy.api#documentation": "

The array of containing the keys of the field to convert to uppercase.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This processor converts a string field to uppercase.

\n

For more information about this processor including examples, see \n upperCaseString in the CloudWatch Logs User Guide.

" + } + }, + "com.amazonaws.cloudwatchlogs#UpperCaseStringWithKeys": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudwatchlogs#WithKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.cloudwatchlogs#ValidationException": { "type": "structure", "members": { @@ -10036,6 +12083,23 @@ }, "com.amazonaws.cloudwatchlogs#Value": { "type": "string" + }, + "com.amazonaws.cloudwatchlogs#ValueKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.cloudwatchlogs#WithKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } } } } diff --git a/codegen/sdk-codegen/aws-models/cost-explorer.json b/codegen/sdk-codegen/aws-models/cost-explorer.json index a70595c61bb..3f4d5e71cba 100644 --- a/codegen/sdk-codegen/aws-models/cost-explorer.json +++ b/codegen/sdk-codegen/aws-models/cost-explorer.json @@ -66,6 +66,9 @@ { "target": "com.amazonaws.costexplorer#GetApproximateUsageRecords" }, + { + "target": "com.amazonaws.costexplorer#GetCommitmentPurchaseAnalysis" + }, { "target": "com.amazonaws.costexplorer#GetCostAndUsage" }, @@ -114,6 +117,9 @@ { "target": "com.amazonaws.costexplorer#GetUsageForecast" }, + { + "target": "com.amazonaws.costexplorer#ListCommitmentPurchaseAnalyses" + }, { "target": "com.amazonaws.costexplorer#ListCostAllocationTagBackfillHistory" }, @@ -132,6 +138,9 @@ { "target": "com.amazonaws.costexplorer#ProvideAnomalyFeedback" }, + { + "target": "com.amazonaws.costexplorer#StartCommitmentPurchaseAnalysis" + }, { "target": "com.amazonaws.costexplorer#StartCostAllocationTagBackfill" }, @@ -966,6 +975,16 @@ } } }, + "com.amazonaws.costexplorer#AccountId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 12 + }, + "smithy.api#pattern": "^[0-9]{12}$" + } + }, "com.amazonaws.costexplorer#AccountScope": { "type": "enum", "members": { @@ -989,6 +1008,151 @@ "com.amazonaws.costexplorer#AmortizedUpfrontFee": { "type": "string" }, + "com.amazonaws.costexplorer#AnalysisDetails": { + "type": "structure", + "members": { + "SavingsPlansPurchaseAnalysisDetails": { + "target": "com.amazonaws.costexplorer#SavingsPlansPurchaseAnalysisDetails", + "traits": { + "smithy.api#documentation": "

Details about the Savings Plans purchase\n analysis.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the analysis.

" + } + }, + "com.amazonaws.costexplorer#AnalysisId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 36 + }, + "smithy.api#pattern": "^[\\S\\s]{8}-[\\S\\s]{4}-[\\S\\s]{4}-[\\S\\s]{4}-[\\S\\s]{12}$" + } + }, + "com.amazonaws.costexplorer#AnalysisIds": { + "type": "list", + "member": { + "target": "com.amazonaws.costexplorer#AnalysisId" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 600 + } + } + }, + "com.amazonaws.costexplorer#AnalysisNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.costexplorer#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The requested analysis can't be\n found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.costexplorer#AnalysisStatus": { + "type": "enum", + "members": { + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "PROCESSING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROCESSING" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.costexplorer#AnalysisSummary": { + "type": "structure", + "members": { + "EstimatedCompletionTime": { + "target": "com.amazonaws.costexplorer#ZonedDateTime", + "traits": { + "smithy.api#documentation": "

The estimated time for when the analysis will\n complete.

" + } + }, + "AnalysisCompletionTime": { + "target": "com.amazonaws.costexplorer#ZonedDateTime", + "traits": { + "smithy.api#documentation": "

The completion time of the analysis.

" + } + }, + "AnalysisStartedTime": { + "target": "com.amazonaws.costexplorer#ZonedDateTime", + "traits": { + "smithy.api#documentation": "

The start time of the analysis.

" + } + }, + "AnalysisStatus": { + "target": "com.amazonaws.costexplorer#AnalysisStatus", + "traits": { + "smithy.api#documentation": "

The status of the analysis.

" + } + }, + "ErrorCode": { + "target": "com.amazonaws.costexplorer#ErrorCode", + "traits": { + "smithy.api#documentation": "

The error code used for the\n analysis.

" + } + }, + "AnalysisId": { + "target": "com.amazonaws.costexplorer#AnalysisId", + "traits": { + "smithy.api#documentation": "

The analysis ID that's associated with the commitment\n purchase.

" + } + }, + "CommitmentPurchaseAnalysisConfiguration": { + "target": "com.amazonaws.costexplorer#CommitmentPurchaseAnalysisConfiguration", + "traits": { + "smithy.api#documentation": "

The analysis configuration for the commitment purchase\n analysis.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the analysis.

" + } + }, + "com.amazonaws.costexplorer#AnalysisSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.costexplorer#AnalysisSummary" + } + }, + "com.amazonaws.costexplorer#AnalysisType": { + "type": "enum", + "members": { + "MAX_SAVINGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MAX_SAVINGS" + } + }, + "CUSTOM_COMMITMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM_COMMITMENT" + } + } + } + }, "com.amazonaws.costexplorer#Anomalies": { "type": "list", "member": { @@ -1020,7 +1184,7 @@ "DimensionValue": { "target": "com.amazonaws.costexplorer#GenericString", "traits": { - "smithy.api#documentation": "

The dimension for the anomaly (for example, an Amazon Web Servicesservice in a service\n monitor).

" + "smithy.api#documentation": "

The dimension for the anomaly (for example, an Amazon Web Services service in a service\n monitor).

" } }, "RootCauses": { @@ -1365,6 +1529,20 @@ "smithy.api#error": "client" } }, + "com.amazonaws.costexplorer#CommitmentPurchaseAnalysisConfiguration": { + "type": "structure", + "members": { + "SavingsPlansPurchaseAnalysisConfiguration": { + "target": "com.amazonaws.costexplorer#SavingsPlansPurchaseAnalysisConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the Savings Plans purchase\n analysis.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for the commitment purchase\n analysis.

" + } + }, "com.amazonaws.costexplorer#Context": { "type": "enum", "members": { @@ -1820,7 +1998,7 @@ "Rule": { "target": "com.amazonaws.costexplorer#Expression", "traits": { - "smithy.api#documentation": "

An Expression\n object used to categorize costs. This supports dimensions, tags, and nested expressions.\n Currently the only dimensions supported are LINKED_ACCOUNT,\n\n SERVICE_CODE, RECORD_TYPE, LINKED_ACCOUNT_NAME, REGION, and USAGE_TYPE.

\n

\n RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also\n supported for Cost Category expressions. This dimension uses different terms, depending\n on whether you're using the console or API/JSON editor. For a detailed comparison, see\n Term Comparisons in the Billing and Cost Management User\n Guide.

" + "smithy.api#documentation": "

An Expression\n object used to categorize costs. This supports dimensions, tags, and nested expressions.\n Currently the only dimensions supported are LINKED_ACCOUNT,\n\n SERVICE_CODE, RECORD_TYPE, LINKED_ACCOUNT_NAME, REGION, USAGE_TYPE, and BILLING_ENTITY.

\n

\n RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also\n supported for Cost Category expressions. This dimension uses different terms, depending\n on whether you're using the console or API/JSON editor. For a detailed comparison, see\n Term Comparisons in the Billing and Cost Management User\n Guide.

" } }, "InheritedValue": { @@ -3340,6 +3518,41 @@ "com.amazonaws.costexplorer#Entity": { "type": "string" }, + "com.amazonaws.costexplorer#ErrorCode": { + "type": "enum", + "members": { + "NO_USAGE_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO_USAGE_FOUND" + } + }, + "INTERNAL_FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_FAILURE" + } + }, + "INVALID_SAVINGS_PLANS_TO_ADD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_SAVINGS_PLANS_TO_ADD" + } + }, + "INVALID_SAVINGS_PLANS_TO_EXCLUDE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_SAVINGS_PLANS_TO_EXCLUDE" + } + }, + "INVALID_ACCOUNT_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_ACCOUNT_ID" + } + } + } + }, "com.amazonaws.costexplorer#ErrorMessage": { "type": "string" }, @@ -3953,6 +4166,105 @@ "smithy.api#output": {} } }, + "com.amazonaws.costexplorer#GetCommitmentPurchaseAnalysis": { + "type": "operation", + "input": { + "target": "com.amazonaws.costexplorer#GetCommitmentPurchaseAnalysisRequest" + }, + "output": { + "target": "com.amazonaws.costexplorer#GetCommitmentPurchaseAnalysisResponse" + }, + "errors": [ + { + "target": "com.amazonaws.costexplorer#AnalysisNotFoundException" + }, + { + "target": "com.amazonaws.costexplorer#DataUnavailableException" + }, + { + "target": "com.amazonaws.costexplorer#LimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a commitment purchase analysis result based on the\n AnalysisId.

" + } + }, + "com.amazonaws.costexplorer#GetCommitmentPurchaseAnalysisRequest": { + "type": "structure", + "members": { + "AnalysisId": { + "target": "com.amazonaws.costexplorer#AnalysisId", + "traits": { + "smithy.api#documentation": "

The analysis ID that's associated with the commitment purchase\n analysis.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.costexplorer#GetCommitmentPurchaseAnalysisResponse": { + "type": "structure", + "members": { + "EstimatedCompletionTime": { + "target": "com.amazonaws.costexplorer#ZonedDateTime", + "traits": { + "smithy.api#documentation": "

The estimated time for when the analysis will\n complete.

", + "smithy.api#required": {} + } + }, + "AnalysisCompletionTime": { + "target": "com.amazonaws.costexplorer#ZonedDateTime", + "traits": { + "smithy.api#documentation": "

The completion time of the analysis.

" + } + }, + "AnalysisStartedTime": { + "target": "com.amazonaws.costexplorer#ZonedDateTime", + "traits": { + "smithy.api#documentation": "

The start time of the analysis.

", + "smithy.api#required": {} + } + }, + "AnalysisId": { + "target": "com.amazonaws.costexplorer#AnalysisId", + "traits": { + "smithy.api#documentation": "

The analysis ID that's associated with the commitment purchase\n analysis.

", + "smithy.api#required": {} + } + }, + "AnalysisStatus": { + "target": "com.amazonaws.costexplorer#AnalysisStatus", + "traits": { + "smithy.api#documentation": "

The status of the analysis.

", + "smithy.api#required": {} + } + }, + "ErrorCode": { + "target": "com.amazonaws.costexplorer#ErrorCode", + "traits": { + "smithy.api#documentation": "

The error code used for the analysis.

" + } + }, + "AnalysisDetails": { + "target": "com.amazonaws.costexplorer#AnalysisDetails", + "traits": { + "smithy.api#documentation": "

Details about the analysis.

" + } + }, + "CommitmentPurchaseAnalysisConfiguration": { + "target": "com.amazonaws.costexplorer#CommitmentPurchaseAnalysisConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the commitment purchase\n analysis.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.costexplorer#GetCostAndUsage": { "type": "operation", "input": { @@ -4418,7 +4730,7 @@ "Context": { "target": "com.amazonaws.costexplorer#Context", "traits": { - "smithy.api#documentation": "

The context for the call to GetDimensionValues. This can be\n RESERVATIONS or COST_AND_USAGE. The default value is\n COST_AND_USAGE. If the context is set to RESERVATIONS, the\n resulting dimension values can be used in the GetReservationUtilization\n operation. If the context is set to COST_AND_USAGE, the resulting dimension\n values can be used in the GetCostAndUsage operation.

\n

If you set the context to COST_AND_USAGE, you can use the following\n dimensions for searching:

\n \n

If you set the context to RESERVATIONS, you can use the following\n dimensions for searching:

\n \n

If you set the context to SAVINGS_PLANS, you can use the following\n dimensions for searching:

\n " + "smithy.api#documentation": "

The context for the call to GetDimensionValues. This can be\n RESERVATIONS or COST_AND_USAGE. The default value is\n COST_AND_USAGE. If the context is set to RESERVATIONS, the\n resulting dimension values can be used in the GetReservationUtilization\n operation. If the context is set to COST_AND_USAGE, the resulting dimension\n values can be used in the GetCostAndUsage operation.

\n

If you set the context to COST_AND_USAGE, you can use the following\n dimensions for searching:

\n \n

If you set the context to RESERVATIONS, you can use the following\n dimensions for searching:

\n \n

If you set the context to SAVINGS_PLANS, you can use the following\n dimensions for searching:

\n " } }, "Filter": { @@ -4754,7 +5066,7 @@ "Filter": { "target": "com.amazonaws.costexplorer#Expression", "traits": { - "smithy.api#documentation": "

Filters utilization data by dimensions. You can filter by the following\n dimensions:

\n \n

\n GetReservationUtilization uses the same Expression object\n as the other operations, but only AND is supported among each dimension, and\n nesting is supported up to only one level deep. If there are multiple values for a dimension,\n they are OR'd together.

" + "smithy.api#documentation": "

Filters utilization data by dimensions. You can filter by the following\n dimensions:

\n \n

\n GetReservationUtilization uses the same Expression object\n as the other operations, but only AND is supported among each dimension, and\n nesting is supported up to only one level deep. If there are multiple values for a dimension,\n they are OR'd together.

" } }, "SortBy": { @@ -5772,15 +6084,18 @@ "smithy.api#error": "client" } }, - "com.amazonaws.costexplorer#ListCostAllocationTagBackfillHistory": { + "com.amazonaws.costexplorer#ListCommitmentPurchaseAnalyses": { "type": "operation", "input": { - "target": "com.amazonaws.costexplorer#ListCostAllocationTagBackfillHistoryRequest" + "target": "com.amazonaws.costexplorer#ListCommitmentPurchaseAnalysesRequest" }, "output": { - "target": "com.amazonaws.costexplorer#ListCostAllocationTagBackfillHistoryResponse" + "target": "com.amazonaws.costexplorer#ListCommitmentPurchaseAnalysesResponse" }, "errors": [ + { + "target": "com.amazonaws.costexplorer#DataUnavailableException" + }, { "target": "com.amazonaws.costexplorer#InvalidNextTokenException" }, @@ -5789,27 +6104,35 @@ } ], "traits": { - "smithy.api#documentation": "

\n Retrieves a list of your historical cost allocation tag backfill requests.\n

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } + "smithy.api#documentation": "

Lists the commitment purchase analyses for your account based on the last 30\n days.

" } }, - "com.amazonaws.costexplorer#ListCostAllocationTagBackfillHistoryRequest": { + "com.amazonaws.costexplorer#ListCommitmentPurchaseAnalysesRequest": { "type": "structure", "members": { - "NextToken": { + "AnalysisStatus": { + "target": "com.amazonaws.costexplorer#AnalysisStatus", + "traits": { + "smithy.api#documentation": "

The status of the analysis.

" + } + }, + "NextPageToken": { "target": "com.amazonaws.costexplorer#NextPageToken", "traits": { - "smithy.api#documentation": "

\n The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.\n

" + "smithy.api#documentation": "

The token to retrieve the next set of\n results.

" } }, - "MaxResults": { - "target": "com.amazonaws.costexplorer#CostAllocationTagsMaxResults", + "PageSize": { + "target": "com.amazonaws.costexplorer#NonNegativeInteger", "traits": { - "smithy.api#documentation": "

\n The maximum number of objects that are returned for this request.\n

" + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of analyses that you want returned in a single response\n object.

" + } + }, + "AnalysisIds": { + "target": "com.amazonaws.costexplorer#AnalysisIds", + "traits": { + "smithy.api#documentation": "

The analysis IDs associated with the commitment purchase\n analyses.

" } } }, @@ -5817,19 +6140,84 @@ "smithy.api#input": {} } }, - "com.amazonaws.costexplorer#ListCostAllocationTagBackfillHistoryResponse": { + "com.amazonaws.costexplorer#ListCommitmentPurchaseAnalysesResponse": { "type": "structure", "members": { - "BackfillRequests": { - "target": "com.amazonaws.costexplorer#CostAllocationTagBackfillRequestList", + "AnalysisSummaryList": { + "target": "com.amazonaws.costexplorer#AnalysisSummaryList", "traits": { - "smithy.api#documentation": "

\n The list of historical cost allocation tag backfill requests.\n

" + "smithy.api#documentation": "

The list of analyses.

" } }, - "NextToken": { + "NextPageToken": { "target": "com.amazonaws.costexplorer#NextPageToken", "traits": { - "smithy.api#documentation": "

\n The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.\n

" + "smithy.api#documentation": "

The token to retrieve the next set of\n results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.costexplorer#ListCostAllocationTagBackfillHistory": { + "type": "operation", + "input": { + "target": "com.amazonaws.costexplorer#ListCostAllocationTagBackfillHistoryRequest" + }, + "output": { + "target": "com.amazonaws.costexplorer#ListCostAllocationTagBackfillHistoryResponse" + }, + "errors": [ + { + "target": "com.amazonaws.costexplorer#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.costexplorer#LimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Retrieves a list of your historical cost allocation tag backfill requests.\n

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.costexplorer#ListCostAllocationTagBackfillHistoryRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.costexplorer#NextPageToken", + "traits": { + "smithy.api#documentation": "

\n The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.\n

" + } + }, + "MaxResults": { + "target": "com.amazonaws.costexplorer#CostAllocationTagsMaxResults", + "traits": { + "smithy.api#documentation": "

\n The maximum number of objects that are returned for this request.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.costexplorer#ListCostAllocationTagBackfillHistoryResponse": { + "type": "structure", + "members": { + "BackfillRequests": { + "target": "com.amazonaws.costexplorer#CostAllocationTagBackfillRequestList", + "traits": { + "smithy.api#documentation": "

\n The list of historical cost allocation tag backfill requests.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.costexplorer#NextPageToken", + "traits": { + "smithy.api#documentation": "

\n The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.\n

" } } }, @@ -7841,7 +8229,7 @@ "Service": { "target": "com.amazonaws.costexplorer#GenericString", "traits": { - "smithy.api#documentation": "

The Amazon Web Servicesservice name that's associated with the cost anomaly.

" + "smithy.api#documentation": "

The Amazon Web Services service name that's associated with the cost anomaly.

" } }, "Region": { @@ -7870,7 +8258,7 @@ } }, "traits": { - "smithy.api#documentation": "

The combination of Amazon Web Servicesservice, linked account, linked account name,\n Region, and usage type where a cost anomaly is observed. The linked account name will\n only be available when the account name can be identified.

" + "smithy.api#documentation": "

The combination of Amazon Web Services service, linked account, linked account name,\n Region, and usage type where a cost anomaly is observed. The linked account name will\n only be available when the account name can be identified.

" } }, "com.amazonaws.costexplorer#RootCauses": { @@ -7882,6 +8270,56 @@ "com.amazonaws.costexplorer#SavingsPlanArn": { "type": "string" }, + "com.amazonaws.costexplorer#SavingsPlans": { + "type": "structure", + "members": { + "PaymentOption": { + "target": "com.amazonaws.costexplorer#PaymentOption", + "traits": { + "smithy.api#documentation": "

The payment option for the Savings Plans\n commitment.

" + } + }, + "SavingsPlansType": { + "target": "com.amazonaws.costexplorer#SupportedSavingsPlansType", + "traits": { + "smithy.api#documentation": "

The Savings Plans type.

" + } + }, + "Region": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The Region associated with the Savings Plans\n commitment.

" + } + }, + "InstanceFamily": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The instance family of the Savings Plans\n commitment.

" + } + }, + "TermInYears": { + "target": "com.amazonaws.costexplorer#TermInYears", + "traits": { + "smithy.api#documentation": "

The term that you want the Savings Plans commitment\n for.

" + } + }, + "SavingsPlansCommitment": { + "target": "com.amazonaws.costexplorer#SavingsPlansCommitment", + "traits": { + "smithy.api#documentation": "

The Savings Plans commitment.

" + } + }, + "OfferingId": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The unique ID that's used to distinguish commitments from one\n another.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Savings Plans commitment\n details.

" + } + }, "com.amazonaws.costexplorer#SavingsPlansAmortizedCommitment": { "type": "structure", "members": { @@ -7908,6 +8346,15 @@ "smithy.api#documentation": "

The amortized amount of Savings Plans purchased in a specific account during a\n specific time interval.

" } }, + "com.amazonaws.costexplorer#SavingsPlansCommitment": { + "type": "double", + "traits": { + "smithy.api#range": { + "min": 0.001, + "max": 5000 + } + } + }, "com.amazonaws.costexplorer#SavingsPlansCoverage": { "type": "structure", "members": { @@ -8030,6 +8477,203 @@ "smithy.api#documentation": "

The attribute details on a specific Savings Plan.

" } }, + "com.amazonaws.costexplorer#SavingsPlansId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 36 + }, + "smithy.api#pattern": "^[\\S\\s]{8}-[\\S\\s]{4}-[\\S\\s]{4}-[\\S\\s]{4}-[\\S\\s]{12}$" + } + }, + "com.amazonaws.costexplorer#SavingsPlansPurchaseAnalysisConfiguration": { + "type": "structure", + "members": { + "AccountScope": { + "target": "com.amazonaws.costexplorer#AccountScope", + "traits": { + "smithy.api#documentation": "

The account scope that you want your analysis\n for.

" + } + }, + "AccountId": { + "target": "com.amazonaws.costexplorer#AccountId", + "traits": { + "smithy.api#documentation": "

The account that the analysis is\n for.

" + } + }, + "AnalysisType": { + "target": "com.amazonaws.costexplorer#AnalysisType", + "traits": { + "smithy.api#documentation": "

The type of analysis.

", + "smithy.api#required": {} + } + }, + "SavingsPlansToAdd": { + "target": "com.amazonaws.costexplorer#SavingsPlansToAdd", + "traits": { + "smithy.api#documentation": "

Savings Plans to include in the\n analysis.

", + "smithy.api#required": {} + } + }, + "SavingsPlansToExclude": { + "target": "com.amazonaws.costexplorer#SavingsPlansToExclude", + "traits": { + "smithy.api#documentation": "

Savings Plans to exclude from the\n analysis.

" + } + }, + "LookBackTimePeriod": { + "target": "com.amazonaws.costexplorer#DateInterval", + "traits": { + "smithy.api#documentation": "

The time period associated with the\n analysis.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for the Savings Plans purchase\n analysis.

" + } + }, + "com.amazonaws.costexplorer#SavingsPlansPurchaseAnalysisDetails": { + "type": "structure", + "members": { + "CurrencyCode": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The currency code used for the\n analysis.

" + } + }, + "LookbackPeriodInHours": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The lookback period in hours that's used to generate the\n analysis.

" + } + }, + "CurrentAverageCoverage": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The average value of hourly coverage over the lookback\n period.

" + } + }, + "CurrentAverageHourlyOnDemandSpend": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The average value of hourly On-Demand spend over the lookback\n period.

" + } + }, + "CurrentMaximumHourlyOnDemandSpend": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The highest value of hourly On-Demand spend over the lookback\n period.

" + } + }, + "CurrentMinimumHourlyOnDemandSpend": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The lowest value of hourly On-Demand spend over the lookback\n period.

" + } + }, + "CurrentOnDemandSpend": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The current total On-Demand spend over the lookback\n period.

" + } + }, + "ExistingHourlyCommitment": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The existing hourly commitment for the Savings Plan\n type.

" + } + }, + "HourlyCommitmentToPurchase": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The recommended or custom hourly\n commitment.

" + } + }, + "EstimatedAverageCoverage": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The estimated coverage of the Savings\n Plan.

" + } + }, + "EstimatedAverageUtilization": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The estimated utilization of the Savings\n Plan.

" + } + }, + "EstimatedMonthlySavingsAmount": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The estimated monthly savings amount based on the Savings\n Plan.

" + } + }, + "EstimatedOnDemandCost": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The remaining On-Demand cost estimated to not be covered by the commitment, over the\n length of the lookback period.

" + } + }, + "EstimatedOnDemandCostWithCurrentCommitment": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The estimated On-Demand cost you expect with no additional commitment, based on your\n usage of the selected time period and the Savings Plan you\n own.

" + } + }, + "EstimatedROI": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The estimated return on investment that's based on the purchase commitment and\n estimated savings. This is calculated as\n estimatedSavingsAmount/estimatedSPCost*100.

" + } + }, + "EstimatedSavingsAmount": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The estimated savings amount that's based on the purchase commitment over the length\n of the lookback period.

" + } + }, + "EstimatedSavingsPercentage": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The estimated savings percentage relative to the total cost over the cost calculation\n lookback period.

" + } + }, + "EstimatedCommitmentCost": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The estimated cost of the purchase commitment over the length of the lookback\n period.

" + } + }, + "LatestUsageTimestamp": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The date and time of the last hour that went into the\n analysis.

" + } + }, + "UpfrontCost": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

The upfront cost of the Savings Plan, based on the selected payment\n option.

" + } + }, + "AdditionalMetadata": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

Additional metadata that might be applicable to the\n commitment.

" + } + }, + "MetricsOverLookbackPeriod": { + "target": "com.amazonaws.costexplorer#MetricsOverLookbackPeriod", + "traits": { + "smithy.api#documentation": "

The related hourly cost, coverage, and utilization metrics over the lookback\n period.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the Savings Plans purchase\n analysis.

" + } + }, "com.amazonaws.costexplorer#SavingsPlansPurchaseRecommendation": { "type": "structure", "members": { @@ -8316,6 +8960,30 @@ "smithy.api#documentation": "

The amount of savings that you're accumulating, against the public On-Demand rate of\n the usage accrued in an account.

" } }, + "com.amazonaws.costexplorer#SavingsPlansToAdd": { + "type": "list", + "member": { + "target": "com.amazonaws.costexplorer#SavingsPlans" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "com.amazonaws.costexplorer#SavingsPlansToExclude": { + "type": "list", + "member": { + "target": "com.amazonaws.costexplorer#SavingsPlansId" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + } + } + }, "com.amazonaws.costexplorer#SavingsPlansUtilization": { "type": "structure", "members": { @@ -8549,6 +9217,76 @@ } } }, + "com.amazonaws.costexplorer#StartCommitmentPurchaseAnalysis": { + "type": "operation", + "input": { + "target": "com.amazonaws.costexplorer#StartCommitmentPurchaseAnalysisRequest" + }, + "output": { + "target": "com.amazonaws.costexplorer#StartCommitmentPurchaseAnalysisResponse" + }, + "errors": [ + { + "target": "com.amazonaws.costexplorer#DataUnavailableException" + }, + { + "target": "com.amazonaws.costexplorer#GenerationExistsException" + }, + { + "target": "com.amazonaws.costexplorer#LimitExceededException" + }, + { + "target": "com.amazonaws.costexplorer#ServiceQuotaExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

Specifies the parameters of a planned commitment purchase and starts the generation of the\n analysis. This enables you to estimate the cost, coverage, and utilization impact of your\n planned commitment purchases. You can request up to 20 analysis runs per\n day.

" + } + }, + "com.amazonaws.costexplorer#StartCommitmentPurchaseAnalysisRequest": { + "type": "structure", + "members": { + "CommitmentPurchaseAnalysisConfiguration": { + "target": "com.amazonaws.costexplorer#CommitmentPurchaseAnalysisConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the commitment purchase\n analysis.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.costexplorer#StartCommitmentPurchaseAnalysisResponse": { + "type": "structure", + "members": { + "AnalysisId": { + "target": "com.amazonaws.costexplorer#AnalysisId", + "traits": { + "smithy.api#documentation": "

The analysis ID that's associated with the commitment purchase\n analysis.

", + "smithy.api#required": {} + } + }, + "AnalysisStartedTime": { + "target": "com.amazonaws.costexplorer#ZonedDateTime", + "traits": { + "smithy.api#documentation": "

The start time of the analysis.

", + "smithy.api#required": {} + } + }, + "EstimatedCompletionTime": { + "target": "com.amazonaws.costexplorer#ZonedDateTime", + "traits": { + "smithy.api#documentation": "

The estimated time for when the analysis will\n complete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.costexplorer#StartCostAllocationTagBackfill": { "type": "operation", "input": { diff --git a/codegen/sdk-codegen/aws-models/ec2.json b/codegen/sdk-codegen/aws-models/ec2.json index c8e6718a2e9..bdddd688a67 100644 --- a/codegen/sdk-codegen/aws-models/ec2.json +++ b/codegen/sdk-codegen/aws-models/ec2.json @@ -345,7 +345,7 @@ "target": "com.amazonaws.ec2#AcceptCapacityReservationBillingOwnershipResult" }, "traits": { - "smithy.api#documentation": "

Accepts a request to assign billing of the available capacity of a shared Capacity Reservation to your \n\t\t\taccount. For more information, see \n\t\t\t\tBilling assignment for shared Amazon EC2 Capacity Reservations.

" + "smithy.api#documentation": "

Accepts a request to assign billing of the available capacity of a shared Capacity\n\t\t\tReservation to your account. For more information, see Billing assignment for shared\n\t\t\t\t\tAmazon EC2 Capacity Reservations.

" } }, "com.amazonaws.ec2#AcceptCapacityReservationBillingOwnershipRequest": { @@ -1043,6 +1043,32 @@ } } }, + "com.amazonaws.ec2#AddIpamOrganizationalUnitExclusion": { + "type": "structure", + "members": { + "OrganizationsEntityPath": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

An Amazon Web Services Organizations entity path. Build the path for the OU(s) using Amazon Web Services Organizations IDs separated by a /. Include all child OUs by ending the path with /*.

\n \n

For more information on how to construct an entity path, see Understand the Amazon Web Services Organizations entity path in the Amazon Web Services Identity and Access Management User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Add an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#AddIpamOrganizationalUnitExclusionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AddIpamOrganizationalUnitExclusion" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, "com.amazonaws.ec2#AddPrefixListEntries": { "type": "list", "member": { @@ -2909,6 +2935,12 @@ { "target": "com.amazonaws.ec2#DescribeByoipCidrs" }, + { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistory" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferings" + }, { "target": "com.amazonaws.ec2#DescribeCapacityBlockOfferings" }, @@ -3941,6 +3973,9 @@ { "target": "com.amazonaws.ec2#PurchaseCapacityBlock" }, + { + "target": "com.amazonaws.ec2#PurchaseCapacityBlockExtension" + }, { "target": "com.amazonaws.ec2#PurchaseHostReservation" }, @@ -6434,7 +6469,7 @@ "target": "com.amazonaws.ec2#AssociateCapacityReservationBillingOwnerResult" }, "traits": { - "smithy.api#documentation": "

Initiates a request to assign billing of the unused capacity of a shared Capacity Reservation to a consumer \n\t\t\taccount that is consolidated under the same Amazon Web Services organizations payer account. For more information, see \n\t\t\tBilling assignment for shared \n\t\t\t\tAmazon EC2 Capacity Reservations.

" + "smithy.api#documentation": "

Initiates a request to assign billing of the unused capacity of a shared Capacity\n\t\t\tReservation to a consumer account that is consolidated under the same Amazon Web Services\n\t\t\torganizations payer account. For more information, see Billing assignment for shared\n\t\t\t\t\tAmazon EC2 Capacity Reservations.

" } }, "com.amazonaws.ec2#AssociateCapacityReservationBillingOwnerRequest": { @@ -9465,7 +9500,7 @@ "target": "com.amazonaws.ec2#BlockPublicAccessMode", "traits": { "aws.protocols#ec2QueryName": "InternetGatewayBlockMode", - "smithy.api#documentation": "

The mode of VPC BPA.

\n ", + "smithy.api#documentation": "

The mode of VPC BPA.

\n ", "smithy.api#xmlName": "internetGatewayBlockMode" } } @@ -10060,7 +10095,7 @@ "target": "com.amazonaws.ec2#CancelCapacityReservationResult" }, "traits": { - "smithy.api#documentation": "

Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to\n\t\t\tcancelled.

\n

Instances running in the reserved capacity continue running until you stop them. Stopped\n\t\t\tinstances that target the Capacity Reservation can no longer launch. Modify these instances to either\n\t\t\ttarget a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation\n\t\t\tthat has matching attributes and sufficient capacity.

" + "smithy.api#documentation": "

Cancels the specified Capacity Reservation, releases the reserved capacity, and changes \n\t\t\tthe Capacity Reservation's state to cancelled.

\n

You can cancel a Capacity Reservation that is in the following states:

\n \n

If a future-dated Capacity Reservation enters the delayed state, the commitment \n\t\t\tduration is waived, and you can cancel it as soon as it enters the active state.

\n

Instances running in the reserved capacity continue running until you stop them. Stopped\n\t\t\tinstances that target the Capacity Reservation can no longer launch. Modify these instances to either\n\t\t\ttarget a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation\n\t\t\tthat has matching attributes and sufficient capacity.

" } }, "com.amazonaws.ec2#CancelCapacityReservationFleetError": { @@ -10102,7 +10137,7 @@ "target": "com.amazonaws.ec2#CancelCapacityReservationFleetsResult" }, "traits": { - "smithy.api#documentation": "

Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity Reservation \n\t\t\tFleet, the following happens:

\n " + "smithy.api#documentation": "

Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity\n\t\t\tReservation Fleet, the following happens:

\n " } }, "com.amazonaws.ec2#CancelCapacityReservationFleetsRequest": { @@ -10135,7 +10170,7 @@ "target": "com.amazonaws.ec2#CapacityReservationFleetCancellationStateSet", "traits": { "aws.protocols#ec2QueryName": "SuccessfulFleetCancellationSet", - "smithy.api#documentation": "

Information about the Capacity Reservation Fleets that were successfully cancelled.

", + "smithy.api#documentation": "

Information about the Capacity Reservation Fleets that were successfully\n\t\t\tcancelled.

", "smithy.api#xmlName": "successfulFleetCancellationSet" } }, @@ -10795,7 +10830,7 @@ "target": "com.amazonaws.ec2#AllocationType", "traits": { "aws.protocols#ec2QueryName": "AllocationType", - "smithy.api#documentation": "

The usage type. used indicates that the instance capacity is \n\t\t\tin use by instances that are running in the Capacity Reservation.

", + "smithy.api#documentation": "

The usage type. used indicates that the instance capacity is in use by\n\t\t\tinstances that are running in the Capacity Reservation.

", "smithy.api#xmlName": "allocationType" } }, @@ -10803,7 +10838,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "Count", - "smithy.api#documentation": "

The amount of instance capacity associated with the usage. For example a value of \n\t\t\t4 indicates that instance capacity for 4 instances is currently in use.

", + "smithy.api#documentation": "

The amount of instance capacity associated with the usage. For example a value of\n\t\t\t\t4 indicates that instance capacity for 4 instances is currently in\n\t\t\tuse.

", "smithy.api#xmlName": "count" } } @@ -10821,6 +10856,263 @@ } } }, + "com.amazonaws.ec2#CapacityBlockExtension": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The reservation ID of the Capacity Block extension.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type of the Capacity Block extension.

", + "smithy.api#xmlName": "instanceType" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of instances in the Capacity Block extension.

", + "smithy.api#xmlName": "instanceCount" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the Capacity Block extension.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The Availability Zone ID of the Capacity Block extension.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "CapacityBlockExtensionOfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionOfferingId", + "smithy.api#documentation": "

The ID of the Capacity Block extension offering.

", + "smithy.api#xmlName": "capacityBlockExtensionOfferingId" + } + }, + "CapacityBlockExtensionDurationHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionDurationHours", + "smithy.api#documentation": "

The duration of the Capacity Block extension in hours.

", + "smithy.api#xmlName": "capacityBlockExtensionDurationHours" + } + }, + "CapacityBlockExtensionStatus": { + "target": "com.amazonaws.ec2#CapacityBlockExtensionStatus", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionStatus", + "smithy.api#documentation": "

The status of the Capacity Block extension. A Capacity Block extension can have one of\n\t\t\tthe following statuses:

\n ", + "smithy.api#xmlName": "capacityBlockExtensionStatus" + } + }, + "CapacityBlockExtensionPurchaseDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionPurchaseDate", + "smithy.api#documentation": "

The date when the Capacity Block extension was purchased.

", + "smithy.api#xmlName": "capacityBlockExtensionPurchaseDate" + } + }, + "CapacityBlockExtensionStartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionStartDate", + "smithy.api#documentation": "

The start date of the Capacity Block extension.

", + "smithy.api#xmlName": "capacityBlockExtensionStartDate" + } + }, + "CapacityBlockExtensionEndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionEndDate", + "smithy.api#documentation": "

The end date of the Capacity Block extension.

", + "smithy.api#xmlName": "capacityBlockExtensionEndDate" + } + }, + "UpfrontFee": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UpfrontFee", + "smithy.api#documentation": "

The total price to be paid up front.

", + "smithy.api#xmlName": "upfrontFee" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency of the payment for the Capacity Block extension.

", + "smithy.api#xmlName": "currencyCode" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Capacity Block extension. With an extension, you can\n\t\t\textend the duration of time for an existing Capacity Block.

" + } + }, + "com.amazonaws.ec2#CapacityBlockExtensionOffering": { + "type": "structure", + "members": { + "CapacityBlockExtensionOfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionOfferingId", + "smithy.api#documentation": "

The ID of the Capacity Block extension offering.

", + "smithy.api#xmlName": "capacityBlockExtensionOfferingId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type of the Capacity Block that will be extended.

", + "smithy.api#xmlName": "instanceType" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of instances in the Capacity Block extension offering.

", + "smithy.api#xmlName": "instanceCount" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the Capacity Block that will be extended.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The Availability Zone ID of the Capacity Block that will be\n\t\t\textended.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartDate", + "smithy.api#documentation": "

The start date of the Capacity Block that will be extended.

", + "smithy.api#xmlName": "startDate" + } + }, + "CapacityBlockExtensionStartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionStartDate", + "smithy.api#documentation": "

The date and time at which the Capacity Block extension will start. This date is\n\t\t\talso the same as the end date of the Capacity Block that will be\n\t\t\textended.

", + "smithy.api#xmlName": "capacityBlockExtensionStartDate" + } + }, + "CapacityBlockExtensionEndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionEndDate", + "smithy.api#documentation": "

The date and time at which the Capacity Block extension expires. When a Capacity\n\t\t\tBlock expires, the reserved capacity is released and you can no longer launch\n\t\t\tinstances into it. The Capacity Block's state changes to expired when\n\t\t\tit reaches its end date

", + "smithy.api#xmlName": "capacityBlockExtensionEndDate" + } + }, + "CapacityBlockExtensionDurationHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionDurationHours", + "smithy.api#documentation": "

The amount of time of the Capacity Block extension offering in hours.

", + "smithy.api#xmlName": "capacityBlockExtensionDurationHours" + } + }, + "UpfrontFee": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UpfrontFee", + "smithy.api#documentation": "

The total price of the Capacity Block extension offering, to be paid up front.

", + "smithy.api#xmlName": "upfrontFee" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency of the payment for the Capacity Block extension offering.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#CapacityReservationTenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

Indicates the tenancy of the Capacity Block extension offering. A Capacity Block\n\t\t\tcan have one of the following tenancy settings:

\n ", + "smithy.api#xmlName": "tenancy" + } + } + }, + "traits": { + "smithy.api#documentation": "

The recommended Capacity Block extension that fits your search requirements.

" + } + }, + "com.amazonaws.ec2#CapacityBlockExtensionOfferingSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityBlockExtensionOffering", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityBlockExtensionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityBlockExtension", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityBlockExtensionStatus": { + "type": "enum", + "members": { + "PAYMENT_PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-pending" + } + }, + "PAYMENT_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-failed" + } + }, + "PAYMENT_SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-succeeded" + } + } + } + }, "com.amazonaws.ec2#CapacityBlockOffering": { "type": "structure", "members": { @@ -10876,7 +11168,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "CapacityBlockDurationHours", - "smithy.api#documentation": "

The amount of time of the Capacity Block reservation in hours.

", + "smithy.api#documentation": "

The number of hours (in addition to capacityBlockDurationMinutes) for the \n\t\t\tduration of the Capacity Block reservation. For example, if a Capacity Block starts at \n\t\t\t04:55 and ends at 11:30, \n\t\t\tthe hours field would be 6.

", "smithy.api#xmlName": "capacityBlockDurationHours" } }, @@ -10903,6 +11195,14 @@ "smithy.api#documentation": "

The tenancy of the Capacity Block.

", "smithy.api#xmlName": "tenancy" } + }, + "CapacityBlockDurationMinutes": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockDurationMinutes", + "smithy.api#documentation": "

The number of minutes (in addition to capacityBlockDurationHours) for the \n\t\t\tduration of the Capacity Block reservation. For example, if a Capacity Block starts at \n\t\t\t08:55 and ends at 11:30, \n\t\t\tthe minutes field would be 35.

", + "smithy.api#xmlName": "capacityBlockDurationMinutes" + } } }, "traits": { @@ -10965,7 +11265,7 @@ "target": "com.amazonaws.ec2#CapacityReservationInstancePlatform", "traits": { "aws.protocols#ec2QueryName": "InstancePlatform", - "smithy.api#documentation": "

The type of operating system for which the Capacity Reservation reserves capacity.

", + "smithy.api#documentation": "

The type of operating system for which the Capacity Reservation reserves\n\t\t\tcapacity.

", "smithy.api#xmlName": "instancePlatform" } }, @@ -10981,7 +11281,7 @@ "target": "com.amazonaws.ec2#CapacityReservationTenancy", "traits": { "aws.protocols#ec2QueryName": "Tenancy", - "smithy.api#documentation": "

Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one of the following tenancy settings:

\n ", + "smithy.api#documentation": "

Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one\n\t\t\tof the following tenancy settings:

\n ", "smithy.api#xmlName": "tenancy" } }, @@ -10989,7 +11289,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "TotalInstanceCount", - "smithy.api#documentation": "

The total number of instances for which the Capacity Reservation reserves capacity.

", + "smithy.api#documentation": "

The total number of instances for which the Capacity Reservation reserves\n\t\t\tcapacity.

", "smithy.api#xmlName": "totalInstanceCount" } }, @@ -10997,7 +11297,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "AvailableInstanceCount", - "smithy.api#documentation": "

The remaining capacity. Indicates the number of instances that can be launched in the Capacity Reservation.

", + "smithy.api#documentation": "

The remaining capacity. Indicates the number of instances that can be launched in the\n\t\t\tCapacity Reservation.

", "smithy.api#xmlName": "availableInstanceCount" } }, @@ -11005,7 +11305,7 @@ "target": "com.amazonaws.ec2#Boolean", "traits": { "aws.protocols#ec2QueryName": "EbsOptimized", - "smithy.api#documentation": "

Indicates whether the Capacity Reservation supports EBS-optimized instances. This optimization provides\n\t\t\tdedicated throughput to Amazon EBS and an optimized configuration stack to provide\n\t\t\toptimal I/O performance. This optimization isn't available with all instance types.\n\t\t\tAdditional usage charges apply when using an EBS- optimized instance.

", + "smithy.api#documentation": "

Indicates whether the Capacity Reservation supports EBS-optimized instances. This\n\t\t\toptimization provides dedicated throughput to Amazon EBS and an optimized configuration\n\t\t\tstack to provide optimal I/O performance. This optimization isn't available with all\n\t\t\tinstance types. Additional usage charges apply when using an EBS- optimized\n\t\t\tinstance.

", "smithy.api#xmlName": "ebsOptimized" } }, @@ -11021,7 +11321,7 @@ "target": "com.amazonaws.ec2#CapacityReservationState", "traits": { "aws.protocols#ec2QueryName": "State", - "smithy.api#documentation": "

The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states:

\n ", + "smithy.api#documentation": "

The current state of the Capacity Reservation. A Capacity Reservation can be in one of\n\t\t\tthe following states:

\n ", "smithy.api#xmlName": "state" } }, @@ -11037,7 +11337,7 @@ "target": "com.amazonaws.ec2#DateTime", "traits": { "aws.protocols#ec2QueryName": "EndDate", - "smithy.api#documentation": "

The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity\n\t\t\tis released and you can no longer launch instances into it. The Capacity Reservation's state changes to\n\t\t\t\texpired when it reaches its end date and time.

", + "smithy.api#documentation": "

The date and time at which the Capacity Reservation expires. When a Capacity\n\t\t\tReservation expires, the reserved capacity is released and you can no longer launch\n\t\t\tinstances into it. The Capacity Reservation's state changes to expired when\n\t\t\tit reaches its end date and time.

", "smithy.api#xmlName": "endDate" } }, @@ -11045,7 +11345,7 @@ "target": "com.amazonaws.ec2#EndDateType", "traits": { "aws.protocols#ec2QueryName": "EndDateType", - "smithy.api#documentation": "

Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can have one of the following end\n\t\t\ttypes:

\n ", + "smithy.api#documentation": "

Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can\n\t\t\thave one of the following end types:

\n ", "smithy.api#xmlName": "endDateType" } }, @@ -11053,7 +11353,7 @@ "target": "com.amazonaws.ec2#InstanceMatchCriteria", "traits": { "aws.protocols#ec2QueryName": "InstanceMatchCriteria", - "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation accepts. The options\n\t\t\tinclude:

\n ", + "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation accepts. The\n\t\t\toptions include:

\n ", "smithy.api#xmlName": "instanceMatchCriteria" } }, @@ -11077,7 +11377,7 @@ "target": "com.amazonaws.ec2#OutpostArn", "traits": { "aws.protocols#ec2QueryName": "OutpostArn", - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost on which the Capacity \n\t \t\tReservation was created.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost on which the Capacity Reservation was\n\t\t\tcreated.

", "smithy.api#xmlName": "outpostArn" } }, @@ -11085,7 +11385,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "CapacityReservationFleetId", - "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet to which the Capacity Reservation belongs. \n\t\t\tOnly valid for Capacity Reservations that were created by a Capacity Reservation Fleet.

", + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet to which the Capacity Reservation belongs.\n\t\t\tOnly valid for Capacity Reservations that were created by a Capacity Reservation\n\t\t\tFleet.

", "smithy.api#xmlName": "capacityReservationFleetId" } }, @@ -11093,7 +11393,7 @@ "target": "com.amazonaws.ec2#PlacementGroupArn", "traits": { "aws.protocols#ec2QueryName": "PlacementGroupArn", - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster placement group in which \n\t\t\tthe Capacity Reservation was created. For more information, see \n\t\t\t\n\t\t\t\tCapacity Reservations for cluster placement groups in the \n\t\t\tAmazon EC2 User Guide.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster placement group in which the Capacity\n\t\t\tReservation was created. For more information, see Capacity Reservations for cluster\n\t\t\t\tplacement groups in the Amazon EC2 User Guide.

", "smithy.api#xmlName": "placementGroupArn" } }, @@ -11117,9 +11417,25 @@ "target": "com.amazonaws.ec2#AccountID", "traits": { "aws.protocols#ec2QueryName": "UnusedReservationBillingOwnerId", - "smithy.api#documentation": "

The ID of the Amazon Web Services account to which billing of the unused capacity \n\t\t\tof the Capacity Reservation is assigned.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account to which billing of the unused capacity of\n\t\t\tthe Capacity Reservation is assigned.

", "smithy.api#xmlName": "unusedReservationBillingOwnerId" } + }, + "CommitmentInfo": { + "target": "com.amazonaws.ec2#CapacityReservationCommitmentInfo", + "traits": { + "aws.protocols#ec2QueryName": "CommitmentInfo", + "smithy.api#documentation": "

Information about your commitment for a future-dated Capacity Reservation.

", + "smithy.api#xmlName": "commitmentInfo" + } + }, + "DeliveryPreference": { + "target": "com.amazonaws.ec2#CapacityReservationDeliveryPreference", + "traits": { + "aws.protocols#ec2QueryName": "DeliveryPreference", + "smithy.api#documentation": "

The delivery method for a future-dated Capacity Reservation. incremental \n\t\t\tindicates that the requested capacity is delivered in addition to any running instances \n\t\t\tand reserved capacity that you have in your account at the requested date and time.

", + "smithy.api#xmlName": "deliveryPreference" + } } }, "traits": { @@ -11165,7 +11481,7 @@ "target": "com.amazonaws.ec2#CapacityReservationBillingRequestStatus", "traits": { "aws.protocols#ec2QueryName": "Status", - "smithy.api#documentation": "

The status of the request. For more information, see \n\t\t\tView billing assignment requests for a shared Amazon EC2 Capacity Reservation.

", + "smithy.api#documentation": "

The status of the request. For more information, see View billing assignment\n\t\t\t\trequests for a shared Amazon EC2 Capacity Reservation.

", "smithy.api#xmlName": "status" } }, @@ -11187,7 +11503,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information about a request to assign billing of the unused capacity of a Capacity Reservation.

" + "smithy.api#documentation": "

Information about a request to assign billing of the unused capacity of a Capacity\n\t\t\tReservation.

" } }, "com.amazonaws.ec2#CapacityReservationBillingRequestSet": { @@ -11240,6 +11556,56 @@ } } }, + "com.amazonaws.ec2#CapacityReservationCommitmentDuration": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 200000000 + } + } + }, + "com.amazonaws.ec2#CapacityReservationCommitmentInfo": { + "type": "structure", + "members": { + "CommittedInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CommittedInstanceCount", + "smithy.api#documentation": "

The instance capacity that you committed to when you requested the future-dated \n\t\t\tCapacity Reservation.

", + "smithy.api#xmlName": "committedInstanceCount" + } + }, + "CommitmentEndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CommitmentEndDate", + "smithy.api#documentation": "

The date and time at which the commitment duration expires, in the ISO8601 format \n\t\t\tin the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ). You can't decrease the \n\t\t\tinstance count or cancel the Capacity Reservation before this date and time.

", + "smithy.api#xmlName": "commitmentEndDate" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about your commitment for a future-dated Capacity Reservation.

" + } + }, + "com.amazonaws.ec2#CapacityReservationDeliveryPreference": { + "type": "enum", + "members": { + "FIXED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fixed" + } + }, + "INCREMENTAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "incremental" + } + } + } + }, "com.amazonaws.ec2#CapacityReservationFleet": { "type": "structure", "members": { @@ -11263,7 +11629,7 @@ "target": "com.amazonaws.ec2#CapacityReservationFleetState", "traits": { "aws.protocols#ec2QueryName": "State", - "smithy.api#documentation": "

The state of the Capacity Reservation Fleet. Possible states include:

\n ", + "smithy.api#documentation": "

The state of the Capacity Reservation Fleet. Possible states include:

\n ", "smithy.api#xmlName": "state" } }, @@ -11287,7 +11653,7 @@ "target": "com.amazonaws.ec2#FleetCapacityReservationTenancy", "traits": { "aws.protocols#ec2QueryName": "Tenancy", - "smithy.api#documentation": "

The tenancy of the Capacity Reservation Fleet. Tenancies include:

\n ", + "smithy.api#documentation": "

The tenancy of the Capacity Reservation Fleet. Tenancies include:

\n ", "smithy.api#xmlName": "tenancy" } }, @@ -11311,7 +11677,7 @@ "target": "com.amazonaws.ec2#FleetInstanceMatchCriteria", "traits": { "aws.protocols#ec2QueryName": "InstanceMatchCriteria", - "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation Fleet accepts. All \n\t\t\tCapacity Reservations in the Fleet inherit this instance matching criteria.

\n

Currently, Capacity Reservation Fleets support open instance matching criteria \n\t\t\tonly. This means that instances that have matching attributes (instance type, platform, and \n\t\t\tAvailability Zone) run in the Capacity Reservations automatically. Instances do not need to \n\t\t\texplicitly target a Capacity Reservation Fleet to use its reserved capacity.

", + "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation Fleet accepts.\n\t\t\tAll Capacity Reservations in the Fleet inherit this instance matching criteria.

\n

Currently, Capacity Reservation Fleets support open instance matching\n\t\t\tcriteria only. This means that instances that have matching attributes (instance type,\n\t\t\tplatform, and Availability Zone) run in the Capacity Reservations automatically.\n\t\t\tInstances do not need to explicitly target a Capacity Reservation Fleet to use its\n\t\t\treserved capacity.

", "smithy.api#xmlName": "instanceMatchCriteria" } }, @@ -11319,7 +11685,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "AllocationStrategy", - "smithy.api#documentation": "

The strategy used by the Capacity Reservation Fleet to determine which of the specified\n\t\t\tinstance types to use. For more information, see For more information, see Allocation\n\t\t\t\tstrategy in the Amazon EC2 User Guide.

", + "smithy.api#documentation": "

The strategy used by the Capacity Reservation Fleet to determine which of the\n\t\t\tspecified instance types to use. For more information, see For more information, see\n\t\t\t\tAllocation\n\t\t\t\tstrategy in the Amazon EC2 User Guide.

", "smithy.api#xmlName": "allocationStrategy" } }, @@ -11723,7 +12089,7 @@ "CapacityReservationPreference": { "target": "com.amazonaws.ec2#CapacityReservationPreference", "traits": { - "smithy.api#documentation": "

Indicates the instance's Capacity Reservation preferences. Possible preferences include:

\n " + "smithy.api#documentation": "

Indicates the instance's Capacity Reservation preferences. Possible preferences \n\t\t\tinclude:

\n " } }, "CapacityReservationTarget": { @@ -11811,6 +12177,24 @@ "traits": { "smithy.api#enumValue": "payment-failed" } + }, + "assessing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "assessing" + } + }, + "delayed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delayed" + } + }, + "unsupported": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } } } }, @@ -11826,7 +12210,7 @@ "CapacityReservationResourceGroupArn": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The ARN of the Capacity Reservation resource group in which to run the instance.

" + "smithy.api#documentation": "

The ARN of the Capacity Reservation resource group in which to run the\n\t\t\tinstance.

" } } }, @@ -14424,7 +14808,7 @@ "target": "com.amazonaws.ec2#CreateCapacityReservationResult" }, "traits": { - "smithy.api#documentation": "

Creates a new Capacity Reservation with the specified attributes.

\n

Capacity Reservations enable you to reserve capacity for your Amazon EC2 instances in a specific Availability Zone for any duration. This \n\t\t\tgives you the flexibility to selectively add capacity reservations and still get the Regional RI discounts for that usage. \n\t\t\tBy creating Capacity Reservations, you ensure that you always have access to Amazon EC2 capacity when you need it, for as long as you need it. \n\t\t\tFor more information, see Capacity Reservations in the Amazon EC2 User Guide.

\n

Your request to create a Capacity Reservation could fail if Amazon EC2 does not have sufficient capacity to\n\t\t\tfulfill the request. If your request fails due to Amazon EC2 capacity constraints, either try\n\t\t\tagain at a later time, try in a different Availability Zone, or request a smaller\n\t\t\tcapacity reservation. If your application is flexible across instance types and sizes,\n\t\t\ttry to create a Capacity Reservation with different instance attributes.

\n

Your request could also fail if the requested quantity exceeds your On-Demand Instance\n\t\t\tlimit for the selected instance type. If your request fails due to limit constraints,\n\t\t\tincrease your On-Demand Instance limit for the required instance type and try again. For\n\t\t\tmore information about increasing your instance limits, see Amazon EC2 Service\n\t\t\t\tQuotas in the Amazon EC2 User Guide.

" + "smithy.api#documentation": "

Creates a new Capacity Reservation with the specified attributes. Capacity Reservations enable \n\t\t\tyou to reserve capacity for your Amazon EC2 instances in a specific Availability Zone for any \n\t\t\tduration.

\n

You can create a Capacity Reservation at any time, and you can choose when it starts. You can create a \n\t\t\tCapacity Reservation for immediate use or you can request a Capacity Reservation for a future date.

\n

For more information, see \n\t\t\tReserve compute capacity with On-Demand Capacity Reservations in the Amazon EC2 User Guide.

\n

Your request to create a Capacity Reservation could fail if:

\n " } }, "com.amazonaws.ec2#CreateCapacityReservationBySplitting": { @@ -14436,7 +14820,7 @@ "target": "com.amazonaws.ec2#CreateCapacityReservationBySplittingResult" }, "traits": { - "smithy.api#documentation": "

\n\t\t\tCreate a new Capacity Reservation by splitting the capacity of the source Capacity Reservation. The new Capacity Reservation will have the same attributes as the source Capacity Reservation except for tags. The source Capacity Reservation must be active and owned by your Amazon Web Services account.\n\t\t

" + "smithy.api#documentation": "

Create a new Capacity Reservation by splitting the capacity of the source Capacity\n\t\t\tReservation. The new Capacity Reservation will have the same attributes as the source\n\t\t\tCapacity Reservation except for tags. The source Capacity Reservation must be\n\t\t\t\tactive and owned by your Amazon Web Services account.

" } }, "com.amazonaws.ec2#CreateCapacityReservationBySplittingRequest": { @@ -14459,7 +14843,7 @@ "target": "com.amazonaws.ec2#CapacityReservationId", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

\n\t\t\tThe ID of the Capacity Reservation from which you want to split the capacity. \n\t\t

", + "smithy.api#documentation": "

The ID of the Capacity Reservation from which you want to split the capacity.

", "smithy.api#required": {} } }, @@ -14467,14 +14851,14 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

\n\t\t\tThe number of instances to split from the source Capacity Reservation.\n\t\t

", + "smithy.api#documentation": "

The number of instances to split from the source Capacity Reservation.

", "smithy.api#required": {} } }, "TagSpecifications": { "target": "com.amazonaws.ec2#TagSpecificationList", "traits": { - "smithy.api#documentation": "

\n\t\t\tThe tags to apply to the new Capacity Reservation.\n\t\t

", + "smithy.api#documentation": "

The tags to apply to the new Capacity Reservation.

", "smithy.api#xmlName": "TagSpecification" } } @@ -14490,7 +14874,7 @@ "target": "com.amazonaws.ec2#CapacityReservation", "traits": { "aws.protocols#ec2QueryName": "SourceCapacityReservation", - "smithy.api#documentation": "

\n\t\t\tInformation about the source Capacity Reservation.\n\t\t

", + "smithy.api#documentation": "

Information about the source Capacity Reservation.

", "smithy.api#xmlName": "sourceCapacityReservation" } }, @@ -14498,7 +14882,7 @@ "target": "com.amazonaws.ec2#CapacityReservation", "traits": { "aws.protocols#ec2QueryName": "DestinationCapacityReservation", - "smithy.api#documentation": "

\n\t\t\tInformation about the destination Capacity Reservation.\n\t\t

", + "smithy.api#documentation": "

Information about the destination Capacity Reservation.

", "smithy.api#xmlName": "destinationCapacityReservation" } }, @@ -14506,7 +14890,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "InstanceCount", - "smithy.api#documentation": "

\n\t\t\tThe number of instances in the new Capacity Reservation. The number of instances in the source Capacity Reservation was reduced by this amount.\n\t\t

", + "smithy.api#documentation": "

The number of instances in the new Capacity Reservation. The number of instances in\n\t\t\tthe source Capacity Reservation was reduced by this amount.

", "smithy.api#xmlName": "instanceCount" } } @@ -14533,7 +14917,7 @@ "AllocationStrategy": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The strategy used by the Capacity Reservation Fleet to determine which of the specified\n\t\t\tinstance types to use. Currently, only the prioritized allocation strategy\n\t\t\tis supported. For more information, see Allocation\n\t\t\t\tstrategy in the Amazon EC2 User Guide.

\n

Valid values: prioritized\n

" + "smithy.api#documentation": "

The strategy used by the Capacity Reservation Fleet to determine which of the\n\t\t\tspecified instance types to use. Currently, only the prioritized allocation\n\t\t\tstrategy is supported. For more information, see Allocation\n\t\t\t\tstrategy in the Amazon EC2 User Guide.

\n

Valid values: prioritized\n

" } }, "ClientToken": { @@ -14555,33 +14939,33 @@ "Tenancy": { "target": "com.amazonaws.ec2#FleetCapacityReservationTenancy", "traits": { - "smithy.api#documentation": "

Indicates the tenancy of the Capacity Reservation Fleet. All Capacity Reservations \n\t\t\tin the Fleet inherit this tenancy. The Capacity Reservation Fleet can have one of \n\t\t\tthe following tenancy settings:

\n " + "smithy.api#documentation": "

Indicates the tenancy of the Capacity Reservation Fleet. All Capacity Reservations in\n\t\t\tthe Fleet inherit this tenancy. The Capacity Reservation Fleet can have one of the\n\t\t\tfollowing tenancy settings:

\n " } }, "TotalTargetCapacity": { "target": "com.amazonaws.ec2#Integer", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The total number of capacity units to be reserved by the Capacity Reservation Fleet. This\n\t\t\tvalue, together with the instance type weights that you assign to each instance type\n\t\t\tused by the Fleet determine the number of instances for which the Fleet reserves\n\t\t\tcapacity. Both values are based on units that make sense for your workload. For more\n\t\t\tinformation, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

", + "smithy.api#documentation": "

The total number of capacity units to be reserved by the Capacity Reservation Fleet.\n\t\t\tThis value, together with the instance type weights that you assign to each instance\n\t\t\ttype used by the Fleet determine the number of instances for which the Fleet reserves\n\t\t\tcapacity. Both values are based on units that make sense for your workload. For more\n\t\t\tinformation, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

", "smithy.api#required": {} } }, "EndDate": { "target": "com.amazonaws.ec2#MillisecondDateTime", "traits": { - "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires. When the Capacity \n\t\t\tReservation Fleet expires, its state changes to expired and all of the Capacity \n\t\t\tReservations in the Fleet expire.

\n

The Capacity Reservation Fleet expires within an hour after the specified time. For example, \n\t\t\tif you specify 5/31/2019, 13:30:55, the Capacity Reservation Fleet \n\t\t\tis guaranteed to expire between 13:30:55 and 14:30:55 on \n\t\t\t5/31/2019.\n\t\t

" + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires. When the Capacity\n\t\t\tReservation Fleet expires, its state changes to expired and all of the\n\t\t\tCapacity Reservations in the Fleet expire.

\n

The Capacity Reservation Fleet expires within an hour after the specified time. For\n\t\t\texample, if you specify 5/31/2019, 13:30:55, the Capacity\n\t\t\tReservation Fleet is guaranteed to expire between 13:30:55 and\n\t\t\t\t14:30:55 on 5/31/2019.

" } }, "InstanceMatchCriteria": { "target": "com.amazonaws.ec2#FleetInstanceMatchCriteria", "traits": { - "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation Fleet accepts. All \n\t\t\tCapacity Reservations in the Fleet inherit this instance matching criteria.

\n

Currently, Capacity Reservation Fleets support open instance matching criteria \n\t\t\tonly. This means that instances that have matching attributes (instance type, platform, and \n\t\t\tAvailability Zone) run in the Capacity Reservations automatically. Instances do not need to \n\t\t\texplicitly target a Capacity Reservation Fleet to use its reserved capacity.

" + "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation Fleet accepts.\n\t\t\tAll Capacity Reservations in the Fleet inherit this instance matching criteria.

\n

Currently, Capacity Reservation Fleets support open instance matching\n\t\t\tcriteria only. This means that instances that have matching attributes (instance type,\n\t\t\tplatform, and Availability Zone) run in the Capacity Reservations automatically.\n\t\t\tInstances do not need to explicitly target a Capacity Reservation Fleet to use its\n\t\t\treserved capacity.

" } }, "TagSpecifications": { "target": "com.amazonaws.ec2#TagSpecificationList", "traits": { - "smithy.api#documentation": "

The tags to assign to the Capacity Reservation Fleet. The tags are automatically assigned \n\t\t\tto the Capacity Reservations in the Fleet.

", + "smithy.api#documentation": "

The tags to assign to the Capacity Reservation Fleet. The tags are automatically\n\t\t\tassigned to the Capacity Reservations in the Fleet.

", "smithy.api#xmlName": "TagSpecification" } }, @@ -14619,7 +15003,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "TotalTargetCapacity", - "smithy.api#documentation": "

The total number of capacity units for which the Capacity Reservation Fleet reserves capacity.

", + "smithy.api#documentation": "

The total number of capacity units for which the Capacity Reservation Fleet reserves\n\t\t\tcapacity.

", "smithy.api#xmlName": "totalTargetCapacity" } }, @@ -14675,7 +15059,7 @@ "target": "com.amazonaws.ec2#FleetCapacityReservationSet", "traits": { "aws.protocols#ec2QueryName": "FleetCapacityReservationSet", - "smithy.api#documentation": "

Information about the individual Capacity Reservations in the Capacity Reservation Fleet.

", + "smithy.api#documentation": "

Information about the individual Capacity Reservations in the Capacity Reservation\n\t\t\tFleet.

", "smithy.api#xmlName": "fleetCapacityReservationSet" } }, @@ -14705,7 +15089,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The instance type for which to reserve capacity. For more information, see Instance types in the Amazon EC2 User Guide.

", + "smithy.api#documentation": "

The instance type for which to reserve capacity.

\n \n

You can request future-dated Capacity Reservations for instance types in the C, M, R, I, \n\t\t\t\tand T instance families only.

\n
\n

For more information, see Instance types in the Amazon EC2 User Guide.

", "smithy.api#required": {} } }, @@ -14732,21 +15116,21 @@ "Tenancy": { "target": "com.amazonaws.ec2#CapacityReservationTenancy", "traits": { - "smithy.api#documentation": "

Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one of the following tenancy settings:

\n " + "smithy.api#documentation": "

Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one\n\t\t\tof the following tenancy settings:

\n " } }, "InstanceCount": { "target": "com.amazonaws.ec2#Integer", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The number of instances for which to reserve capacity.

\n

Valid range: 1 - 1000

", + "smithy.api#documentation": "

The number of instances for which to reserve capacity.

\n \n

You can request future-dated Capacity Reservations for an instance count \n\t\t\t\twith a minimum of 100 VPUs. For example, if you request a future-dated Capacity \n\t\t\t\tReservation for m5.xlarge instances, you must request at least \n\t\t\t\t25 instances (25 * m5.xlarge = 100 vCPUs).

\n
\n

Valid range: 1 - 1000

", "smithy.api#required": {} } }, "EbsOptimized": { "target": "com.amazonaws.ec2#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether the Capacity Reservation supports EBS-optimized instances. This optimization provides\n\t\t\tdedicated throughput to Amazon EBS and an optimized configuration stack to provide\n\t\t\toptimal I/O performance. This optimization isn't available with all instance types.\n\t\t\tAdditional usage charges apply when using an EBS- optimized instance.

" + "smithy.api#documentation": "

Indicates whether the Capacity Reservation supports EBS-optimized instances. This\n\t\t\toptimization provides dedicated throughput to Amazon EBS and an optimized configuration\n\t\t\tstack to provide optimal I/O performance. This optimization isn't available with all\n\t\t\tinstance types. Additional usage charges apply when using an EBS- optimized\n\t\t\tinstance.

" } }, "EphemeralStorage": { @@ -14758,19 +15142,19 @@ "EndDate": { "target": "com.amazonaws.ec2#DateTime", "traits": { - "smithy.api#documentation": "

The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity\n\t\t\tis released and you can no longer launch instances into it. The Capacity Reservation's state changes to\n\t\t\t\texpired when it reaches its end date and time.

\n

You must provide an EndDate value if EndDateType is\n\t\t\t\tlimited. Omit EndDate if EndDateType is\n\t\t\t\tunlimited.

\n

If the EndDateType is limited, the Capacity Reservation is cancelled within an hour from the specified time. For example, if you specify \n\t\t\t5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019.

" + "smithy.api#documentation": "

The date and time at which the Capacity Reservation expires. When a Capacity \n\t\t\tReservation expires, the reserved capacity is released and you can no longer launch \n\t\t\tinstances into it. The Capacity Reservation's state changes to expired \n\t\t\twhen it reaches its end date and time.

\n

You must provide an EndDate value if EndDateType is\n\t\t\tlimited. Omit EndDate if EndDateType is\n\t\t\tunlimited.

\n

If the EndDateType is limited, the Capacity Reservation \n\t\t\tis cancelled within an hour from the specified time. For example, if you specify \n\t\t\t5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 \n\t\t\tand 14:30:55 on 5/31/2019.

\n

If you are requesting a future-dated Capacity Reservation, you can't specify an end \n\t\t\tdate and time that is within the commitment duration.

" } }, "EndDateType": { "target": "com.amazonaws.ec2#EndDateType", "traits": { - "smithy.api#documentation": "

Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can have one of the following end\n\t\t\ttypes:

\n " + "smithy.api#documentation": "

Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can\n\t\t\thave one of the following end types:

\n " } }, "InstanceMatchCriteria": { "target": "com.amazonaws.ec2#InstanceMatchCriteria", "traits": { - "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation accepts. The options\n\t\t\tinclude:

\n \n

Default: open\n

" + "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation accepts. The\n\t\t\toptions include:

\n \n \n

If you are requesting a future-dated Capacity Reservation, you must specify targeted.

\n
\n

Default: open\n

" } }, "TagSpecifications": { @@ -14788,13 +15172,31 @@ "OutpostArn": { "target": "com.amazonaws.ec2#OutpostArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost on which to create the Capacity Reservation.

" + "smithy.api#documentation": "\n

Not supported for future-dated Capacity Reservations.

\n
\n

The Amazon Resource Name (ARN) of the Outpost on which to create the Capacity \n\t\t\tReservation.

" } }, "PlacementGroupArn": { "target": "com.amazonaws.ec2#PlacementGroupArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster placement group in which \n\t\t\tto create the Capacity Reservation. For more information, see \n\t\t\t\n\t\t\t\tCapacity Reservations for cluster placement groups in the \n\t\t\tAmazon EC2 User Guide.

" + "smithy.api#documentation": "\n

Not supported for future-dated Capacity Reservations.

\n
\n

The Amazon Resource Name (ARN) of the cluster placement group in which \n\t\t\tto create the Capacity Reservation. For more information, see \n\t\t\t\n\t\t\t\tCapacity Reservations for cluster placement groups in the \n\t\t\tAmazon EC2 User Guide.

" + } + }, + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "\n

Required for future-dated Capacity Reservations only. To create a Capacity \n\t\t\tReservation for immediate use, omit this parameter.

\n
\n

The date and time at which the future-dated Capacity Reservation should become \n\t\t\tavailable for use, in the ISO8601 format in the UTC time zone \n\t\t\t(YYYY-MM-DDThh:mm:ss.sssZ).

\n

You can request a future-dated Capacity Reservation between 5 and 120 days in \n\t\t\tadvance.

" + } + }, + "CommitmentDuration": { + "target": "com.amazonaws.ec2#CapacityReservationCommitmentDuration", + "traits": { + "smithy.api#documentation": "\n

Required for future-dated Capacity Reservations only. To create a Capacity \n\t\t\tReservation for immediate use, omit this parameter.

\n
\n

Specify a commitment duration, in seconds, for the future-dated Capacity Reservation.

\n

The commitment duration is a minimum duration for which you commit to having the \n\t\t\tfuture-dated Capacity Reservation in the active state in your account \n\t\t\tafter it has been delivered.

\n

For more information, see \n\t\t\tCommitment duration.

" + } + }, + "DeliveryPreference": { + "target": "com.amazonaws.ec2#CapacityReservationDeliveryPreference", + "traits": { + "smithy.api#documentation": "\n

Required for future-dated Capacity Reservations only. To create a Capacity \n\t\t\tReservation for immediate use, omit this parameter.

\n
\n

Indicates that the requested capacity will be delivered in addition to any \n\t\t\trunning instances or reserved capacity that you have in your account at the \n\t\t\trequested date and time.

\n

The only supported value is incremental.

" } } }, @@ -21820,7 +22222,7 @@ "target": "com.amazonaws.ec2#InternetGatewayExclusionMode", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The exclusion mode for internet gateway traffic.

\n ", + "smithy.api#documentation": "

The exclusion mode for internet gateway traffic.

\n ", "smithy.api#required": {} } }, @@ -28523,6 +28925,181 @@ "smithy.api#output": {} } }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistory": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistoryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistoryResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the events for the specified Capacity Block extension during the specified\n\t\t\ttime.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityBlockExtensions", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistoryRequest": { + "type": "structure", + "members": { + "CapacityReservationIds": { + "target": "com.amazonaws.ec2#CapacityReservationIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of Capacity Block reservations that you want to display the history\n\t\t\tfor.

", + "smithy.api#xmlName": "CapacityReservationId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeFutureCapacityMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters

\n ", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistoryResult": { + "type": "structure", + "members": { + "CapacityBlockExtensions": { + "target": "com.amazonaws.ec2#CapacityBlockExtensionSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionSet", + "smithy.api#documentation": "

Describes one or more of your Capacity Block extensions. The results describe only the\n\t\t\tCapacity Block extensions in the Amazon Web Services Region that you're currently using.

", + "smithy.api#xmlName": "capacityBlockExtensionSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes Capacity Block extension offerings available for purchase in the Amazon Web Services Region\n\t\t\tthat you're currently using.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityBlockExtensionOfferings", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "CapacityBlockExtensionDurationHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The duration of the Capacity Block extension offering in hours.

", + "smithy.api#required": {} + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity reservation to be extended.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsResult": { + "type": "structure", + "members": { + "CapacityBlockExtensionOfferings": { + "target": "com.amazonaws.ec2#CapacityBlockExtensionOfferingSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionOfferingSet", + "smithy.api#documentation": "

The recommended Capacity Block extension offerings for the dates specified.

", + "smithy.api#xmlName": "capacityBlockExtensionOfferingSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ec2#DescribeCapacityBlockOfferings": { "type": "operation", "input": { @@ -28532,7 +29109,7 @@ "target": "com.amazonaws.ec2#DescribeCapacityBlockOfferingsResult" }, "traits": { - "smithy.api#documentation": "

Describes Capacity Block offerings available for purchase in the Amazon Web Services Region that you're currently using. With Capacity Blocks, you purchase a specific instance type for a period of time.

", + "smithy.api#documentation": "

Describes Capacity Block offerings available for purchase in the Amazon Web Services Region that you're currently using. With Capacity Blocks, you purchase a\n\t\t\tspecific instance type for a period of time.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -28641,7 +29218,7 @@ "target": "com.amazonaws.ec2#DescribeCapacityReservationBillingRequestsResult" }, "traits": { - "smithy.api#documentation": "

Describes a request to assign the billing of the unused capacity of a Capacity Reservation.\n\t\t\tFor more information, see \n\t\t\t\tBilling assignment for shared Amazon EC2 Capacity Reservations.

", + "smithy.api#documentation": "

Describes a request to assign the billing of the unused capacity of a Capacity\n\t\t\tReservation. For more information, see Billing assignment for shared\n\t\t\t\t\tAmazon EC2 Capacity Reservations.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -28664,7 +29241,7 @@ "target": "com.amazonaws.ec2#CallerRole", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Specify one of the following:

\n ", + "smithy.api#documentation": "

Specify one of the following:

\n ", "smithy.api#required": {} } }, @@ -28683,7 +29260,7 @@ "Filters": { "target": "com.amazonaws.ec2#FilterList", "traits": { - "smithy.api#documentation": "

One or more filters.

\n ", + "smithy.api#documentation": "

One or more filters.

\n ", "smithy.api#xmlName": "Filter" } }, @@ -28783,7 +29360,7 @@ "Filters": { "target": "com.amazonaws.ec2#FilterList", "traits": { - "smithy.api#documentation": "

One or more filters.

\n ", + "smithy.api#documentation": "

One or more filters.

\n ", "smithy.api#xmlName": "Filter" } }, @@ -28831,7 +29408,7 @@ "target": "com.amazonaws.ec2#DescribeCapacityReservationsResult" }, "traits": { - "smithy.api#documentation": "

Describes one or more of your Capacity Reservations. The results describe only the Capacity Reservations in the \n\t\t \tAmazon Web Services Region that you're currently using.

", + "smithy.api#documentation": "

Describes one or more of your Capacity Reservations. The results describe only the\n\t\t\tCapacity Reservations in the Amazon Web Services Region that you're currently\n\t\t\tusing.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -28874,7 +29451,7 @@ "Filters": { "target": "com.amazonaws.ec2#FilterList", "traits": { - "smithy.api#documentation": "

One or more filters.

\n ", + "smithy.api#documentation": "

One or more filters.

\n ", "smithy.api#xmlName": "Filter" } }, @@ -31355,6 +31932,15 @@ "smithy.api#output": {} } }, + "com.amazonaws.ec2#DescribeFutureCapacityMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, "com.amazonaws.ec2#DescribeHostReservationOfferings": { "type": "operation", "input": { @@ -42399,7 +42985,7 @@ "Filters": { "target": "com.amazonaws.ec2#FilterList", "traits": { - "smithy.api#documentation": "

Filters for the request:

\n ", + "smithy.api#documentation": "

Filters for the request:

\n ", "smithy.api#xmlName": "Filter" } }, @@ -42460,7 +43046,7 @@ "target": "com.amazonaws.ec2#DescribeVpcBlockPublicAccessOptionsResult" }, "traits": { - "smithy.api#documentation": "

Describe VPC Block Public Access (BPA) options. VPC Block public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" + "smithy.api#documentation": "

Describe VPC Block Public Access (BPA) options. VPC Block Public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" } }, "com.amazonaws.ec2#DescribeVpcBlockPublicAccessOptionsRequest": { @@ -45381,7 +45967,7 @@ "target": "com.amazonaws.ec2#DisassociateCapacityReservationBillingOwnerResult" }, "traits": { - "smithy.api#documentation": "

Cancels a pending request to assign billing of the unused capacity of a Capacity Reservation to a \n\t\t\t\tconsumer account, or revokes a request that has already been accepted. For more information, see \n\t\t\t\tBilling assignment for \n\t\t\t\t\tshared Amazon EC2 Capacity Reservations.

" + "smithy.api#documentation": "

Cancels a pending request to assign billing of the unused capacity of a Capacity\n\t\t\tReservation to a consumer account, or revokes a request that has already been accepted.\n\t\t\tFor more information, see Billing assignment for shared\n\t\t\t\t\tAmazon EC2 Capacity Reservations.

" } }, "com.amazonaws.ec2#DisassociateCapacityReservationBillingOwnerRequest": { @@ -51037,7 +51623,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "AvailabilityZoneId", - "smithy.api#documentation": "

The ID of the Availability Zone in which the Capacity Reservation reserves capacity.

", + "smithy.api#documentation": "

The ID of the Availability Zone in which the Capacity Reservation reserves\n\t\t\tcapacity.

", "smithy.api#xmlName": "availabilityZoneId" } }, @@ -51053,7 +51639,7 @@ "target": "com.amazonaws.ec2#CapacityReservationInstancePlatform", "traits": { "aws.protocols#ec2QueryName": "InstancePlatform", - "smithy.api#documentation": "

The type of operating system for which the Capacity Reservation reserves capacity.

", + "smithy.api#documentation": "

The type of operating system for which the Capacity Reservation reserves\n\t\t\tcapacity.

", "smithy.api#xmlName": "instancePlatform" } }, @@ -51069,7 +51655,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "TotalInstanceCount", - "smithy.api#documentation": "

The total number of instances for which the Capacity Reservation reserves capacity.

", + "smithy.api#documentation": "

The total number of instances for which the Capacity Reservation reserves\n\t\t\tcapacity.

", "smithy.api#xmlName": "totalInstanceCount" } }, @@ -51077,7 +51663,7 @@ "target": "com.amazonaws.ec2#Double", "traits": { "aws.protocols#ec2QueryName": "FulfilledCapacity", - "smithy.api#documentation": "

The number of capacity units fulfilled by the Capacity Reservation. For more information,\n\t\t\tsee Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

", + "smithy.api#documentation": "

The number of capacity units fulfilled by the Capacity Reservation. For more\n\t\t\tinformation, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

", "smithy.api#xmlName": "fulfilledCapacity" } }, @@ -51085,7 +51671,7 @@ "target": "com.amazonaws.ec2#Boolean", "traits": { "aws.protocols#ec2QueryName": "EbsOptimized", - "smithy.api#documentation": "

Indicates whether the Capacity Reservation reserves capacity for EBS-optimized instance types.

", + "smithy.api#documentation": "

Indicates whether the Capacity Reservation reserves capacity for EBS-optimized\n\t\t\tinstance types.

", "smithy.api#xmlName": "ebsOptimized" } }, @@ -51101,7 +51687,7 @@ "target": "com.amazonaws.ec2#DoubleWithConstraints", "traits": { "aws.protocols#ec2QueryName": "Weight", - "smithy.api#documentation": "

The weight of the instance type in the Capacity Reservation Fleet. For more information, see\n\t\t\t\tInstance type\n\t\t\t\tweight in the Amazon EC2 User Guide.

", + "smithy.api#documentation": "

The weight of the instance type in the Capacity Reservation Fleet. For more\n\t\t\tinformation, see Instance type\n\t\t\t\tweight in the Amazon EC2 User Guide.

", "smithy.api#xmlName": "weight" } }, @@ -51109,7 +51695,7 @@ "target": "com.amazonaws.ec2#IntegerWithConstraints", "traits": { "aws.protocols#ec2QueryName": "Priority", - "smithy.api#documentation": "

The priority of the instance type in the Capacity Reservation Fleet. For more information,\n\t\t\tsee Instance type\n\t\t\t\tpriority in the Amazon EC2 User Guide.

", + "smithy.api#documentation": "

The priority of the instance type in the Capacity Reservation Fleet. For more\n\t\t\tinformation, see Instance type\n\t\t\t\tpriority in the Amazon EC2 User Guide.

", "smithy.api#xmlName": "priority" } } @@ -52724,7 +53310,7 @@ "target": "com.amazonaws.ec2#GetCapacityReservationUsageResult" }, "traits": { - "smithy.api#documentation": "

Gets usage information about a Capacity Reservation. If the Capacity Reservation is shared, it shows usage information for the Capacity Reservation owner \n\t\t\tand each Amazon Web Services account that is currently using the shared capacity. If the Capacity Reservation is not shared, it shows only \n\t\t\tthe Capacity Reservation owner's usage.

" + "smithy.api#documentation": "

Gets usage information about a Capacity Reservation. If the Capacity Reservation is\n\t\t\tshared, it shows usage information for the Capacity Reservation owner and each Amazon Web Services account that is currently using the shared capacity. If the Capacity\n\t\t\tReservation is not shared, it shows only the Capacity Reservation owner's usage.

" } }, "com.amazonaws.ec2#GetCapacityReservationUsageRequest": { @@ -52809,7 +53395,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "AvailableInstanceCount", - "smithy.api#documentation": "

The remaining capacity. Indicates the number of instances that can be launched in the Capacity Reservation.

", + "smithy.api#documentation": "

The remaining capacity. Indicates the number of instances that can be launched in the\n\t\t\tCapacity Reservation.

", "smithy.api#xmlName": "availableInstanceCount" } }, @@ -52817,7 +53403,7 @@ "target": "com.amazonaws.ec2#CapacityReservationState", "traits": { "aws.protocols#ec2QueryName": "State", - "smithy.api#documentation": "

The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states:

\n ", + "smithy.api#documentation": "

The current state of the Capacity Reservation. A Capacity Reservation can be in one of\n\t\t\tthe following states:

\n ", "smithy.api#xmlName": "state" } }, @@ -53313,7 +53899,7 @@ "target": "com.amazonaws.ec2#CapacityReservationId", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The ID of the Capacity Reservation. If you specify a Capacity Reservation that is shared \n\t\t\twith you, the operation returns only Capacity Reservation groups that you own.

", + "smithy.api#documentation": "

The ID of the Capacity Reservation. If you specify a Capacity Reservation that is\n\t\t\tshared with you, the operation returns only Capacity Reservation groups that you\n\t\t\town.

", "smithy.api#required": {} } }, @@ -53364,7 +53950,7 @@ "target": "com.amazonaws.ec2#CapacityReservationGroupSet", "traits": { "aws.protocols#ec2QueryName": "CapacityReservationGroupSet", - "smithy.api#documentation": "

Information about the resource groups to which the Capacity Reservation has been added.

", + "smithy.api#documentation": "

Information about the resource groups to which the Capacity Reservation has been\n\t\t\tadded.

", "smithy.api#xmlName": "capacityReservationGroupSet" } } @@ -68713,7 +69299,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "AccountId", - "smithy.api#documentation": "

The ID of the Amazon Web Services account that is making use of the Capacity Reservation.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that is making use of the Capacity\n\t\t\tReservation.

", "smithy.api#xmlName": "accountId" } }, @@ -68721,7 +69307,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "UsedInstanceCount", - "smithy.api#documentation": "

The number of instances the Amazon Web Services account currently has in the Capacity Reservation.

", + "smithy.api#documentation": "

The number of instances the Amazon Web Services account currently has in the Capacity\n\t\t\tReservation.

", "smithy.api#xmlName": "usedInstanceCount" } } @@ -69532,6 +70118,14 @@ "smithy.api#documentation": "

The last successful resource discovery time.

", "smithy.api#xmlName": "lastSuccessfulDiscoveryTime" } + }, + "OrganizationalUnitId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationalUnitId", + "smithy.api#documentation": "

The ID of an Organizational Unit in Amazon Web Services Organizations.

", + "smithy.api#xmlName": "organizationalUnitId" + } } }, "traits": { @@ -70127,6 +70721,31 @@ } } }, + "com.amazonaws.ec2#IpamOrganizationalUnitExclusion": { + "type": "structure", + "members": { + "OrganizationsEntityPath": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationsEntityPath", + "smithy.api#documentation": "

An Amazon Web Services Organizations entity path. For more information on the entity path, see Understand the Amazon Web Services Organizations entity path in the Amazon Web Services Identity and Access Management User Guide.

", + "smithy.api#xmlName": "organizationsEntityPath" + } + } + }, + "traits": { + "smithy.api#documentation": "

If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion.

" + } + }, + "com.amazonaws.ec2#IpamOrganizationalUnitExclusionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamOrganizationalUnitExclusion", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, "com.amazonaws.ec2#IpamOverlapStatus": { "type": "enum", "members": { @@ -71280,6 +71899,14 @@ "smithy.api#documentation": "

A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

", "smithy.api#xmlName": "tagSet" } + }, + "OrganizationalUnitExclusions": { + "target": "com.amazonaws.ec2#IpamOrganizationalUnitExclusionSet", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationalUnitExclusionSet", + "smithy.api#documentation": "

If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion.

", + "smithy.api#xmlName": "organizationalUnitExclusionSet" + } } }, "traits": { @@ -76821,7 +77448,7 @@ "target": "com.amazonaws.ec2#ModifyCapacityReservationResult" }, "traits": { - "smithy.api#documentation": "

Modifies a Capacity Reservation's capacity, instance eligibility, and the conditions under which it is to be released. You\n\t\t can't modify a Capacity Reservation's instance type, EBS optimization, platform, instance store settings, Availability Zone, or\n\t\t tenancy. If you need to modify any of these attributes, we recommend that you cancel the Capacity Reservation, and then create a new one with\n\t\t the required attributes. For more information, see Modify an active Capacity Reservation.

" + "smithy.api#documentation": "

Modifies a Capacity Reservation's capacity, instance eligibility, and the conditions under \n\t\t\twhich it is to be released. You can't modify a Capacity Reservation's instance type, EBS \n\t\t\toptimization, platform, instance store settings, Availability Zone, or tenancy. If you need \n\t\t\tto modify any of these attributes, we recommend that you cancel the Capacity Reservation, \n\t\t\tand then create a new one with the required attributes. For more information, see \n\t\t\t\n\t\t\t\tModify an active Capacity Reservation.

\n

The allowed modifications depend on the state of the Capacity Reservation:

\n " } }, "com.amazonaws.ec2#ModifyCapacityReservationFleet": { @@ -76833,7 +77460,7 @@ "target": "com.amazonaws.ec2#ModifyCapacityReservationFleetResult" }, "traits": { - "smithy.api#documentation": "

Modifies a Capacity Reservation Fleet.

\n

When you modify the total target capacity of a Capacity Reservation Fleet, the Fleet automatically \n\t\t\tcreates new Capacity Reservations, or modifies or cancels existing Capacity Reservations in the Fleet \n\t\t\tto meet the new total target capacity. When you modify the end date for the Fleet, the end dates for \n\t\t\tall of the individual Capacity Reservations in the Fleet are updated accordingly.

" + "smithy.api#documentation": "

Modifies a Capacity Reservation Fleet.

\n

When you modify the total target capacity of a Capacity Reservation Fleet, the Fleet\n\t\t\tautomatically creates new Capacity Reservations, or modifies or cancels existing\n\t\t\tCapacity Reservations in the Fleet to meet the new total target capacity. When you\n\t\t\tmodify the end date for the Fleet, the end dates for all of the individual Capacity\n\t\t\tReservations in the Fleet are updated accordingly.

" } }, "com.amazonaws.ec2#ModifyCapacityReservationFleetRequest": { @@ -76850,13 +77477,13 @@ "TotalTargetCapacity": { "target": "com.amazonaws.ec2#Integer", "traits": { - "smithy.api#documentation": "

The total number of capacity units to be reserved by the Capacity Reservation Fleet. This\n\t\t\tvalue, together with the instance type weights that you assign to each instance type\n\t\t\tused by the Fleet determine the number of instances for which the Fleet reserves\n\t\t\tcapacity. Both values are based on units that make sense for your workload. For more\n\t\t\tinformation, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

" + "smithy.api#documentation": "

The total number of capacity units to be reserved by the Capacity Reservation Fleet.\n\t\t\tThis value, together with the instance type weights that you assign to each instance\n\t\t\ttype used by the Fleet determine the number of instances for which the Fleet reserves\n\t\t\tcapacity. Both values are based on units that make sense for your workload. For more\n\t\t\tinformation, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

" } }, "EndDate": { "target": "com.amazonaws.ec2#MillisecondDateTime", "traits": { - "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires. When the Capacity Reservation \n\t\t\tFleet expires, its state changes to expired and all of the Capacity Reservations in the \n\t\t\tFleet expire.

\n

The Capacity Reservation Fleet expires within an hour after the specified time. For example, if you \n\t\t\tspecify 5/31/2019, 13:30:55, the Capacity Reservation Fleet is guaranteed \n\t\t\tto expire between 13:30:55 and 14:30:55 on 5/31/2019.

\n

You can't specify EndDate and \n\t\t\tRemoveEndDate in the same request.

" + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires. When the Capacity\n\t\t\tReservation Fleet expires, its state changes to expired and all of the\n\t\t\tCapacity Reservations in the Fleet expire.

\n

The Capacity Reservation Fleet expires within an hour after the specified time. For\n\t\t\texample, if you specify 5/31/2019, 13:30:55, the Capacity\n\t\t\tReservation Fleet is guaranteed to expire between 13:30:55 and\n\t\t\t\t14:30:55 on 5/31/2019.

\n

You can't specify EndDate and \n\t\t\t\tRemoveEndDate in the same request.

" } }, "DryRun": { @@ -76868,7 +77495,7 @@ "RemoveEndDate": { "target": "com.amazonaws.ec2#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether to remove the end date from the Capacity Reservation Fleet. If you remove the \n\t\t\tend date, the Capacity Reservation Fleet does not expire and it remains active until you explicitly \n\t\t\tcancel it using the CancelCapacityReservationFleet action.

\n

You can't specify RemoveEndDate and \n\t\t\tEndDate in the same request.

" + "smithy.api#documentation": "

Indicates whether to remove the end date from the Capacity Reservation Fleet. If you\n\t\t\tremove the end date, the Capacity Reservation Fleet does not expire and it remains\n\t\t\tactive until you explicitly cancel it using the CancelCapacityReservationFleet action.

\n

You can't specify RemoveEndDate and EndDate in the same request.

" } } }, @@ -76906,19 +77533,19 @@ "InstanceCount": { "target": "com.amazonaws.ec2#Integer", "traits": { - "smithy.api#documentation": "

The number of instances for which to reserve capacity. The number of instances can't be increased or \n\t\t \tdecreased by more than 1000 in a single request.

" + "smithy.api#documentation": "

The number of instances for which to reserve capacity. The number of instances can't\n\t\t\tbe increased or decreased by more than 1000 in a single request.

" } }, "EndDate": { "target": "com.amazonaws.ec2#DateTime", "traits": { - "smithy.api#documentation": "

The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity\n\t\t\tis released and you can no longer launch instances into it. The Capacity Reservation's state changes to\n\t\t\t\texpired when it reaches its end date and time.

\n

The Capacity Reservation is cancelled within an hour from the specified time. For example, if you specify \n\t\t\t5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019.

\n

You must provide an EndDate value if EndDateType is\n\t\t\t\tlimited. Omit EndDate if EndDateType is\n\t\t\t\tunlimited.

" + "smithy.api#documentation": "

The date and time at which the Capacity Reservation expires. When a Capacity\n\t\t\tReservation expires, the reserved capacity is released and you can no longer launch\n\t\t\tinstances into it. The Capacity Reservation's state changes to expired when\n\t\t\tit reaches its end date and time.

\n

The Capacity Reservation is cancelled within an hour from the specified time. For\n\t\t\texample, if you specify 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to\n\t\t\tend between 13:30:55 and 14:30:55 on 5/31/2019.

\n

You must provide an EndDate value if EndDateType is\n\t\t\t\tlimited. Omit EndDate if EndDateType is\n\t\t\t\tunlimited.

" } }, "EndDateType": { "target": "com.amazonaws.ec2#EndDateType", "traits": { - "smithy.api#documentation": "

Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can have one of the following end\n\t\t\ttypes:

\n " + "smithy.api#documentation": "

Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can\n\t\t\thave one of the following end types:

\n " } }, "Accept": { @@ -76942,7 +77569,7 @@ "InstanceMatchCriteria": { "target": "com.amazonaws.ec2#InstanceMatchCriteria", "traits": { - "smithy.api#documentation": "

\n\t\t\tThe matching criteria (instance eligibility) that you want to use in the modified Capacity Reservation. If you change the instance eligibility of an existing Capacity Reservation from targeted to open, \n\t\t\tany running instances that match the attributes of the Capacity Reservation, have the CapacityReservationPreference set to open, and \n\t\t\tare not yet running in the Capacity Reservation, will automatically use the modified Capacity Reservation.\n\t\t

\n

To modify the instance eligibility, the Capacity Reservation must be completely idle (zero usage).

" + "smithy.api#documentation": "

The matching criteria (instance eligibility) that you want to use in the modified\n\t\t\tCapacity Reservation. If you change the instance eligibility of an existing Capacity\n\t\t\tReservation from targeted to open, any running instances that\n\t\t\tmatch the attributes of the Capacity Reservation, have the\n\t\t\t\tCapacityReservationPreference set to open, and are not yet\n\t\t\trunning in the Capacity Reservation, will automatically use the modified Capacity\n\t\t\tReservation.

\n

To modify the instance eligibility, the Capacity Reservation must be completely idle\n\t\t\t(zero usage).

" } } }, @@ -77871,7 +78498,7 @@ "target": "com.amazonaws.ec2#ModifyInstanceCapacityReservationAttributesResult" }, "traits": { - "smithy.api#documentation": "

Modifies the Capacity Reservation settings for a stopped instance. Use this action to configure an\n\t\t\tinstance to target a specific Capacity Reservation, run in any open Capacity Reservation with matching\n\t\t\tattributes, run in On-Demand Instance capacity, or only run in a Capacity Reservation.

" + "smithy.api#documentation": "

Modifies the Capacity Reservation settings for a stopped instance. Use this action to \n\t\t\tconfigure an instance to target a specific Capacity Reservation, run in any \n\t\t\topen Capacity Reservation with matching attributes, run in On-Demand \n\t\t\tInstance capacity, or only run in a Capacity Reservation.

" } }, "com.amazonaws.ec2#ModifyInstanceCapacityReservationAttributesRequest": { @@ -78816,6 +79443,20 @@ "smithy.api#documentation": "

Remove operating Regions.

", "smithy.api#xmlName": "RemoveOperatingRegion" } + }, + "AddOrganizationalUnitExclusions": { + "target": "com.amazonaws.ec2#AddIpamOrganizationalUnitExclusionSet", + "traits": { + "smithy.api#documentation": "

Add an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "AddOrganizationalUnitExclusion" + } + }, + "RemoveOrganizationalUnitExclusions": { + "target": "com.amazonaws.ec2#RemoveIpamOrganizationalUnitExclusionSet", + "traits": { + "smithy.api#documentation": "

Remove an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "RemoveOrganizationalUnitExclusion" + } } }, "traits": { @@ -81314,7 +81955,7 @@ "target": "com.amazonaws.ec2#InternetGatewayExclusionMode", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The exclusion mode for internet gateway traffic.

\n ", + "smithy.api#documentation": "

The exclusion mode for internet gateway traffic.

\n ", "smithy.api#required": {} } } @@ -81348,7 +81989,7 @@ "target": "com.amazonaws.ec2#ModifyVpcBlockPublicAccessOptionsResult" }, "traits": { - "smithy.api#documentation": "

Modify VPC Block Public Access (BPA) options. VPC Block public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" + "smithy.api#documentation": "

Modify VPC Block Public Access (BPA) options. VPC Block Public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" } }, "com.amazonaws.ec2#ModifyVpcBlockPublicAccessOptionsRequest": { @@ -81364,7 +82005,7 @@ "target": "com.amazonaws.ec2#InternetGatewayBlockMode", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The mode of VPC BPA.

\n ", + "smithy.api#documentation": "

The mode of VPC BPA.

\n ", "smithy.api#required": {} } } @@ -82601,7 +83242,7 @@ "target": "com.amazonaws.ec2#MoveCapacityReservationInstancesResult" }, "traits": { - "smithy.api#documentation": "

Move available capacity from a source Capacity Reservation to a destination Capacity Reservation. The source Capacity Reservation and the destination Capacity Reservation must be active, owned by your Amazon Web Services account, and share the following:\n\t\t

\n " + "smithy.api#documentation": "

Move available capacity from a source Capacity Reservation to a destination Capacity\n\t\t\tReservation. The source Capacity Reservation and the destination Capacity Reservation\n\t\t\tmust be active, owned by your Amazon Web Services account, and share the following:

\n " } }, "com.amazonaws.ec2#MoveCapacityReservationInstancesRequest": { @@ -82624,7 +83265,7 @@ "target": "com.amazonaws.ec2#CapacityReservationId", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

\n\t\t\tThe ID of the Capacity Reservation from which you want to move capacity.\n\t\t

", + "smithy.api#documentation": "

The ID of the Capacity Reservation from which you want to move capacity.

", "smithy.api#required": {} } }, @@ -82632,7 +83273,7 @@ "target": "com.amazonaws.ec2#CapacityReservationId", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

\n\t\t\tThe ID of the Capacity Reservation that you want to move capacity into.\n\t\t

", + "smithy.api#documentation": "

The ID of the Capacity Reservation that you want to move capacity into.

", "smithy.api#required": {} } }, @@ -82656,7 +83297,7 @@ "target": "com.amazonaws.ec2#CapacityReservation", "traits": { "aws.protocols#ec2QueryName": "SourceCapacityReservation", - "smithy.api#documentation": "

\n\t\t\tInformation about the source Capacity Reservation.\n\t\t

", + "smithy.api#documentation": "

Information about the source Capacity Reservation.

", "smithy.api#xmlName": "sourceCapacityReservation" } }, @@ -82664,7 +83305,7 @@ "target": "com.amazonaws.ec2#CapacityReservation", "traits": { "aws.protocols#ec2QueryName": "DestinationCapacityReservation", - "smithy.api#documentation": "

\n\t\t\tInformation about the destination Capacity Reservation.\n\t\t

", + "smithy.api#documentation": "

Information about the destination Capacity Reservation.

", "smithy.api#xmlName": "destinationCapacityReservation" } }, @@ -82672,7 +83313,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "InstanceCount", - "smithy.api#documentation": "

\n\t\t\tThe number of instances that were moved from the source Capacity Reservation to the destination Capacity Reservation.\n\t\t

", + "smithy.api#documentation": "

The number of instances that were moved from the source Capacity Reservation to the\n\t\t\tdestination Capacity Reservation.

", "smithy.api#xmlName": "instanceCount" } } @@ -88386,7 +89027,65 @@ "target": "com.amazonaws.ec2#PurchaseCapacityBlockResult" }, "traits": { - "smithy.api#documentation": "

Purchase the Capacity Block for use with your account. \n\t\t With Capacity Blocks you ensure GPU capacity is available for machine learning (ML) workloads. You must specify the ID of the Capacity Block offering you are purchasing.

" + "smithy.api#documentation": "

Purchase the Capacity Block for use with your account. With Capacity Blocks you ensure\n\t\t\tGPU capacity is available for machine learning (ML) workloads. You must specify the ID\n\t\t\tof the Capacity Block offering you are purchasing.

" + } + }, + "com.amazonaws.ec2#PurchaseCapacityBlockExtension": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#PurchaseCapacityBlockExtensionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#PurchaseCapacityBlockExtensionResult" + }, + "traits": { + "smithy.api#documentation": "

Purchase the Capacity Block extension for use with your account. You must specify the\n\t\t\tID of the Capacity Block extension offering you are purchasing.

" + } + }, + "com.amazonaws.ec2#PurchaseCapacityBlockExtensionRequest": { + "type": "structure", + "members": { + "CapacityBlockExtensionOfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Block extension offering to purchase.

", + "smithy.api#required": {} + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity reservation to be extended.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#PurchaseCapacityBlockExtensionResult": { + "type": "structure", + "members": { + "CapacityBlockExtensions": { + "target": "com.amazonaws.ec2#CapacityBlockExtensionSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionSet", + "smithy.api#documentation": "

The purchased Capacity Block extensions.

", + "smithy.api#xmlName": "capacityBlockExtensionSet" + } + } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.ec2#PurchaseCapacityBlockRequest": { @@ -89366,7 +90065,7 @@ "target": "com.amazonaws.ec2#RejectCapacityReservationBillingOwnershipResult" }, "traits": { - "smithy.api#documentation": "

Rejects a request to assign billing of the available capacity of a shared Capacity Reservation \n\t\t\tto your account. For more information, see \n\t\t\t\tBilling assignment for shared Amazon EC2 Capacity Reservations.

" + "smithy.api#documentation": "

Rejects a request to assign billing of the available capacity of a shared Capacity\n\t\t\tReservation to your account. For more information, see Billing assignment for shared\n\t\t\t\t\tAmazon EC2 Capacity Reservations.

" } }, "com.amazonaws.ec2#RejectCapacityReservationBillingOwnershipRequest": { @@ -89881,6 +90580,32 @@ } } }, + "com.amazonaws.ec2#RemoveIpamOrganizationalUnitExclusion": { + "type": "structure", + "members": { + "OrganizationsEntityPath": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

An Amazon Web Services Organizations entity path. Build the path for the OU(s) using Amazon Web Services Organizations IDs separated by a /. Include all child OUs by ending the path with /*.

\n \n

For more information on how to construct an entity path, see Understand the Amazon Web Services Organizations entity path in the Amazon Web Services Identity and Access Management User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Remove an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#RemoveIpamOrganizationalUnitExclusionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RemoveIpamOrganizationalUnitExclusion" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, "com.amazonaws.ec2#RemovePrefixListEntries": { "type": "list", "member": { @@ -91731,37 +92456,37 @@ "InstancePlatform": { "target": "com.amazonaws.ec2#CapacityReservationInstancePlatform", "traits": { - "smithy.api#documentation": "

The type of operating system for which the Capacity Reservation Fleet reserves capacity.

" + "smithy.api#documentation": "

The type of operating system for which the Capacity Reservation Fleet reserves\n\t\t\tcapacity.

" } }, "Weight": { "target": "com.amazonaws.ec2#DoubleWithConstraints", "traits": { - "smithy.api#documentation": "

The number of capacity units provided by the specified instance type. This value, together\n\t\t\twith the total target capacity that you specify for the Fleet determine the number of\n\t\t\tinstances for which the Fleet reserves capacity. Both values are based on units that\n\t\t\tmake sense for your workload. For more information, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

" + "smithy.api#documentation": "

The number of capacity units provided by the specified instance type. This value,\n\t\t\ttogether with the total target capacity that you specify for the Fleet determine the\n\t\t\tnumber of instances for which the Fleet reserves capacity. Both values are based on\n\t\t\tunits that make sense for your workload. For more information, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

" } }, "AvailabilityZone": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The Availability Zone in which the Capacity Reservation Fleet reserves the capacity. A Capacity \n\t\t\tReservation Fleet can't span Availability Zones. All instance type specifications that you specify \n\t\t\tfor the Fleet must use the same Availability Zone.

" + "smithy.api#documentation": "

The Availability Zone in which the Capacity Reservation Fleet reserves the capacity. A\n\t\t\tCapacity Reservation Fleet can't span Availability Zones. All instance type\n\t\t\tspecifications that you specify for the Fleet must use the same Availability\n\t\t\tZone.

" } }, "AvailabilityZoneId": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The ID of the Availability Zone in which the Capacity Reservation Fleet reserves the capacity. A \n\t\t\tCapacity Reservation Fleet can't span Availability Zones. All instance type specifications that you \n\t\t\tspecify for the Fleet must use the same Availability Zone.

" + "smithy.api#documentation": "

The ID of the Availability Zone in which the Capacity Reservation Fleet reserves the\n\t\t\tcapacity. A Capacity Reservation Fleet can't span Availability Zones. All instance type\n\t\t\tspecifications that you specify for the Fleet must use the same Availability\n\t\t\tZone.

" } }, "EbsOptimized": { "target": "com.amazonaws.ec2#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether the Capacity Reservation Fleet supports EBS-optimized instances types. This \n\t\t\toptimization provides dedicated throughput to Amazon EBS and an optimized configuration stack \n\t\t\tto provide optimal I/O performance. This optimization isn't available with all instance types. Additional \n\t\t\tusage charges apply when using EBS-optimized instance types.

" + "smithy.api#documentation": "

Indicates whether the Capacity Reservation Fleet supports EBS-optimized instances\n\t\t\ttypes. This optimization provides dedicated throughput to Amazon EBS and an\n\t\t\toptimized configuration stack to provide optimal I/O performance. This optimization\n\t\t\tisn't available with all instance types. Additional usage charges apply when using\n\t\t\tEBS-optimized instance types.

" } }, "Priority": { "target": "com.amazonaws.ec2#IntegerWithConstraints", "traits": { - "smithy.api#documentation": "

The priority to assign to the instance type. This value is used to determine which of the\n\t\t\tinstance types specified for the Fleet should be prioritized for use. A lower value\n\t\t\tindicates a high priority. For more information, see Instance type\n\t\t\t\tpriority in the Amazon EC2 User Guide.

" + "smithy.api#documentation": "

The priority to assign to the instance type. This value is used to determine which of\n\t\t\tthe instance types specified for the Fleet should be prioritized for use. A lower value\n\t\t\tindicates a high priority. For more information, see Instance type\n\t\t\t\tpriority in the Amazon EC2 User Guide.

" } } }, @@ -109589,7 +110314,7 @@ "target": "com.amazonaws.ec2#InternetGatewayExclusionMode", "traits": { "aws.protocols#ec2QueryName": "InternetGatewayExclusionMode", - "smithy.api#documentation": "

The exclusion mode for internet gateway traffic.

\n ", + "smithy.api#documentation": "

The exclusion mode for internet gateway traffic.

\n ", "smithy.api#xmlName": "internetGatewayExclusionMode" } }, @@ -109771,7 +110496,7 @@ "target": "com.amazonaws.ec2#InternetGatewayBlockMode", "traits": { "aws.protocols#ec2QueryName": "InternetGatewayBlockMode", - "smithy.api#documentation": "

The current mode of VPC BPA.

\n ", + "smithy.api#documentation": "

The current mode of VPC BPA.

\n ", "smithy.api#xmlName": "internetGatewayBlockMode" } }, @@ -109793,7 +110518,7 @@ } }, "traits": { - "smithy.api#documentation": "

VPC Block public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" + "smithy.api#documentation": "

VPC Block Public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" } }, "com.amazonaws.ec2#VpcBlockPublicAccessState": { diff --git a/codegen/sdk-codegen/aws-models/elastic-load-balancing-v2.json b/codegen/sdk-codegen/aws-models/elastic-load-balancing-v2.json index dddf0aa9af3..dcb0b302868 100644 --- a/codegen/sdk-codegen/aws-models/elastic-load-balancing-v2.json +++ b/codegen/sdk-codegen/aws-models/elastic-load-balancing-v2.json @@ -5938,7 +5938,7 @@ "Key": { "target": "com.amazonaws.elasticloadbalancingv2#ListenerAttributeKey", "traits": { - "smithy.api#documentation": "

The name of the attribute.

\n

The following attribute is supported by Network Load Balancers, and Gateway Load Balancers.

\n " + "smithy.api#documentation": "

The name of the attribute.

\n

The following attribute is supported by Network Load Balancers, and Gateway Load Balancers.

\n \n

The following attributes are only supported by Application Load Balancers.

\n " } }, "Value": { @@ -6145,7 +6145,7 @@ "Key": { "target": "com.amazonaws.elasticloadbalancingv2#LoadBalancerAttributeKey", "traits": { - "smithy.api#documentation": "

The name of the attribute.

\n

The following attributes are supported by all load balancers:

\n \n

The following attributes are supported by both Application Load Balancers and Network Load\n Balancers:

\n \n

The following attributes are supported by only Application Load Balancers:

\n \n

The following attributes are supported by only Network Load Balancers:

\n " + "smithy.api#documentation": "

The name of the attribute.

\n

The following attributes are supported by all load balancers:

\n \n

The following attributes are supported by both Application Load Balancers and Network Load\n Balancers:

\n \n

The following attributes are supported by only Application Load Balancers:

\n \n

The following attributes are supported by only Network Load Balancers:

\n " } }, "Value": { diff --git a/codegen/sdk-codegen/aws-models/elasticache.json b/codegen/sdk-codegen/aws-models/elasticache.json index cb2b8e9e0c8..b4cb1782467 100644 --- a/codegen/sdk-codegen/aws-models/elasticache.json +++ b/codegen/sdk-codegen/aws-models/elasticache.json @@ -128,7 +128,7 @@ } ], "traits": { - "smithy.api#documentation": "

A tag is a key-value pair where the key and value are case-sensitive. You can use tags\n to categorize and track all your ElastiCache resources, with the exception of global\n replication group. When you add or remove tags on replication groups, those actions will\n be replicated to all nodes in the replication group. For more information, see Resource-level permissions.

\n

For example, you can use cost-allocation tags to your ElastiCache resources, Amazon\n generates a cost allocation report as a comma-separated value (CSV) file with your usage\n and costs aggregated by your tags. You can apply tags that represent business categories\n (such as cost centers, application names, or owners) to organize your costs across\n multiple services.

\n

For more information, see Using Cost Allocation Tags in\n Amazon ElastiCache in the ElastiCache User\n Guide.

", + "smithy.api#documentation": "

A tag is a key-value pair where the key and value are case-sensitive. You can use tags\n to categorize and track all your ElastiCache resources, with the exception of global\n replication group. When you add or remove tags on replication groups, those actions will\n be replicated to all nodes in the replication group. For more information, see Resource-level permissions.

\n

For example, you can use cost-allocation tags to your ElastiCache resources, Amazon\n generates a cost allocation report as a comma-separated value (CSV) file with your usage\n and costs aggregated by your tags. You can apply tags that represent business categories\n (such as cost centers, application names, or owners) to organize your costs across\n multiple services.

\n

For more information, see Using Cost Allocation Tags in\n Amazon ElastiCache in the ElastiCache User\n Guide.

", "smithy.api#examples": [ { "title": "AddTagsToResource", @@ -1777,7 +1777,7 @@ } ], "traits": { - "smithy.api#documentation": "

Apply the service update. For more information on service updates and applying them,\n see Applying Service\n Updates.

" + "smithy.api#documentation": "

Apply the service update. For more information on service updates and applying them,\n see Applying Service\n Updates.

" } }, "com.amazonaws.elasticache#BatchApplyUpdateActionMessage": { @@ -1825,7 +1825,7 @@ } ], "traits": { - "smithy.api#documentation": "

Stop the service update. For more information on service updates and stopping them,\n see Stopping\n Service Updates.

" + "smithy.api#documentation": "

Stop the service update. For more information on service updates and stopping them,\n see Stopping\n Service Updates.

" } }, "com.amazonaws.elasticache#BatchStopUpdateActionMessage": { @@ -1886,7 +1886,7 @@ "CacheNodeType": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The name of the compute and memory capacity node type for the cluster.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " + "smithy.api#documentation": "

The name of the compute and memory capacity node type for the cluster.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " } }, "Engine": { @@ -2262,7 +2262,7 @@ } }, "traits": { - "smithy.api#documentation": "

Represents an individual cache node within a cluster. Each cache node runs its own\n instance of the cluster's protocol-compliant caching software - either Memcached, Valkey or Redis OSS.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " + "smithy.api#documentation": "

Represents an individual cache node within a cluster. Each cache node runs its own\n instance of the cluster's protocol-compliant caching software - either Memcached, Valkey or Redis OSS.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " } }, "com.amazonaws.elasticache#CacheNodeIdsList": { @@ -2337,7 +2337,7 @@ "ChangeType": { "target": "com.amazonaws.elasticache#ChangeType", "traits": { - "smithy.api#documentation": "

Indicates whether a change to the parameter is applied immediately or requires a\n reboot for the change to be applied. You can force a reboot or wait until the next\n maintenance window's reboot. For more information, see Rebooting a\n Cluster.

" + "smithy.api#documentation": "

Indicates whether a change to the parameter is applied immediately or requires a\n reboot for the change to be applied. You can force a reboot or wait until the next\n maintenance window's reboot. For more information, see Rebooting a\n Cluster.

" } } }, @@ -3109,7 +3109,7 @@ "target": "com.amazonaws.elasticache#AllowedNodeGroupId", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The 4-digit id for the node group you are configuring. For Valkey or Redis OSS (cluster mode\n disabled) replication groups, the node group id is always 0001. To find a Valkey or Redis OSS (cluster mode enabled)'s node group's (shard's) id, see Finding a Shard's\n Id.

", + "smithy.api#documentation": "

The 4-digit id for the node group you are configuring. For Valkey or Redis OSS (cluster mode\n disabled) replication groups, the node group id is always 0001. To find a Valkey or Redis OSS (cluster mode enabled)'s node group's (shard's) id, see Finding a Shard's\n Id.

", "smithy.api#required": {} } }, @@ -3258,7 +3258,7 @@ } ], "traits": { - "smithy.api#documentation": "

Makes a copy of an existing snapshot.

\n \n

This operation is valid for Valkey or Redis OSS only.

\n
\n \n

Users or groups that have permissions to use the CopySnapshot\n operation can create their own Amazon S3 buckets and copy snapshots to it. To\n control access to your snapshots, use an IAM policy to control who has the ability\n to use the CopySnapshot operation. For more information about using IAM\n to control the use of ElastiCache operations, see Exporting\n Snapshots and Authentication & Access\n Control.

\n
\n

You could receive the following error messages.

\n

\n Error Messages\n

\n ", + "smithy.api#documentation": "

Makes a copy of an existing snapshot.

\n \n

This operation is valid for Valkey or Redis OSS only.

\n
\n \n

Users or groups that have permissions to use the CopySnapshot\n operation can create their own Amazon S3 buckets and copy snapshots to it. To\n control access to your snapshots, use an IAM policy to control who has the ability\n to use the CopySnapshot operation. For more information about using IAM\n to control the use of ElastiCache operations, see Exporting\n Snapshots and Authentication & Access\n Control.

\n
\n

You could receive the following error messages.

\n

\n Error Messages\n

\n ", "smithy.api#examples": [ { "title": "CopySnapshot", @@ -3324,7 +3324,7 @@ "TargetBucket": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The Amazon S3 bucket to which the snapshot is exported. This parameter is used only\n when exporting a snapshot for external access.

\n

When using this parameter to export a snapshot, be sure Amazon ElastiCache has the\n needed permissions to this S3 bucket. For more information, see Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket in the\n Amazon ElastiCache User Guide.

\n

For more information, see Exporting a\n Snapshot in the Amazon ElastiCache User Guide.

" + "smithy.api#documentation": "

The Amazon S3 bucket to which the snapshot is exported. This parameter is used only\n when exporting a snapshot for external access.

\n

When using this parameter to export a snapshot, be sure Amazon ElastiCache has the\n needed permissions to this S3 bucket. For more information, see Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket in the\n Amazon ElastiCache User Guide.

\n

For more information, see Exporting a\n Snapshot in the Amazon ElastiCache User Guide.

" } }, "KmsKeyId": { @@ -3534,7 +3534,7 @@ "CacheNodeType": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The compute and memory capacity of the nodes in the node group (shard).

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " + "smithy.api#documentation": "

The compute and memory capacity of the nodes in the node group (shard).

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " } }, "Engine": { @@ -3546,7 +3546,7 @@ "EngineVersion": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The version number of the cache engine to be used for this cluster. To view the\n supported cache engine versions, use the DescribeCacheEngineVersions operation.

\n

\n Important: You can upgrade to a newer engine version\n (see Selecting\n a Cache Engine and Version), but you cannot downgrade to an earlier engine\n version. If you want to use an earlier engine version, you must delete the existing\n cluster or replication group and create it anew with the earlier engine version.

" + "smithy.api#documentation": "

The version number of the cache engine to be used for this cluster. To view the\n supported cache engine versions, use the DescribeCacheEngineVersions operation.

\n

\n Important: You can upgrade to a newer engine version\n (see Selecting\n a Cache Engine and Version), but you cannot downgrade to an earlier engine\n version. If you want to use an earlier engine version, you must delete the existing\n cluster or replication group and create it anew with the earlier engine version.

" } }, "CacheParameterGroupName": { @@ -3558,7 +3558,7 @@ "CacheSubnetGroupName": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The name of the subnet group to be used for the cluster.

\n

Use this parameter only when you are creating a cluster in an Amazon Virtual Private\n Cloud (Amazon VPC).

\n \n

If you're going to launch your cluster in an Amazon VPC, you need to create a\n subnet group before you start creating a cluster. For more information, see Subnets and Subnet Groups.

\n
" + "smithy.api#documentation": "

The name of the subnet group to be used for the cluster.

\n

Use this parameter only when you are creating a cluster in an Amazon Virtual Private\n Cloud (Amazon VPC).

\n \n

If you're going to launch your cluster in an Amazon VPC, you need to create a\n subnet group before you start creating a cluster. For more information, see Subnets and Subnet Groups.

\n
" } }, "CacheSecurityGroupNames": { @@ -3721,7 +3721,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new Amazon ElastiCache cache parameter group. An ElastiCache cache parameter\n group is a collection of parameters and their values that are applied to all of the\n nodes in any cluster or replication group using the CacheParameterGroup.

\n

A newly created CacheParameterGroup is an exact duplicate of the default parameter\n group for the CacheParameterGroupFamily. To customize the newly created\n CacheParameterGroup you can change the values of specific parameters. For more\n information, see:

\n ", + "smithy.api#documentation": "

Creates a new Amazon ElastiCache cache parameter group. An ElastiCache cache parameter\n group is a collection of parameters and their values that are applied to all of the\n nodes in any cluster or replication group using the CacheParameterGroup.

\n

A newly created CacheParameterGroup is an exact duplicate of the default parameter\n group for the CacheParameterGroupFamily. To customize the newly created\n CacheParameterGroup you can change the values of specific parameters. For more\n information, see:

\n ", "smithy.api#examples": [ { "title": "CreateCacheParameterGroup", @@ -4023,7 +4023,7 @@ } ], "traits": { - "smithy.api#documentation": "

Global Datastore offers fully managed, fast, reliable and secure\n cross-region replication. Using Global Datastore with Valkey or Redis OSS, you can create cross-region\n read replica clusters for ElastiCache to enable low-latency reads and disaster\n recovery across regions. For more information, see Replication\n Across Regions Using Global Datastore.

\n " + "smithy.api#documentation": "

Global Datastore offers fully managed, fast, reliable and secure\n cross-region replication. Using Global Datastore with Valkey or Redis OSS, you can create cross-region\n read replica clusters for ElastiCache to enable low-latency reads and disaster\n recovery across regions. For more information, see Replication\n Across Regions Using Global Datastore.

\n " } }, "com.amazonaws.elasticache#CreateGlobalReplicationGroupMessage": { @@ -4033,7 +4033,7 @@ "target": "com.amazonaws.elasticache#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The suffix name of a Global datastore. Amazon ElastiCache automatically applies a\n prefix to the Global datastore ID when it is created. Each Amazon Region has its own\n prefix. For instance, a Global datastore ID created in the US-West-1 region will begin\n with \"dsdfu\" along with the suffix name you provide. The suffix, combined with the\n auto-generated prefix, guarantees uniqueness of the Global datastore name across\n multiple regions.

\n

For a full list of Amazon Regions and their respective Global datastore iD prefixes,\n see Using the Amazon CLI with Global datastores .

", + "smithy.api#documentation": "

The suffix name of a Global datastore. Amazon ElastiCache automatically applies a\n prefix to the Global datastore ID when it is created. Each Amazon Region has its own\n prefix. For instance, a Global datastore ID created in the US-West-1 region will begin\n with \"dsdfu\" along with the suffix name you provide. The suffix, combined with the\n auto-generated prefix, guarantees uniqueness of the Global datastore name across\n multiple regions.

\n

For a full list of Amazon Regions and their respective Global datastore iD prefixes,\n see Using the Amazon CLI with Global datastores .

", "smithy.api#required": {} } }, @@ -4135,7 +4135,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a Valkey or Redis OSS (cluster mode disabled) or a Valkey or Redis OSS (cluster mode enabled) replication\n group.

\n

This API can be used to create a standalone regional replication group or a secondary\n replication group associated with a Global datastore.

\n

A Valkey or Redis OSS (cluster mode disabled) replication group is a collection of nodes, where\n one of the nodes is a read/write primary and the others are read-only replicas.\n Writes to the primary are asynchronously propagated to the replicas.

\n

A Valkey or Redis OSS cluster-mode enabled cluster is comprised of from 1 to 90 shards (API/CLI:\n node groups). Each shard has a primary node and up to 5 read-only replica nodes. The\n configuration can range from 90 shards and 0 replicas to 15 shards and 5 replicas, which\n is the maximum number or replicas allowed.

\n

The node or shard limit can be increased to a maximum of 500 per cluster if the Valkey or Redis OSS \n engine version is 5.0.6 or higher. For example, you can choose to configure a 500 node\n cluster that ranges between 83 shards (one primary and 5 replicas per shard) and 500\n shards (single primary and no replicas). Make sure there are enough available IP\n addresses to accommodate the increase. Common pitfalls include the subnets in the subnet\n group have too small a CIDR range or the subnets are shared and heavily used by other\n clusters. For more information, see Creating a Subnet\n Group. For versions below 5.0.6, the limit is 250 per cluster.

\n

To request a limit increase, see Amazon Service Limits and\n choose the limit type Nodes per cluster per instance\n type.

\n

When a Valkey or Redis OSS (cluster mode disabled) replication group has been successfully created,\n you can add one or more read replicas to it, up to a total of 5 read replicas. If you\n need to increase or decrease the number of node groups (console: shards), you can use scaling. \n For more information, see Scaling self-designed clusters in the ElastiCache User\n Guide.

\n \n

This operation is valid for Valkey and Redis OSS only.

\n
", + "smithy.api#documentation": "

Creates a Valkey or Redis OSS (cluster mode disabled) or a Valkey or Redis OSS (cluster mode enabled) replication\n group.

\n

This API can be used to create a standalone regional replication group or a secondary\n replication group associated with a Global datastore.

\n

A Valkey or Redis OSS (cluster mode disabled) replication group is a collection of nodes, where\n one of the nodes is a read/write primary and the others are read-only replicas.\n Writes to the primary are asynchronously propagated to the replicas.

\n

A Valkey or Redis OSS cluster-mode enabled cluster is comprised of from 1 to 90 shards (API/CLI:\n node groups). Each shard has a primary node and up to 5 read-only replica nodes. The\n configuration can range from 90 shards and 0 replicas to 15 shards and 5 replicas, which\n is the maximum number or replicas allowed.

\n

The node or shard limit can be increased to a maximum of 500 per cluster if the Valkey or Redis OSS \n engine version is 5.0.6 or higher. For example, you can choose to configure a 500 node\n cluster that ranges between 83 shards (one primary and 5 replicas per shard) and 500\n shards (single primary and no replicas). Make sure there are enough available IP\n addresses to accommodate the increase. Common pitfalls include the subnets in the subnet\n group have too small a CIDR range or the subnets are shared and heavily used by other\n clusters. For more information, see Creating a Subnet\n Group. For versions below 5.0.6, the limit is 250 per cluster.

\n

To request a limit increase, see Amazon Service Limits and\n choose the limit type Nodes per cluster per instance\n type.

\n

When a Valkey or Redis OSS (cluster mode disabled) replication group has been successfully created,\n you can add one or more read replicas to it, up to a total of 5 read replicas. If you\n need to increase or decrease the number of node groups (console: shards), you can use scaling. \n For more information, see Scaling self-designed clusters in the ElastiCache User\n Guide.

\n \n

This operation is valid for Valkey and Redis OSS only.

\n
", "smithy.api#examples": [ { "title": "CreateCacheReplicationGroup", @@ -4261,7 +4261,7 @@ "MultiAZEnabled": { "target": "com.amazonaws.elasticache#BooleanOptional", "traits": { - "smithy.api#documentation": "

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more\n information, see Minimizing Downtime: Multi-AZ.

" + "smithy.api#documentation": "

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more\n information, see Minimizing Downtime: Multi-AZ.

" } }, "NumCacheClusters": { @@ -4297,7 +4297,7 @@ "CacheNodeType": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The compute and memory capacity of the nodes in the node group (shard).

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " + "smithy.api#documentation": "

The compute and memory capacity of the nodes in the node group (shard).

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " } }, "Engine": { @@ -4309,7 +4309,7 @@ "EngineVersion": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The version number of the cache engine to be used for the clusters in this replication\n group. To view the supported cache engine versions, use the\n DescribeCacheEngineVersions operation.

\n

\n Important: You can upgrade to a newer engine version\n (see Selecting\n a Cache Engine and Version) in the ElastiCache User\n Guide, but you cannot downgrade to an earlier engine version. If you want\n to use an earlier engine version, you must delete the existing cluster or replication\n group and create it anew with the earlier engine version.

" + "smithy.api#documentation": "

The version number of the cache engine to be used for the clusters in this replication\n group. To view the supported cache engine versions, use the\n DescribeCacheEngineVersions operation.

\n

\n Important: You can upgrade to a newer engine version\n (see Selecting\n a Cache Engine and Version) in the ElastiCache User\n Guide, but you cannot downgrade to an earlier engine version. If you want\n to use an earlier engine version, you must delete the existing cluster or replication\n group and create it anew with the earlier engine version.

" } }, "CacheParameterGroupName": { @@ -4321,7 +4321,7 @@ "CacheSubnetGroupName": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The name of the cache subnet group to be used for the replication group.

\n \n

If you're going to launch your cluster in an Amazon VPC, you need to create a\n subnet group before you start creating a cluster. For more information, see Subnets and Subnet Groups.

\n
" + "smithy.api#documentation": "

The name of the cache subnet group to be used for the replication group.

\n \n

If you're going to launch your cluster in an Amazon VPC, you need to create a\n subnet group before you start creating a cluster. For more information, see Subnets and Subnet Groups.

\n
" } }, "CacheSecurityGroupNames": { @@ -4429,7 +4429,7 @@ "DataTieringEnabled": { "target": "com.amazonaws.elasticache#BooleanOptional", "traits": { - "smithy.api#documentation": "

Enables data tiering. Data tiering is only supported for replication groups using the\n r6gd node type. This parameter must be set to true when using r6gd nodes. For more\n information, see Data tiering.

" + "smithy.api#documentation": "

Enables data tiering. Data tiering is only supported for replication groups using the\n r6gd node type. This parameter must be set to true when using r6gd nodes. For more\n information, see Data tiering.

" } }, "NetworkType": { @@ -4962,7 +4962,7 @@ } ], "traits": { - "smithy.api#documentation": "

For Valkey engine version 7.2 onwards and Redis OSS 6.0 and onwards: Creates a user. For more information, see\n Using Role Based Access Control (RBAC).

" + "smithy.api#documentation": "

For Valkey engine version 7.2 onwards and Redis OSS 6.0 and onwards: Creates a user. For more information, see\n Using Role Based Access Control (RBAC).

" } }, "com.amazonaws.elasticache#CreateUserGroup": { @@ -5000,7 +5000,7 @@ } ], "traits": { - "smithy.api#documentation": "

For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Creates a user group. For more\n information, see Using Role Based Access Control (RBAC)\n

" + "smithy.api#documentation": "

For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Creates a user group. For more\n information, see Using Role Based Access Control (RBAC)\n

" } }, "com.amazonaws.elasticache#CreateUserGroupMessage": { @@ -6056,7 +6056,7 @@ } ], "traits": { - "smithy.api#documentation": "

For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Deletes a user. The user will be removed from\n all user groups and in turn removed from all replication groups. For more information,\n see Using Role Based Access Control (RBAC).

" + "smithy.api#documentation": "

For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Deletes a user. The user will be removed from\n all user groups and in turn removed from all replication groups. For more information,\n see Using Role Based Access Control (RBAC).

" } }, "com.amazonaws.elasticache#DeleteUserGroup": { @@ -6082,7 +6082,7 @@ } ], "traits": { - "smithy.api#documentation": "

For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Deletes a user group. The user group must first\n be disassociated from the replication group before it can be deleted. For more\n information, see Using Role Based Access Control (RBAC).

" + "smithy.api#documentation": "

For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Deletes a user group. The user group must first\n be disassociated from the replication group before it can be deleted. For more\n information, see Using Role Based Access Control (RBAC).

" } }, "com.amazonaws.elasticache#DeleteUserGroupMessage": { @@ -8521,7 +8521,7 @@ "CacheNodeType": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The cache node type filter value. Use this parameter to show only those reservations\n matching the specified cache node type.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " + "smithy.api#documentation": "

The cache node type filter value. Use this parameter to show only those reservations\n matching the specified cache node type.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " } }, "Duration": { @@ -8902,7 +8902,7 @@ "CacheNodeType": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The cache node type filter value. Use this parameter to show only the available\n offerings matching the specified cache node type.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " + "smithy.api#documentation": "

The cache node type filter value. Use this parameter to show only the available\n offerings matching the specified cache node type.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " } }, "Duration": { @@ -10497,7 +10497,7 @@ "code": "InsufficientCacheClusterCapacity", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The requested cache node type is not available in the specified Availability Zone. For\n more information, see InsufficientCacheClusterCapacity in the ElastiCache User Guide.

", + "smithy.api#documentation": "

The requested cache node type is not available in the specified Availability Zone. For\n more information, see InsufficientCacheClusterCapacity in the ElastiCache User Guide.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -10974,7 +10974,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all tags currently on a named resource.

\n

A tag is a key-value pair where the key and value are case-sensitive. You can use\n tags to categorize and track all your ElastiCache resources, with the exception of\n global replication group. When you add or remove tags on replication groups, those\n actions will be replicated to all nodes in the replication group. For more information,\n see Resource-level permissions.

\n

If the cluster is not in the available state,\n ListTagsForResource returns an error.

", + "smithy.api#documentation": "

Lists all tags currently on a named resource.

\n

A tag is a key-value pair where the key and value are case-sensitive. You can use\n tags to categorize and track all your ElastiCache resources, with the exception of\n global replication group. When you add or remove tags on replication groups, those\n actions will be replicated to all nodes in the replication group. For more information,\n see Resource-level permissions.

\n

If the cluster is not in the available state,\n ListTagsForResource returns an error.

", "smithy.api#examples": [ { "title": "ListTagsForResource", @@ -11299,7 +11299,7 @@ "NewAvailabilityZones": { "target": "com.amazonaws.elasticache#PreferredAvailabilityZoneList", "traits": { - "smithy.api#documentation": "\n

This option is only supported on Memcached clusters.

\n
\n

The list of Availability Zones where the new Memcached cache nodes are created.

\n

This parameter is only valid when NumCacheNodes in the request is greater\n than the sum of the number of active cache nodes and the number of cache nodes pending\n creation (which may be zero). The number of Availability Zones supplied in this list\n must match the cache nodes being added in this request.

\n

Scenarios:

\n \n

The Availability Zone placement of nodes pending creation cannot be modified. If you\n wish to cancel any nodes pending creation, add 0 nodes by setting\n NumCacheNodes to the number of current nodes.

\n

If cross-az is specified, existing Memcached nodes remain in their\n current Availability Zone. Only newly created nodes can be located in different\n Availability Zones. For guidance on how to move existing Memcached nodes to different\n Availability Zones, see the Availability Zone\n Considerations section of Cache Node\n Considerations for Memcached.

\n

\n Impact of new add/remove requests upon pending requests\n

\n " + "smithy.api#documentation": "\n

This option is only supported on Memcached clusters.

\n
\n

The list of Availability Zones where the new Memcached cache nodes are created.

\n

This parameter is only valid when NumCacheNodes in the request is greater\n than the sum of the number of active cache nodes and the number of cache nodes pending\n creation (which may be zero). The number of Availability Zones supplied in this list\n must match the cache nodes being added in this request.

\n

Scenarios:

\n \n

The Availability Zone placement of nodes pending creation cannot be modified. If you\n wish to cancel any nodes pending creation, add 0 nodes by setting\n NumCacheNodes to the number of current nodes.

\n

If cross-az is specified, existing Memcached nodes remain in their\n current Availability Zone. Only newly created nodes can be located in different\n Availability Zones. For guidance on how to move existing Memcached nodes to different\n Availability Zones, see the Availability Zone\n Considerations section of Cache Node\n Considerations for Memcached.

\n

\n Impact of new add/remove requests upon pending requests\n

\n " } }, "CacheSecurityGroupNames": { @@ -11353,7 +11353,7 @@ "EngineVersion": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The upgraded version of the cache engine to be run on the cache nodes.

\n

\n Important: You can upgrade to a newer engine version\n (see Selecting\n a Cache Engine and Version), but you cannot downgrade to an earlier engine\n version. If you want to use an earlier engine version, you must delete the existing\n cluster and create it anew with the earlier engine version.

" + "smithy.api#documentation": "

The upgraded version of the cache engine to be run on the cache nodes.

\n

\n Important: You can upgrade to a newer engine version\n (see Selecting\n a Cache Engine and Version), but you cannot downgrade to an earlier engine\n version. If you want to use an earlier engine version, you must delete the existing\n cluster and create it anew with the earlier engine version.

" } }, "AutoMinorVersionUpgrade": { @@ -11389,7 +11389,7 @@ "AuthTokenUpdateStrategy": { "target": "com.amazonaws.elasticache#AuthTokenUpdateStrategyType", "traits": { - "smithy.api#documentation": "

Specifies the strategy to use to update the AUTH token. This parameter must be\n specified with the auth-token parameter. Possible values:

\n \n

For more information, see Authenticating Users with AUTH\n

" + "smithy.api#documentation": "

Specifies the strategy to use to update the AUTH token. This parameter must be\n specified with the auth-token parameter. Possible values:

\n \n

For more information, see Authenticating Users with AUTH\n

" } }, "LogDeliveryConfigurations": { @@ -11770,7 +11770,7 @@ } ], "traits": { - "smithy.api#documentation": "

Modifies the settings for a replication group. This is limited to Valkey and Redis OSS 7 and above.

\n \n \n

This operation is valid for Valkey or Redis OSS only.

\n
", + "smithy.api#documentation": "

Modifies the settings for a replication group. This is limited to Valkey and Redis OSS 7 and above.

\n \n \n

This operation is valid for Valkey or Redis OSS only.

\n
", "smithy.api#examples": [ { "title": "ModifyReplicationGroup", @@ -11942,7 +11942,7 @@ "EngineVersion": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The upgraded version of the cache engine to be run on the clusters in the replication\n group.

\n

\n Important: You can upgrade to a newer engine version\n (see Selecting\n a Cache Engine and Version), but you cannot downgrade to an earlier engine\n version. If you want to use an earlier engine version, you must delete the existing\n replication group and create it anew with the earlier engine version.

" + "smithy.api#documentation": "

The upgraded version of the cache engine to be run on the clusters in the replication\n group.

\n

\n Important: You can upgrade to a newer engine version\n (see Selecting\n a Cache Engine and Version), but you cannot downgrade to an earlier engine\n version. If you want to use an earlier engine version, you must delete the existing\n replication group and create it anew with the earlier engine version.

" } }, "AutoMinorVersionUpgrade": { @@ -11978,7 +11978,7 @@ "AuthTokenUpdateStrategy": { "target": "com.amazonaws.elasticache#AuthTokenUpdateStrategyType", "traits": { - "smithy.api#documentation": "

Specifies the strategy to use to update the AUTH token. This parameter must be\n specified with the auth-token parameter. Possible values:

\n \n

For more information, see Authenticating Users with AUTH\n

" + "smithy.api#documentation": "

Specifies the strategy to use to update the AUTH token. This parameter must be\n specified with the auth-token parameter. Possible values:

\n \n

For more information, see Authenticating Users with AUTH\n

" } }, "UserGroupIdsToAdd": { @@ -12363,6 +12363,12 @@ "traits": { "smithy.api#documentation": "

The list of user IDs to remove from the user group.

" } + }, + "Engine": { + "target": "com.amazonaws.elasticache#EngineType", + "traits": { + "smithy.api#documentation": "

The engine for a user group.

" + } } }, "traits": { @@ -12409,6 +12415,12 @@ "traits": { "smithy.api#documentation": "

Specifies how to authenticate the user.

" } + }, + "Engine": { + "target": "com.amazonaws.elasticache#EngineType", + "traits": { + "smithy.api#documentation": "

The engine for a specific user.

" + } } }, "traits": { @@ -13052,7 +13064,7 @@ "ChangeType": { "target": "com.amazonaws.elasticache#ChangeType", "traits": { - "smithy.api#documentation": "

Indicates whether a change to the parameter is applied immediately or requires a\n reboot for the change to be applied. You can force a reboot or wait until the next\n maintenance window's reboot. For more information, see Rebooting a\n Cluster.

" + "smithy.api#documentation": "

Indicates whether a change to the parameter is applied immediately or requires a\n reboot for the change to be applied. You can force a reboot or wait until the next\n maintenance window's reboot. For more information, see Rebooting a\n Cluster.

" } } }, @@ -13308,7 +13320,7 @@ } ], "traits": { - "smithy.api#documentation": "

Allows you to purchase a reserved cache node offering. Reserved nodes are not eligible\n for cancellation and are non-refundable. For more information, see Managing Costs with Reserved Nodes.

", + "smithy.api#documentation": "

Allows you to purchase a reserved cache node offering. Reserved nodes are not eligible\n for cancellation and are non-refundable. For more information, see Managing Costs with Reserved Nodes.

", "smithy.api#examples": [ { "title": "PurchaseReservedCacheNodesOfferings", @@ -13441,7 +13453,7 @@ } ], "traits": { - "smithy.api#documentation": "

Reboots some, or all, of the cache nodes within a provisioned cluster. This operation\n applies any modified cache parameter groups to the cluster. The reboot operation takes\n place as soon as possible, and results in a momentary outage to the cluster. During the\n reboot, the cluster status is set to REBOOTING.

\n

The reboot causes the contents of the cache (for each cache node being rebooted) to be\n lost.

\n

When the reboot is complete, a cluster event is created.

\n

Rebooting a cluster is currently supported on Memcached, Valkey and Redis OSS (cluster mode\n disabled) clusters. Rebooting is not supported on Valkey or Redis OSS (cluster mode enabled)\n clusters.

\n

If you make changes to parameters that require a Valkey or Redis OSS (cluster mode enabled) cluster\n reboot for the changes to be applied, see Rebooting a Cluster for an alternate process.

", + "smithy.api#documentation": "

Reboots some, or all, of the cache nodes within a provisioned cluster. This operation\n applies any modified cache parameter groups to the cluster. The reboot operation takes\n place as soon as possible, and results in a momentary outage to the cluster. During the\n reboot, the cluster status is set to REBOOTING.

\n

The reboot causes the contents of the cache (for each cache node being rebooted) to be\n lost.

\n

When the reboot is complete, a cluster event is created.

\n

Rebooting a cluster is currently supported on Memcached, Valkey and Redis OSS (cluster mode\n disabled) clusters. Rebooting is not supported on Valkey or Redis OSS (cluster mode enabled)\n clusters.

\n

If you make changes to parameters that require a Valkey or Redis OSS (cluster mode enabled) cluster\n reboot for the changes to be applied, see Rebooting a Cluster for an alternate process.

", "smithy.api#examples": [ { "title": "RebootCacheCluster", @@ -13655,7 +13667,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes the tags identified by the TagKeys list from the named resource.\n A tag is a key-value pair where the key and value are case-sensitive. You can use tags\n to categorize and track all your ElastiCache resources, with the exception of global\n replication group. When you add or remove tags on replication groups, those actions will\n be replicated to all nodes in the replication group. For more information, see Resource-level permissions.

", + "smithy.api#documentation": "

Removes the tags identified by the TagKeys list from the named resource.\n A tag is a key-value pair where the key and value are case-sensitive. You can use tags\n to categorize and track all your ElastiCache resources, with the exception of global\n replication group. When you add or remove tags on replication groups, those actions will\n be replicated to all nodes in the replication group. For more information, see Resource-level permissions.

", "smithy.api#examples": [ { "title": "RemoveTagsFromResource", @@ -13790,7 +13802,7 @@ "MultiAZ": { "target": "com.amazonaws.elasticache#MultiAZStatus", "traits": { - "smithy.api#documentation": "

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more\n information, see Minimizing Downtime: Multi-AZ\n

" + "smithy.api#documentation": "

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more\n information, see Minimizing Downtime: Multi-AZ\n

" } }, "ConfigurationEndpoint": { @@ -13886,7 +13898,7 @@ "DataTiering": { "target": "com.amazonaws.elasticache#DataTieringStatus", "traits": { - "smithy.api#documentation": "

Enables data tiering. Data tiering is only supported for replication groups using the\n r6gd node type. This parameter must be set to true when using r6gd nodes. For more\n information, see Data tiering.

" + "smithy.api#documentation": "

Enables data tiering. Data tiering is only supported for replication groups using the\n r6gd node type. This parameter must be set to true when using r6gd nodes. For more\n information, see Data tiering.

" } }, "AutoMinorVersionUpgrade": { @@ -14129,7 +14141,7 @@ "CacheNodeType": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The cache node type for the reserved cache nodes.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " + "smithy.api#documentation": "

The cache node type for the reserved cache nodes.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " } }, "StartTime": { @@ -14290,7 +14302,7 @@ "CacheNodeType": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The cache node type for the reserved cache node.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " + "smithy.api#documentation": "

The cache node type for the reserved cache node.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " } }, "Duration": { @@ -14970,7 +14982,7 @@ "ServiceUpdateRecommendedApplyByDate": { "target": "com.amazonaws.elasticache#TStamp", "traits": { - "smithy.api#documentation": "

The recommendend date to apply the service update in order to ensure compliance. For\n information on compliance, see Self-Service Security Updates for Compliance.

" + "smithy.api#documentation": "

The recommendend date to apply the service update in order to ensure compliance. For\n information on compliance, see Self-Service Security Updates for Compliance.

" } }, "ServiceUpdateStatus": { @@ -15220,7 +15232,7 @@ "CacheNodeType": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The name of the compute and memory capacity node type for the source cluster.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " + "smithy.api#documentation": "

The name of the compute and memory capacity node type for the source cluster.

\n

The following node types are supported by ElastiCache. Generally speaking, the current\n generation types provide more memory and computational power at lower cost when compared\n to their equivalent previous generation counterparts.

\n \n

\n Additional node type info\n

\n " } }, "Engine": { @@ -15346,7 +15358,7 @@ "DataTiering": { "target": "com.amazonaws.elasticache#DataTieringStatus", "traits": { - "smithy.api#documentation": "

Enables data tiering. Data tiering is only supported for replication groups using the\n r6gd node type. This parameter must be set to true when using r6gd nodes. For more\n information, see Data tiering.

" + "smithy.api#documentation": "

Enables data tiering. Data tiering is only supported for replication groups using the\n r6gd node type. This parameter must be set to true when using r6gd nodes. For more\n information, see Data tiering.

" } } }, @@ -15788,7 +15800,7 @@ } ], "traits": { - "smithy.api#documentation": "

Represents the input of a TestFailover operation which tests automatic\n failover on a specified node group (called shard in the console) in a replication group\n (called cluster in the console).

\n

This API is designed for testing the behavior of your application in case of\n ElastiCache failover. It is not designed to be an operational tool for initiating a\n failover to overcome a problem you may have with the cluster. Moreover, in certain\n conditions such as large-scale operational events, Amazon may block this API.

\n

\n Note the following\n

\n \n

Also see, Testing\n Multi-AZ in the ElastiCache User Guide.

" + "smithy.api#documentation": "

Represents the input of a TestFailover operation which tests automatic\n failover on a specified node group (called shard in the console) in a replication group\n (called cluster in the console).

\n

This API is designed for testing the behavior of your application in case of\n ElastiCache failover. It is not designed to be an operational tool for initiating a\n failover to overcome a problem you may have with the cluster. Moreover, in certain\n conditions such as large-scale operational events, Amazon may block this API.

\n

\n Note the following\n

\n \n

Also see, Testing\n Multi-AZ in the ElastiCache User Guide.

" } }, "com.amazonaws.elasticache#TestFailoverMessage": { @@ -16042,7 +16054,7 @@ "ServiceUpdateRecommendedApplyByDate": { "target": "com.amazonaws.elasticache#TStamp", "traits": { - "smithy.api#documentation": "

The recommended date to apply the service update to ensure compliance. For information\n on compliance, see Self-Service Security Updates for Compliance.

" + "smithy.api#documentation": "

The recommended date to apply the service update to ensure compliance. For information\n on compliance, see Self-Service Security Updates for Compliance.

" } }, "ServiceUpdateType": { diff --git a/codegen/sdk-codegen/aws-models/health.json b/codegen/sdk-codegen/aws-models/health.json index 6dcb0c3d098..ef72c677214 100644 --- a/codegen/sdk-codegen/aws-models/health.json +++ b/codegen/sdk-codegen/aws-models/health.json @@ -88,7 +88,7 @@ "name": "health" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "Health\n

The Health API provides access to the Health information that appears in the\n Health Dashboard. You can use\n the API operations to get information about events that might affect your Amazon Web Services and resources.

\n

You must have a Business, Enterprise On-Ramp, or Enterprise Support plan from Amazon Web Services Support to use the Health API. If you call the Health API from an\n Amazon Web Services account that doesn't have a Business, Enterprise On-Ramp, or Enterprise Support plan, you receive a\n SubscriptionRequiredException error.

\n

For API access, you need an access key ID and a secret access key. Use temporary\n credentials instead of long-term access keys when possible. Temporary credentials include\n an access key ID, a secret access key, and a security token that indicates when the\n credentials expire. For more information, see Best practices for managing\n Amazon Web Services access keys in the Amazon Web Services General Reference.

\n

You can use the Health endpoint health.us-east-1.amazonaws.com (HTTPS) to call the\n Health API operations. Health supports a multi-Region application architecture\n and has two regional endpoints in an active-passive configuration. You can use the high\n availability endpoint example to determine which Amazon Web Services Region is active, so that you can\n get the latest information from the API. For more information, see Accessing the Health\n API in the Health User Guide.

\n

For authentication of requests, Health uses the Signature Version 4 Signing\n Process.

\n

If your Amazon Web Services account is part of Organizations, you can use the Health organizational\n view feature. This feature provides a centralized view of Health events across all\n accounts in your organization. You can aggregate Health events in real time to\n identify accounts in your organization that are affected by an operational event or get\n notified of security vulnerabilities. Use the organizational view API operations to enable\n this feature and return event information. For more information, see Aggregating\n Health events in the Health User Guide.

\n \n

When you use the Health API operations to return Health events, see the\n following recommendations:

\n \n
", + "smithy.api#documentation": "Health\n

The Health API provides access to the Health information that appears in the\n Health Dashboard. You can use\n the API operations to get information about events that might affect your Amazon Web Services services and resources.

\n

You must have a Business, Enterprise On-Ramp, or Enterprise Support plan from Amazon Web Services Support to use the Health API. If you call the Health API from an\n Amazon Web Services account that doesn't have a Business, Enterprise On-Ramp, or Enterprise Support plan, you receive a\n SubscriptionRequiredException error.

\n

For API access, you need an access key ID and a secret access key. Use temporary\n credentials instead of long-term access keys when possible. Temporary credentials include\n an access key ID, a secret access key, and a security token that indicates when the\n credentials expire. For more information, see Best practices for managing\n Amazon Web Services access keys in the Amazon Web Services General Reference.

\n

You can use the Health endpoint health.us-east-1.amazonaws.com (HTTPS) to call the\n Health API operations. Health supports a multi-Region application architecture\n and has two regional endpoints in an active-passive configuration. You can use the high\n availability endpoint example to determine which Amazon Web Services Region is active, so that you can\n get the latest information from the API. For more information, see Accessing the Health\n API in the Health User Guide.

\n

For authentication of requests, Health uses the Signature Version 4 Signing\n Process.

\n

If your Amazon Web Services account is part of Organizations, you can use the Health organizational\n view feature. This feature provides a centralized view of Health events across all\n accounts in your organization. You can aggregate Health events in real time to\n identify accounts in your organization that are affected by an operational event or get\n notified of security vulnerabilities. Use the organizational view API operations to enable\n this feature and return event information. For more information, see Aggregating\n Health events in the Health User Guide.

\n \n

When you use the Health API operations to return Health events, see the\n following recommendations:

\n \n
", "smithy.api#title": "AWS Health APIs and Notifications", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -901,6 +901,12 @@ "traits": { "smithy.api#documentation": "

A map of entity tags attached to the affected entity.

\n \n

Currently, the tags property isn't supported.

\n
" } + }, + "entityMetadata": { + "target": "com.amazonaws.health#entityMetadata", + "traits": { + "smithy.api#documentation": "

Additional metadata about the affected entity.

" + } } }, "traits": { @@ -1002,7 +1008,7 @@ "eventScopeCode": { "target": "com.amazonaws.health#eventScopeCode", "traits": { - "smithy.api#documentation": "

This parameter specifies if the Health event is a public Amazon Web Service event or an account-specific event.

\n " + "smithy.api#documentation": "

This parameter specifies if the Health event is a public Amazon Web Services service event or an account-specific event.

\n " } }, "nextToken": { @@ -1033,7 +1039,7 @@ } ], "traits": { - "smithy.api#documentation": "

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

\n

At least one event ARN is required.

\n \n \n ", + "smithy.api#documentation": "

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

\n

At least one event ARN is required.

\n \n \n ", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "nextToken", @@ -1060,7 +1066,7 @@ } ], "traits": { - "smithy.api#documentation": "

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

\n

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

\n

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

\n \n \n ", + "smithy.api#documentation": "

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

\n

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

\n

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

\n \n \n ", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "nextToken", @@ -1521,7 +1527,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the event types that meet the specified filter criteria. You can use this API\n operation to find information about the Health event, such as the category, Amazon Web Service, and event code. The metadata for each event appears in the EventType object.

\n

If you don't specify a filter criteria, the API operation returns all event types, in no\n particular order.

\n \n

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

\n
", + "smithy.api#documentation": "

Returns the event types that meet the specified filter criteria. You can use this API\n operation to find information about the Health event, such as the category, Amazon Web Services service, and event code. The metadata for each event appears in the EventType object.

\n

If you don't specify a filter criteria, the API operation returns all event types, in no\n particular order.

\n \n

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

\n
", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "nextToken", @@ -1927,7 +1933,7 @@ "service": { "target": "com.amazonaws.health#service", "traits": { - "smithy.api#documentation": "

The Amazon Web Service that is affected by the event. For example, EC2, RDS.

" + "smithy.api#documentation": "

The Amazon Web Services service that is affected by the event. For example, EC2, RDS.

" } }, "eventTypeCode": { @@ -1981,7 +1987,7 @@ "eventScopeCode": { "target": "com.amazonaws.health#eventScopeCode", "traits": { - "smithy.api#documentation": "

This parameter specifies if the Health event is a public Amazon Web Service event or an account-specific event.

\n " + "smithy.api#documentation": "

This parameter specifies if the Health event is a public Amazon Web Services service event or an account-specific event.

\n " } } }, @@ -2136,7 +2142,7 @@ "services": { "target": "com.amazonaws.health#serviceList", "traits": { - "smithy.api#documentation": "

The Amazon Web Services associated with the event. For example, EC2, RDS.

" + "smithy.api#documentation": "

The Amazon Web Services services associated with the event. For example, EC2, RDS.

" } }, "regions": { @@ -2216,7 +2222,7 @@ "service": { "target": "com.amazonaws.health#service", "traits": { - "smithy.api#documentation": "

The Amazon Web Service that is affected by the event. For example, EC2, RDS.

" + "smithy.api#documentation": "

The Amazon Web Services service that is affected by the event. For example, EC2, RDS.

" } }, "code": { @@ -2282,7 +2288,7 @@ "services": { "target": "com.amazonaws.health#serviceList", "traits": { - "smithy.api#documentation": "

The Amazon Web Services associated with the event. For example, EC2, RDS.

" + "smithy.api#documentation": "

The Amazon Web Services services associated with the event. For example, EC2, RDS.

" } }, "eventTypeCategories": { @@ -2433,7 +2439,7 @@ "service": { "target": "com.amazonaws.health#service", "traits": { - "smithy.api#documentation": "

The Amazon Web Service that is affected by the event, such as EC2 and RDS.

" + "smithy.api#documentation": "

The Amazon Web Services service that is affected by the event, such as EC2 and RDS.

" } }, "eventTypeCode": { @@ -2451,7 +2457,7 @@ "eventScopeCode": { "target": "com.amazonaws.health#eventScopeCode", "traits": { - "smithy.api#documentation": "

This parameter specifies if the Health event is a public Amazon Web Service event or an account-specific event.

\n " + "smithy.api#documentation": "

This parameter specifies if the Health event is a public Amazon Web Services service event or an account-specific event.

\n " } }, "region": { @@ -2589,7 +2595,7 @@ "services": { "target": "com.amazonaws.health#serviceList", "traits": { - "smithy.api#documentation": "

The Amazon Web Services associated with the event. For example, EC2, RDS.

" + "smithy.api#documentation": "

The Amazon Web Services services associated with the event. For example, EC2, RDS.

" } }, "regions": { @@ -2741,6 +2747,33 @@ } } }, + "com.amazonaws.health#entityMetadata": { + "type": "map", + "key": { + "target": "com.amazonaws.health#entityMetadataKey" + }, + "value": { + "target": "com.amazonaws.health#entityMetadataValue" + } + }, + "com.amazonaws.health#entityMetadataKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + } + } + }, + "com.amazonaws.health#entityMetadataValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + } + } + }, "com.amazonaws.health#entityStatusCode": { "type": "enum", "members": { diff --git a/codegen/sdk-codegen/aws-models/iot-jobs-data-plane.json b/codegen/sdk-codegen/aws-models/iot-jobs-data-plane.json index 323df9f6fd5..ae29d1aae59 100644 --- a/codegen/sdk-codegen/aws-models/iot-jobs-data-plane.json +++ b/codegen/sdk-codegen/aws-models/iot-jobs-data-plane.json @@ -35,6 +35,17 @@ "com.amazonaws.iotjobsdataplane#BinaryBlob": { "type": "blob" }, + "com.amazonaws.iotjobsdataplane#BinaryParameterValue": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.iotjobsdataplane#BooleanParameterValue": { + "type": "boolean" + }, "com.amazonaws.iotjobsdataplane#CertificateValidationException": { "type": "structure", "members": { @@ -51,6 +62,130 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.iotjobsdataplane#ClientRequestTokenV2": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[\\x21-\\x7E]+$" + } + }, + "com.amazonaws.iotjobsdataplane#CommandArn": { + "type": "string" + }, + "com.amazonaws.iotjobsdataplane#CommandExecutionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "com.amazonaws.iotjobsdataplane#CommandExecutionParameterMap": { + "type": "map", + "key": { + "target": "com.amazonaws.iotjobsdataplane#CommandParameterName" + }, + "value": { + "target": "com.amazonaws.iotjobsdataplane#CommandParameterValue" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.iotjobsdataplane#CommandExecutionTimeoutInSeconds": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.iotjobsdataplane#CommandParameterName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 192 + }, + "smithy.api#pattern": "^[.$a-zA-Z0-9_-]+$" + } + }, + "com.amazonaws.iotjobsdataplane#CommandParameterValue": { + "type": "structure", + "members": { + "S": { + "target": "com.amazonaws.iotjobsdataplane#StringParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type String. For example:

\n

\n \"S\": \"Hello\"\n

" + } + }, + "B": { + "target": "com.amazonaws.iotjobsdataplane#BooleanParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type Boolean. For example:

\n

\n \"BOOL\": true\n

" + } + }, + "I": { + "target": "com.amazonaws.iotjobsdataplane#IntegerParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type Integer (Thirty-Two Bits).

" + } + }, + "L": { + "target": "com.amazonaws.iotjobsdataplane#LongParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type Long.

" + } + }, + "D": { + "target": "com.amazonaws.iotjobsdataplane#DoubleParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type Double (Sixty-Four Bits).

" + } + }, + "BIN": { + "target": "com.amazonaws.iotjobsdataplane#BinaryParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type Binary.

" + } + }, + "UL": { + "target": "com.amazonaws.iotjobsdataplane#UnsignedLongParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type Unsigned Long.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The list of values used to describe a specific command parameter.

" + } + }, + "com.amazonaws.iotjobsdataplane#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iotjobsdataplane#errorMessage" + }, + "resourceId": { + "target": "com.amazonaws.iotjobsdataplane#resourceId", + "traits": { + "smithy.api#documentation": "

A conflict occurred while performing the API request on the resource ID.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A conflict has occurred when performing the API request.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, "com.amazonaws.iotjobsdataplane#DescribeJobExecution": { "type": "operation", "input": { @@ -80,7 +215,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets details of a job execution.

", + "smithy.api#documentation": "

Gets details of a job execution.

\n

Requires permission to access the DescribeJobExecution action.

", "smithy.api#http": { "method": "GET", "uri": "/things/{thingName}/jobs/{jobId}", @@ -116,14 +251,14 @@ "includeJobDocument": { "target": "com.amazonaws.iotjobsdataplane#IncludeJobDocument", "traits": { - "smithy.api#documentation": "

Optional. When set to true, the response contains the job document. The default is false.

", + "smithy.api#documentation": "

Optional. Unless set to false, the response contains the job document. The default is\n true.

", "smithy.api#httpQuery": "includeJobDocument" } }, "executionNumber": { "target": "com.amazonaws.iotjobsdataplane#ExecutionNumber", "traits": { - "smithy.api#documentation": "

Optional. A number that identifies a particular job execution on a particular device. If not specified,\n the latest job execution is returned.

", + "smithy.api#documentation": "

Optional. A number that identifies a particular job execution on a particular device.\n If not specified, the latest job execution is returned.

", "smithy.api#httpQuery": "executionNumber" } } @@ -169,12 +304,14 @@ "type": "string", "traits": { "smithy.api#length": { - "min": 1, - "max": 1024 + "min": 1 }, - "smithy.api#pattern": "^[^\\p{C}]*+$" + "smithy.api#pattern": "^[^\\p{C}]+$" } }, + "com.amazonaws.iotjobsdataplane#DoubleParameterValue": { + "type": "double" + }, "com.amazonaws.iotjobsdataplane#ExecutionNumber": { "type": "long" }, @@ -207,7 +344,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the list of all jobs for a thing that are not in a terminal status.

", + "smithy.api#documentation": "

Gets the list of all jobs for a thing that are not in a terminal status.

\n

Requires permission to access the GetPendingJobExecutions action.

", "smithy.api#http": { "method": "GET", "uri": "/things/{thingName}/jobs", @@ -257,6 +394,22 @@ "com.amazonaws.iotjobsdataplane#IncludeJobDocument": { "type": "boolean" }, + "com.amazonaws.iotjobsdataplane#IntegerParameterValue": { + "type": "integer" + }, + "com.amazonaws.iotjobsdataplane#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iotjobsdataplane#errorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

An internal server error occurred when performing the API request.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, "com.amazonaws.iotjobsdataplane#InvalidRequestException": { "type": "structure", "members": { @@ -268,7 +421,7 @@ } }, "traits": { - "smithy.api#documentation": "

The contents of the request were invalid. For example, this code is returned when an UpdateJobExecution request contains invalid status details. The message contains details about the error.

", + "smithy.api#documentation": "

The contents of the request were invalid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -281,7 +434,7 @@ } }, "traits": { - "smithy.api#documentation": "

An update attempted to change the job execution to a state that is invalid because of the job execution's\n current state (for example, an attempt to change a request in state SUCCESS to state IN_PROGRESS). In this\n case, the body of the error message also contains the executionState field.

", + "smithy.api#documentation": "

An update attempted to change the job execution to a state that is invalid because of\n the job execution's current state (for example, an attempt to change a request in state\n SUCCESS to state IN_PROGRESS). In this case, the body of the error message also contains\n the executionState field.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -296,6 +449,9 @@ { "target": "com.amazonaws.iotjobsdataplane#GetPendingJobExecutions" }, + { + "target": "com.amazonaws.iotjobsdataplane#StartCommandExecution" + }, { "target": "com.amazonaws.iotjobsdataplane#StartNextPendingJobExecution" }, @@ -316,7 +472,7 @@ "name": "iot-jobs-data" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

AWS IoT Jobs is a service that allows you to define a set of jobs — remote operations that are sent to\n and executed on one or more devices connected to AWS IoT. For example, you can define a job that instructs a\n set of devices to download and install application or firmware updates, reboot, rotate certificates, or perform\n remote troubleshooting operations.

\n

To create a job, you make a job document which is a description of the remote operations to be\n performed, and you specify a list of targets that should perform the operations. The targets can be individual\n things, thing groups or both.

\n

AWS IoT Jobs sends a message to inform the targets that a job is available. The target starts the\n execution of the job by downloading the job document, performing the operations it specifies, and reporting its\n progress to AWS IoT. The Jobs service provides commands to track the progress of a job on a specific target and\n for all the targets of the job

", + "smithy.api#documentation": "

IoT Jobs is a service that allows you to define a set of jobs — remote operations\n that are sent to and executed on one or more devices connected to Amazon Web Services IoT Core. For example,\n you can define a job that instructs a set of devices to download and install application or\n firmware updates, reboot, rotate certificates, or perform remote troubleshooting\n operations.

\n

Find the endpoint address for actions in the IoT jobs data plane by running this\n CLI command:

\n

\n aws iot describe-endpoint --endpoint-type iot:Jobs\n

\n

The service name used by Amazon Web Services\n Signature Version 4 to sign requests is:\n iot-jobs-data.

\n

To create a job, you make a job document which is a description of the remote\n operations to be performed, and you specify a list of targets that should perform the\n operations. The targets can be individual things, thing groups or both.

\n

IoT Jobs sends a message to inform the targets that a job is available. The target\n starts the execution of the job by downloading the job document, performing the operations\n it specifies, and reporting its progress to Amazon Web Services IoT Core. The Jobs service provides commands\n to track the progress of a job on a specific target and for all the targets of the\n job

", "smithy.api#title": "AWS IoT Jobs Data Plane", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -1287,52 +1443,52 @@ "status": { "target": "com.amazonaws.iotjobsdataplane#JobExecutionStatus", "traits": { - "smithy.api#documentation": "

The status of the job execution. Can be one of: \"QUEUED\", \"IN_PROGRESS\", \"FAILED\", \"SUCCESS\", \"CANCELED\",\n \"REJECTED\", or \"REMOVED\".

" + "smithy.api#documentation": "

The status of the job execution. Can be one of: \"QUEUED\", \"IN_PROGRESS\", \"FAILED\",\n \"SUCCESS\", \"CANCELED\", \"TIMED_OUT\", \"REJECTED\", or \"REMOVED\".

" } }, "statusDetails": { "target": "com.amazonaws.iotjobsdataplane#DetailsMap", "traits": { - "smithy.api#documentation": "

A collection of name/value pairs that describe the status of the job execution.

" + "smithy.api#documentation": "

A collection of name/value pairs that describe the status of the job\n execution.

\n

The maximum length of the value in the name/value pair is 1,024 characters.

" } }, "queuedAt": { "target": "com.amazonaws.iotjobsdataplane#QueuedAt", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The time, in milliseconds since the epoch, when the job execution was enqueued.

" + "smithy.api#documentation": "

The time, in seconds since the epoch, when the job execution was enqueued.

" } }, "startedAt": { "target": "com.amazonaws.iotjobsdataplane#StartedAt", "traits": { - "smithy.api#documentation": "

The time, in milliseconds since the epoch, when the job execution was started.

" + "smithy.api#documentation": "

The time, in seconds since the epoch, when the job execution was started.

" } }, "lastUpdatedAt": { "target": "com.amazonaws.iotjobsdataplane#LastUpdatedAt", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The time, in milliseconds since the epoch, when the job execution was last updated.

" + "smithy.api#documentation": "

The time, in seconds since the epoch, when the job execution was last updated.\n

" } }, "approximateSecondsBeforeTimedOut": { "target": "com.amazonaws.iotjobsdataplane#ApproximateSecondsBeforeTimedOut", "traits": { - "smithy.api#documentation": "

The estimated number of seconds that remain before the job execution status will be\n changed to TIMED_OUT.

" + "smithy.api#documentation": "

The estimated number of seconds that remain before the job execution status will be\n changed to TIMED_OUT. The actual job execution timeout can occur up to 60\n seconds later than the estimated duration.

" } }, "versionNumber": { "target": "com.amazonaws.iotjobsdataplane#VersionNumber", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The version of the job execution. Job execution versions are incremented each time they are updated by a\n device.

" + "smithy.api#documentation": "

The version of the job execution. Job execution versions are incremented each time\n they are updated by a device.

" } }, "executionNumber": { "target": "com.amazonaws.iotjobsdataplane#ExecutionNumber", "traits": { - "smithy.api#documentation": "

A number that identifies a particular job execution on a particular device. It can be used later in\n commands that return or update job execution information.

" + "smithy.api#documentation": "

A number that identifies a particular job execution on a particular device. It can be\n used later in commands that return or update job execution information.

" } }, "jobDocument": { @@ -1352,20 +1508,20 @@ "status": { "target": "com.amazonaws.iotjobsdataplane#JobExecutionStatus", "traits": { - "smithy.api#documentation": "

The status of the job execution. Can be one of: \"QUEUED\", \"IN_PROGRESS\", \"FAILED\", \"SUCCESS\", \"CANCELED\",\n \"REJECTED\", or \"REMOVED\".

" + "smithy.api#documentation": "

The status of the job execution. Can be one of: \"QUEUED\", \"IN_PROGRESS\", \"FAILED\",\n \"SUCCESS\", \"CANCELED\", \"TIMED_OUT\", \"REJECTED\", or \"REMOVED\".

" } }, "statusDetails": { "target": "com.amazonaws.iotjobsdataplane#DetailsMap", "traits": { - "smithy.api#documentation": "

A collection of name/value pairs that describe the status of the job execution.

" + "smithy.api#documentation": "

A collection of name/value pairs that describe the status of the job\n execution.

\n

The maximum length of the value in the name/value pair is 1,024 characters.

" } }, "versionNumber": { "target": "com.amazonaws.iotjobsdataplane#VersionNumber", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The version of the job execution. Job execution versions are incremented each time they are updated by a\n device.

" + "smithy.api#documentation": "

The version of the job execution. Job execution versions are incremented each time\n they are updated by a device.

" } } }, @@ -1439,27 +1595,27 @@ "target": "com.amazonaws.iotjobsdataplane#QueuedAt", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The time, in milliseconds since the epoch, when the job execution was enqueued.

" + "smithy.api#documentation": "

The time, in seconds since the epoch, when the job execution was enqueued.

" } }, "startedAt": { "target": "com.amazonaws.iotjobsdataplane#StartedAt", "traits": { - "smithy.api#documentation": "

The time, in milliseconds since the epoch, when the job execution started.

" + "smithy.api#documentation": "

The time, in seconds since the epoch, when the job execution started.

" } }, "lastUpdatedAt": { "target": "com.amazonaws.iotjobsdataplane#LastUpdatedAt", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The time, in milliseconds since the epoch, when the job execution was last updated.

" + "smithy.api#documentation": "

The time, in seconds since the epoch, when the job execution was last\n updated.

" } }, "versionNumber": { "target": "com.amazonaws.iotjobsdataplane#VersionNumber", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The version of the job execution. Job execution versions are incremented each time AWS IoT Jobs receives\n an update from a device.

" + "smithy.api#documentation": "

The version of the job execution. Job execution versions are incremented each time\n IoT Jobs receives an update from a device.

" } }, "executionNumber": { @@ -1495,6 +1651,9 @@ "smithy.api#default": 0 } }, + "com.amazonaws.iotjobsdataplane#LongParameterValue": { + "type": "long" + }, "com.amazonaws.iotjobsdataplane#QueuedAt": { "type": "long", "traits": { @@ -1517,6 +1676,19 @@ "smithy.api#httpError": 404 } }, + "com.amazonaws.iotjobsdataplane#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iotjobsdataplane#errorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The service quota has been exceeded for this request.

", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, "com.amazonaws.iotjobsdataplane#ServiceUnavailableException": { "type": "structure", "members": { @@ -1533,6 +1705,98 @@ "smithy.api#httpError": 503 } }, + "com.amazonaws.iotjobsdataplane#StartCommandExecution": { + "type": "operation", + "input": { + "target": "com.amazonaws.iotjobsdataplane#StartCommandExecutionRequest" + }, + "output": { + "target": "com.amazonaws.iotjobsdataplane#StartCommandExecutionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iotjobsdataplane#ConflictException" + }, + { + "target": "com.amazonaws.iotjobsdataplane#InternalServerException" + }, + { + "target": "com.amazonaws.iotjobsdataplane#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iotjobsdataplane#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.iotjobsdataplane#ThrottlingException" + }, + { + "target": "com.amazonaws.iotjobsdataplane#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Using the command created with the CreateCommand API, start a command\n execution on a specific device.

", + "smithy.api#http": { + "method": "POST", + "uri": "/command-executions", + "code": 200 + } + } + }, + "com.amazonaws.iotjobsdataplane#StartCommandExecutionRequest": { + "type": "structure", + "members": { + "targetArn": { + "target": "com.amazonaws.iotjobsdataplane#TargetArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the device where the command execution is\n occurring.

", + "smithy.api#required": {} + } + }, + "commandArn": { + "target": "com.amazonaws.iotjobsdataplane#CommandArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the command. For example,\n arn:aws:iot:::command/\n

", + "smithy.api#required": {} + } + }, + "parameters": { + "target": "com.amazonaws.iotjobsdataplane#CommandExecutionParameterMap", + "traits": { + "smithy.api#documentation": "

A list of parameters that are required by the StartCommandExecution API\n when performing the command on a device.

" + } + }, + "executionTimeoutSeconds": { + "target": "com.amazonaws.iotjobsdataplane#CommandExecutionTimeoutInSeconds", + "traits": { + "smithy.api#documentation": "

Specifies the amount of time in second the device has to finish the command execution. A\n timer is started as soon as the command execution is created. If the command execution\n status is not set to another terminal state before the timer expires, it will automatically\n update to TIMED_OUT.

" + } + }, + "clientToken": { + "target": "com.amazonaws.iotjobsdataplane#ClientRequestTokenV2", + "traits": { + "smithy.api#documentation": "

The client token is used to implement idempotency. It ensures that the request completes\n no more than one time. If you retry a request with the same token and the same parameters,\n the request will complete successfully. However, if you retry the request using the same\n token but different parameters, an HTTP 409 conflict occurs. If you omit this value, Amazon Web Services\n SDKs will automatically generate a unique client request.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iotjobsdataplane#StartCommandExecutionResponse": { + "type": "structure", + "members": { + "executionId": { + "target": "com.amazonaws.iotjobsdataplane#CommandExecutionId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the command execution.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iotjobsdataplane#StartNextPendingJobExecution": { "type": "operation", "input": { @@ -1559,7 +1823,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets and starts the next pending (status IN_PROGRESS or QUEUED) job execution for a thing.

", + "smithy.api#documentation": "

Gets and starts the next pending (status IN_PROGRESS or QUEUED) job execution for a\n thing.

\n

Requires permission to access the StartNextPendingJobExecution action.

", "smithy.api#http": { "method": "PUT", "uri": "/things/{thingName}/jobs/$next", @@ -1581,13 +1845,13 @@ "statusDetails": { "target": "com.amazonaws.iotjobsdataplane#DetailsMap", "traits": { - "smithy.api#documentation": "

A collection of name/value pairs that describe the status of the job execution. If not specified, the\n statusDetails are unchanged.

" + "smithy.api#documentation": "

A collection of name/value pairs that describe the status of the job execution. If\n not specified, the statusDetails are unchanged.

\n

The maximum length of the value in the name/value pair is 1,024 characters.

" } }, "stepTimeoutInMinutes": { "target": "com.amazonaws.iotjobsdataplane#StepTimeoutInMinutes", "traits": { - "smithy.api#documentation": "

Specifies the amount of time this device has to finish execution of this job. If the job \n execution status is not set to a terminal state before this timer expires, or before the \n timer is reset (by calling UpdateJobExecution, setting the status to\n IN_PROGRESS and specifying a new timeout value in field stepTimeoutInMinutes) \n the job execution status will be automatically set to TIMED_OUT. Note that setting \n this timeout has no effect on that job execution timeout which may have been specified when \n the job was created (CreateJob using field timeoutConfig).

" + "smithy.api#documentation": "

Specifies the amount of time this device has to finish execution of this job. If the job\n execution status is not set to a terminal state before this timer expires, or before the\n timer is reset (by calling UpdateJobExecution, setting the status to\n IN_PROGRESS, and specifying a new timeout value in field\n stepTimeoutInMinutes) the job execution status will be automatically set to\n TIMED_OUT. Note that setting the step timeout has no effect on the in\n progress timeout that may have been specified when the job was created\n (CreateJob using field timeoutConfig).

\n

Valid values for this parameter range from 1 to 10080 (1 minute to 7 days).

" } } }, @@ -1615,6 +1879,23 @@ "com.amazonaws.iotjobsdataplane#StepTimeoutInMinutes": { "type": "long" }, + "com.amazonaws.iotjobsdataplane#StringParameterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.iotjobsdataplane#TargetArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + } + } + }, "com.amazonaws.iotjobsdataplane#TerminalStateException": { "type": "structure", "members": { @@ -1660,6 +1941,16 @@ "smithy.api#httpError": 429 } }, + "com.amazonaws.iotjobsdataplane#UnsignedLongParameterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + }, + "smithy.api#pattern": "^[0-9]*$" + } + }, "com.amazonaws.iotjobsdataplane#UpdateJobExecution": { "type": "operation", "input": { @@ -1689,7 +1980,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the status of a job execution.

", + "smithy.api#documentation": "

Updates the status of a job execution.

\n

Requires permission to access the UpdateJobExecution action.

", "smithy.api#http": { "method": "POST", "uri": "/things/{thingName}/jobs/{jobId}", @@ -1719,44 +2010,44 @@ "status": { "target": "com.amazonaws.iotjobsdataplane#JobExecutionStatus", "traits": { - "smithy.api#documentation": "

The new status for the job execution (IN_PROGRESS, FAILED, SUCCESS, or REJECTED). This must be specified\n on every update.

", + "smithy.api#documentation": "

The new status for the job execution (IN_PROGRESS, FAILED, SUCCESS, or REJECTED).\n This must be specified on every update.

", "smithy.api#required": {} } }, "statusDetails": { "target": "com.amazonaws.iotjobsdataplane#DetailsMap", "traits": { - "smithy.api#documentation": "

Optional. A collection of name/value pairs that describe the status of the job execution. If not\n specified, the statusDetails are unchanged.

" + "smithy.api#documentation": "

Optional. A collection of name/value pairs that describe the status of the job\n execution. If not specified, the statusDetails are unchanged.

\n

The maximum length of the value in the name/value pair is 1,024 characters.

" } }, "stepTimeoutInMinutes": { "target": "com.amazonaws.iotjobsdataplane#StepTimeoutInMinutes", "traits": { - "smithy.api#documentation": "

Specifies the amount of time this device has to finish execution of this job. If the job \n execution status is not set to a terminal state before this timer expires, or before the \n timer is reset (by again calling UpdateJobExecution, setting the status to\n IN_PROGRESS and specifying a new timeout value in this field) the job execution\n status will be automatically set to TIMED_OUT. Note that setting or resetting \n this timeout has no effect on that job execution timeout which may have been specified when \n the job was created (CreateJob using field timeoutConfig).

" + "smithy.api#documentation": "

Specifies the amount of time this device has to finish execution of this job. If the job\n execution status is not set to a terminal state before this timer expires, or before the\n timer is reset (by again calling UpdateJobExecution, setting the status to\n IN_PROGRESS, and specifying a new timeout value in this field) the job\n execution status will be automatically set to TIMED_OUT. Note that setting or\n resetting the step timeout has no effect on the in progress timeout that may have been\n specified when the job was created (CreateJob using field\n timeoutConfig).

\n

Valid values for this parameter range from 1 to 10080 (1 minute to 7 days). A value of\n -1 is also valid and will cancel the current step timer (created by an earlier use of\n UpdateJobExecutionRequest).

" } }, "expectedVersion": { "target": "com.amazonaws.iotjobsdataplane#ExpectedVersion", "traits": { - "smithy.api#documentation": "

Optional. The expected current version of the job execution. Each time you update the job execution, its\n version is incremented. If the version of the job execution stored in Jobs does not match, the update is\n rejected with a VersionMismatch error, and an ErrorResponse that contains the current job execution status data\n is returned. (This makes it unnecessary to perform a separate DescribeJobExecution request in order to obtain\n the job execution status data.)

" + "smithy.api#documentation": "

Optional. The expected current version of the job execution. Each time you update the\n job execution, its version is incremented. If the version of the job execution stored in\n Jobs does not match, the update is rejected with a VersionMismatch error, and an\n ErrorResponse that contains the current job execution status data is returned. (This makes\n it unnecessary to perform a separate DescribeJobExecution request in order to obtain the\n job execution status data.)

" } }, "includeJobExecutionState": { "target": "com.amazonaws.iotjobsdataplane#IncludeExecutionState", "traits": { - "smithy.api#documentation": "

Optional. When included and set to true, the response contains the JobExecutionState data. The default is\n false.

" + "smithy.api#documentation": "

Optional. When included and set to true, the response contains the JobExecutionState\n data. The default is false.

" } }, "includeJobDocument": { "target": "com.amazonaws.iotjobsdataplane#IncludeJobDocument", "traits": { - "smithy.api#documentation": "

Optional. When set to true, the response contains the job document. The default is false.

" + "smithy.api#documentation": "

Optional. When set to true, the response contains the job document. The default is\n false.

" } }, "executionNumber": { "target": "com.amazonaws.iotjobsdataplane#ExecutionNumber", "traits": { - "smithy.api#documentation": "

Optional. A number that identifies a particular job execution on a particular device.

" + "smithy.api#documentation": "

Optional. A number that identifies a particular job execution on a particular\n device.

" } } }, @@ -1784,6 +2075,19 @@ "smithy.api#output": {} } }, + "com.amazonaws.iotjobsdataplane#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iotjobsdataplane#errorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

A validation error occurred when performing the API request.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.iotjobsdataplane#VersionNumber": { "type": "long", "traits": { @@ -1792,6 +2096,9 @@ }, "com.amazonaws.iotjobsdataplane#errorMessage": { "type": "string" + }, + "com.amazonaws.iotjobsdataplane#resourceId": { + "type": "string" } } } diff --git a/codegen/sdk-codegen/aws-models/iot.json b/codegen/sdk-codegen/aws-models/iot.json index d1f0d001641..5c674934904 100644 --- a/codegen/sdk-codegen/aws-models/iot.json +++ b/codegen/sdk-codegen/aws-models/iot.json @@ -99,6 +99,9 @@ { "target": "com.amazonaws.iot#CreateCertificateProvider" }, + { + "target": "com.amazonaws.iot#CreateCommand" + }, { "target": "com.amazonaws.iot#CreateCustomMetric" }, @@ -198,6 +201,12 @@ { "target": "com.amazonaws.iot#DeleteCertificateProvider" }, + { + "target": "com.amazonaws.iot#DeleteCommand" + }, + { + "target": "com.amazonaws.iot#DeleteCommandExecution" + }, { "target": "com.amazonaws.iot#DeleteCustomMetric" }, @@ -414,6 +423,12 @@ { "target": "com.amazonaws.iot#GetCardinality" }, + { + "target": "com.amazonaws.iot#GetCommand" + }, + { + "target": "com.amazonaws.iot#GetCommandExecution" + }, { "target": "com.amazonaws.iot#GetEffectivePolicies" }, @@ -501,6 +516,12 @@ { "target": "com.amazonaws.iot#ListCertificatesByCA" }, + { + "target": "com.amazonaws.iot#ListCommandExecutions" + }, + { + "target": "com.amazonaws.iot#ListCommands" + }, { "target": "com.amazonaws.iot#ListCustomMetrics" }, @@ -747,6 +768,9 @@ { "target": "com.amazonaws.iot#UpdateCertificateProvider" }, + { + "target": "com.amazonaws.iot#UpdateCommand" + }, { "target": "com.amazonaws.iot#UpdateCustomMetric" }, @@ -1894,14 +1918,14 @@ "thresholdPercentage": { "target": "com.amazonaws.iot#AbortThresholdPercentage", "traits": { - "smithy.api#documentation": "

The minimum percentage of job execution failures that must occur to initiate the job abort.

\n

Amazon Web Services IoT Core supports up to two digits after the decimal (for example, 10.9 and 10.99, but not 10.999).

", + "smithy.api#documentation": "

The minimum percentage of job execution failures that must occur to initiate the\n job abort.

\n

Amazon Web Services IoT Core supports up to two digits after the decimal (for example, 10.9 and 10.99,\n but not 10.999).

", "smithy.api#required": {} } }, "minNumberOfExecutedThings": { "target": "com.amazonaws.iot#MinimumNumberOfExecutedThings", "traits": { - "smithy.api#documentation": "

The minimum number of things which must receive job execution notifications before the job \n can be aborted.

", + "smithy.api#documentation": "

The minimum number of things which must receive job execution notifications before\n the job can be aborted.

", "smithy.api#required": {} } } @@ -2904,7 +2928,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associates a group with a continuous job. The following criteria must be met:

\n \n

Requires permission to access the AssociateTargetsWithJob action.

", + "smithy.api#documentation": "

Associates a group with a continuous job. The following criteria must be met:

\n \n

Requires permission to access the AssociateTargetsWithJob action.

", "smithy.api#http": { "method": "POST", "uri": "/jobs/{jobId}/targets", @@ -2933,13 +2957,13 @@ "comment": { "target": "com.amazonaws.iot#Comment", "traits": { - "smithy.api#documentation": "

An optional comment string describing why the job was associated with the targets.

" + "smithy.api#documentation": "

An optional comment string describing why the job was associated with the\n targets.

" } }, "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to\n MQTT topics that contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at this time. For\n more information, see Setting up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -4842,6 +4866,22 @@ "smithy.api#documentation": "

The properties of a billing group.

" } }, + "com.amazonaws.iot#BinaryCommandExecutionResult": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.iot#BinaryParameterValue": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, "com.amazonaws.iot#Boolean": { "type": "boolean" }, @@ -4851,9 +4891,15 @@ "smithy.api#default": false } }, + "com.amazonaws.iot#BooleanCommandExecutionResult": { + "type": "boolean" + }, "com.amazonaws.iot#BooleanKey": { "type": "boolean" }, + "com.amazonaws.iot#BooleanParameterValue": { + "type": "boolean" + }, "com.amazonaws.iot#BooleanWrapperObject": { "type": "boolean" }, @@ -5363,20 +5409,20 @@ "target": "com.amazonaws.iot#ForceFlag", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

(Optional) If true the job execution will be canceled if it has status \n IN_PROGRESS or QUEUED, otherwise the job execution will be canceled only if it has status \n QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and you do not set \n force to true, then an InvalidStateTransitionException \n will be thrown. The default is false.

\n

Canceling a job execution which is \"IN_PROGRESS\", will cause the device to be unable \n to update the job execution status. Use caution and ensure that the device is able to \n recover to a valid state.

", + "smithy.api#documentation": "

(Optional) If true the job execution will be canceled if it has status\n IN_PROGRESS or QUEUED, otherwise the job execution will be canceled only if it has\n status QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and you do\n not set force to true, then an\n InvalidStateTransitionException will be thrown. The default is\n false.

\n

Canceling a job execution which is \"IN_PROGRESS\", will cause the device to be\n unable to update the job execution status. Use caution and ensure that the device is\n able to recover to a valid state.

", "smithy.api#httpQuery": "force" } }, "expectedVersion": { "target": "com.amazonaws.iot#ExpectedVersion", "traits": { - "smithy.api#documentation": "

(Optional) The expected current version of the job execution. Each time you update the job \n execution, its version is incremented. If the version of the job execution stored in Jobs does \n not match, the update is rejected with a VersionMismatch error, and an ErrorResponse that \n contains the current job execution status data is returned. (This makes it unnecessary to \n perform a separate DescribeJobExecution request in order to obtain the job execution status \n data.)

" + "smithy.api#documentation": "

(Optional) The expected current version of the job execution. Each time you update\n the job execution, its version is incremented. If the version of the job execution\n stored in Jobs does not match, the update is rejected with a VersionMismatch error, and\n an ErrorResponse that contains the current job execution status data is returned. (This\n makes it unnecessary to perform a separate DescribeJobExecution request in order to\n obtain the job execution status data.)

" } }, "statusDetails": { "target": "com.amazonaws.iot#DetailsMap", "traits": { - "smithy.api#documentation": "

A collection of name/value pairs that describe the status of the job execution. If not \n specified, the statusDetails are unchanged. You can specify at most 10 name/value pairs.

" + "smithy.api#documentation": "

A collection of name/value pairs that describe the status of the job execution. If\n not specified, the statusDetails are unchanged. You can specify at most 10 name/value\n pairs.

" } } }, @@ -5411,7 +5457,7 @@ "target": "com.amazonaws.iot#ForceFlag", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

(Optional) If true job executions with status \"IN_PROGRESS\" and \"QUEUED\" \n are canceled, otherwise only job executions with status \"QUEUED\" are canceled. The default \n is false.

\n

Canceling a job which is \"IN_PROGRESS\", will cause a device which is executing \n the job to be unable to update the job execution status. Use caution and ensure that each \n device executing a job which is canceled is able to recover to a valid state.

", + "smithy.api#documentation": "

(Optional) If true job executions with status \"IN_PROGRESS\" and\n \"QUEUED\" are canceled, otherwise only job executions with status \"QUEUED\" are canceled.\n The default is false.

\n

Canceling a job which is \"IN_PROGRESS\", will cause a device which is executing the\n job to be unable to update the job execution status. Use caution and ensure that each\n device executing a job which is canceled is able to recover to a valid state.

", "smithy.api#httpQuery": "force" } } @@ -6196,6 +6242,427 @@ "com.amazonaws.iot#CognitoIdentityPoolId": { "type": "string" }, + "com.amazonaws.iot#CommandArn": { + "type": "string" + }, + "com.amazonaws.iot#CommandDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2028 + }, + "smithy.api#pattern": "^[^\\p{C}]*$" + } + }, + "com.amazonaws.iot#CommandExecutionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "com.amazonaws.iot#CommandExecutionParameterMap": { + "type": "map", + "key": { + "target": "com.amazonaws.iot#CommandParameterName" + }, + "value": { + "target": "com.amazonaws.iot#CommandParameterValue" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.iot#CommandExecutionResult": { + "type": "structure", + "members": { + "S": { + "target": "com.amazonaws.iot#StringCommandExecutionResult", + "traits": { + "smithy.api#documentation": "

An attribute of type String. For example:

\n

\n \"S\": \"Hello\"\n

" + } + }, + "B": { + "target": "com.amazonaws.iot#BooleanCommandExecutionResult", + "traits": { + "smithy.api#documentation": "

An attribute of type Boolean. For example:

\n

\n \"BOOL\": true\n

" + } + }, + "BIN": { + "target": "com.amazonaws.iot#BinaryCommandExecutionResult", + "traits": { + "smithy.api#documentation": "

An attribute of type Binary.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The result value of the command execution. The device can use the result field to\n share additional details about the execution such as a return value of a remote function\n call.

\n \n

This field is not applicable if you use the AWS-IoT-FleetWise\n namespace.

\n
" + } + }, + "com.amazonaws.iot#CommandExecutionResultMap": { + "type": "map", + "key": { + "target": "com.amazonaws.iot#CommandExecutionResultName" + }, + "value": { + "target": "com.amazonaws.iot#CommandExecutionResult" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.iot#CommandExecutionResultName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "com.amazonaws.iot#CommandExecutionStatus": { + "type": "enum", + "members": { + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "REJECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REJECTED" + } + }, + "TIMED_OUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TIMED_OUT" + } + } + } + }, + "com.amazonaws.iot#CommandExecutionSummary": { + "type": "structure", + "members": { + "commandArn": { + "target": "com.amazonaws.iot#CommandArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the command execution.

" + } + }, + "executionId": { + "target": "com.amazonaws.iot#CommandExecutionId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the command execution.

" + } + }, + "targetArn": { + "target": "com.amazonaws.iot#TargetArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the target device for which the command is being\n executed.

" + } + }, + "status": { + "target": "com.amazonaws.iot#CommandExecutionStatus", + "traits": { + "smithy.api#documentation": "

The status of the command executions.

" + } + }, + "createdAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The date and time at which the command execution was created for the target device.

" + } + }, + "startedAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The date and time at which the command started executing on the target device.

" + } + }, + "completedAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The date and time at which the command completed executing on the target\n device.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Summary information about a particular command execution.

" + } + }, + "com.amazonaws.iot#CommandExecutionSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.iot#CommandExecutionSummary" + } + }, + "com.amazonaws.iot#CommandExecutionTimeoutInSeconds": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.iot#CommandId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "com.amazonaws.iot#CommandMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.iot#CommandNamespace": { + "type": "enum", + "members": { + "AWSIoT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS-IoT" + } + }, + "AWSIoTFleetWise": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS-IoT-FleetWise" + } + } + } + }, + "com.amazonaws.iot#CommandParameter": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.iot#CommandParameterName", + "traits": { + "smithy.api#documentation": "

The name of a specific parameter used in a command and command execution.

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.iot#CommandParameterValue", + "traits": { + "smithy.api#documentation": "

The value used to describe the command. When you assign a value to a parameter, it\n will override any default value that you had already specified.

" + } + }, + "defaultValue": { + "target": "com.amazonaws.iot#CommandParameterValue", + "traits": { + "smithy.api#documentation": "

The default value used to describe the command. This is the value assumed by the\n parameter if no other value is assigned to it.

" + } + }, + "description": { + "target": "com.amazonaws.iot#CommandParameterDescription", + "traits": { + "smithy.api#documentation": "

The description of the command parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A map of key-value pairs that describe the command.

" + } + }, + "com.amazonaws.iot#CommandParameterDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2028 + }, + "smithy.api#pattern": "^[^\\p{C}]*$" + } + }, + "com.amazonaws.iot#CommandParameterList": { + "type": "list", + "member": { + "target": "com.amazonaws.iot#CommandParameter" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.iot#CommandParameterName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 192 + }, + "smithy.api#pattern": "^[.$a-zA-Z0-9_-]+$" + } + }, + "com.amazonaws.iot#CommandParameterValue": { + "type": "structure", + "members": { + "S": { + "target": "com.amazonaws.iot#StringParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type String. For example:

\n

\n \"S\": \"Hello\"\n

" + } + }, + "B": { + "target": "com.amazonaws.iot#BooleanParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type Boolean. For example:

\n

\n \"BOOL\": true\n

" + } + }, + "I": { + "target": "com.amazonaws.iot#IntegerParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type Integer (Thirty-Two Bits).

" + } + }, + "L": { + "target": "com.amazonaws.iot#LongParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type Long.

" + } + }, + "D": { + "target": "com.amazonaws.iot#DoubleParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type Double (Sixty-Four Bits).

" + } + }, + "BIN": { + "target": "com.amazonaws.iot#BinaryParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type Binary. For example:

\n

\n \"B\": \"dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk\"\n

" + } + }, + "UL": { + "target": "com.amazonaws.iot#UnsignedLongParameterValue", + "traits": { + "smithy.api#documentation": "

An attribute of type unsigned long.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The range of possible values that's used to describe a specific command\n parameter.

\n \n

The commandParameterValue can only have one of the below fields\n listed.

\n
" + } + }, + "com.amazonaws.iot#CommandPayload": { + "type": "structure", + "members": { + "content": { + "target": "com.amazonaws.iot#CommandPayloadBlob", + "traits": { + "smithy.api#documentation": "

The static payload file for the command.

" + } + }, + "contentType": { + "target": "com.amazonaws.iot#MimeType", + "traits": { + "smithy.api#documentation": "

The content type that specifies the format type of the payload file. This\n field must use a type/subtype format, such as application/json.\n For information about various content types, see Common MIME types.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The command payload object that contains the instructions for the device\n to process.

" + } + }, + "com.amazonaws.iot#CommandPayloadBlob": { + "type": "blob" + }, + "com.amazonaws.iot#CommandSummary": { + "type": "structure", + "members": { + "commandArn": { + "target": "com.amazonaws.iot#CommandArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the command.

" + } + }, + "commandId": { + "target": "com.amazonaws.iot#CommandId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the command.

" + } + }, + "displayName": { + "target": "com.amazonaws.iot#DisplayName", + "traits": { + "smithy.api#documentation": "

The display name of the command.

" + } + }, + "deprecated": { + "target": "com.amazonaws.iot#DeprecationFlag", + "traits": { + "smithy.api#documentation": "

Indicates whether the command has been deprecated.

" + } + }, + "createdAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The timestamp, when the command was created.

" + } + }, + "lastUpdatedAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The timestamp, when the command was last updated.

" + } + }, + "pendingDeletion": { + "target": "com.amazonaws.iot#BooleanWrapperObject", + "traits": { + "smithy.api#documentation": "

Indicates whether the command is pending deletion.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Summary information about a particular command resource.

" + } + }, + "com.amazonaws.iot#CommandSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.iot#CommandSummary" + } + }, "com.amazonaws.iot#Comment": { "type": "string", "traits": { @@ -6392,7 +6859,7 @@ } }, "traits": { - "smithy.api#documentation": "

A resource with the same name already exists.

", + "smithy.api#documentation": "

The request conflicts with the current state of the resource.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -6947,6 +7414,118 @@ "smithy.api#output": {} } }, + "com.amazonaws.iot#CreateCommand": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#CreateCommandRequest" + }, + "output": { + "target": "com.amazonaws.iot#CreateCommandResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#ConflictException" + }, + { + "target": "com.amazonaws.iot#InternalServerException" + }, + { + "target": "com.amazonaws.iot#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a command. A command contains reusable configurations that can be applied\n before they are sent to the devices.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/commands/{commandId}", + "code": 200 + } + } + }, + "com.amazonaws.iot#CreateCommandRequest": { + "type": "structure", + "members": { + "commandId": { + "target": "com.amazonaws.iot#CommandId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the command. We recommend using UUID. Alpha-numeric\n characters, hyphens, and underscores are valid for use here.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "namespace": { + "target": "com.amazonaws.iot#CommandNamespace", + "traits": { + "smithy.api#documentation": "

The namespace of the command. The MQTT reserved topics and validations will be used\n for command executions according to the namespace setting.

" + } + }, + "displayName": { + "target": "com.amazonaws.iot#DisplayName", + "traits": { + "smithy.api#documentation": "

The user-friendly name in the console for the command. This name doesn't have to be\n unique. You can update the user-friendly name after you define it.

" + } + }, + "description": { + "target": "com.amazonaws.iot#CommandDescription", + "traits": { + "smithy.api#documentation": "

A short text decription of the command.

" + } + }, + "payload": { + "target": "com.amazonaws.iot#CommandPayload", + "traits": { + "smithy.api#documentation": "

The payload object for the command. You must specify this information when using\n the AWS-IoT namespace.

\n

You can upload a static payload file from your local storage that contains the \n instructions for the device to process. The payload file can use any format. To\n make sure that the device correctly interprets the payload, we recommend you to\n specify the payload content type.

" + } + }, + "mandatoryParameters": { + "target": "com.amazonaws.iot#CommandParameterList", + "traits": { + "smithy.api#documentation": "

A list of parameters that are required by the StartCommandExecution API.\n These parameters need to be specified only when using the AWS-IoT-FleetWise\n namespace. You can either specify them here or when running the command using the\n StartCommandExecution API.

" + } + }, + "roleArn": { + "target": "com.amazonaws.iot#RoleArn", + "traits": { + "smithy.api#documentation": "

The IAM role that allows access to create the command.

" + } + }, + "tags": { + "target": "com.amazonaws.iot#TagList", + "traits": { + "smithy.api#documentation": "

Name-value pairs that are used as metadata to manage a command.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iot#CreateCommandResponse": { + "type": "structure", + "members": { + "commandId": { + "target": "com.amazonaws.iot#CommandId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the command.

" + } + }, + "commandArn": { + "target": "com.amazonaws.iot#CommandArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the command. For example,\n arn:aws:iot:::command/\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iot#CreateCustomMetric": { "type": "operation", "input": { @@ -7607,7 +8186,7 @@ "jobId": { "target": "com.amazonaws.iot#JobId", "traits": { - "smithy.api#documentation": "

A job identifier which must be unique for your Amazon Web Services account. We recommend using a UUID. Alpha-numeric\n characters, \"-\" and \"_\" are valid for use here.

", + "smithy.api#documentation": "

A job identifier which must be unique for your account. We recommend using a UUID.\n Alpha-numeric characters, \"-\" and \"_\" are valid for use here.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7622,13 +8201,13 @@ "documentSource": { "target": "com.amazonaws.iot#JobDocumentSource", "traits": { - "smithy.api#documentation": "

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 object URL and is required if you don't specify a value for document.

\n

For example, --document-source https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0\n

\n

For more information, see Methods for accessing a bucket.

" + "smithy.api#documentation": "

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 object URL\n and is required if you don't specify a value for document.

\n

For example, --document-source\n https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0\n

\n

For more information, see Methods for accessing a\n bucket.

" } }, "document": { "target": "com.amazonaws.iot#JobDocument", "traits": { - "smithy.api#documentation": "

The job document. Required if you don't specify a value for documentSource.

" + "smithy.api#documentation": "

The job document. Required if you don't specify a value for\n documentSource.

" } }, "description": { @@ -7646,7 +8225,7 @@ "targetSelection": { "target": "com.amazonaws.iot#TargetSelection", "traits": { - "smithy.api#documentation": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things\n specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing\n when a change is detected in a target. For example, a job will run on a thing when the thing is added to a\n target group, even after the job was completed by all things originally in the group.

\n \n

We recommend that you use continuous jobs instead of snapshot jobs for dynamic thing group targets. \n By using continuous jobs, devices that join the group receive the job execution even after the job has\n been created.

\n
" + "smithy.api#documentation": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete\n after all those things specified as targets have completed the job (SNAPSHOT). If\n continuous, the job may also be run on a thing when a change is detected in a target.\n For example, a job will run on a thing when the thing is added to a target group, even\n after the job was completed by all things originally in the group.

\n \n

We recommend that you use continuous jobs instead of snapshot jobs for dynamic\n thing group targets. By using continuous jobs, devices that join the group receive\n the job execution even after the job has been created.

\n
" } }, "jobExecutionsRolloutConfig": { @@ -7664,7 +8243,7 @@ "timeoutConfig": { "target": "com.amazonaws.iot#TimeoutConfig", "traits": { - "smithy.api#documentation": "

Specifies the amount of time each device has to finish its execution of the job. The timer \n is started when the job execution status is set to IN_PROGRESS. If the job \n execution status is not set to another terminal state before the time expires, it will be \n automatically set to TIMED_OUT.

" + "smithy.api#documentation": "

Specifies the amount of time each device has to finish its execution of the job. The\n timer is started when the job execution status is set to IN_PROGRESS. If\n the job execution status is not set to another terminal state before the time expires,\n it will be automatically set to TIMED_OUT.

" } }, "tags": { @@ -7676,7 +8255,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
" + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to\n MQTT topics that contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at this time. For\n more information, see Setting up IoT Greengrass core devices.\n

\n
" } }, "jobTemplateArn": { @@ -7694,7 +8273,7 @@ "documentParameters": { "target": "com.amazonaws.iot#ParameterMap", "traits": { - "smithy.api#documentation": "

Parameters of an Amazon Web Services managed template that you can specify to create the job document.

\n \n

\n documentParameters can only be used when creating jobs from Amazon Web Services \n managed templates. This parameter can't be used with custom job templates or to \n create jobs from them.

\n
" + "smithy.api#documentation": "

Parameters of an Amazon Web Services managed template that you can specify to create the job\n document.

\n \n

\n documentParameters can only be used when creating jobs from Amazon Web Services\n managed templates. This parameter can't be used with custom job templates or to\n create jobs from them.

\n
" } }, "schedulingConfig": { @@ -7706,7 +8285,7 @@ "destinationPackageVersions": { "target": "com.amazonaws.iot#DestinationPackageVersions", "traits": { - "smithy.api#documentation": "

The package version Amazon Resource Names (ARNs) that are installed on the device when the \n job successfully completes. The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.

\n

\n Note:The following Length Constraints relates to a single ARN. \n Up to 25 package version ARNs are allowed.

" + "smithy.api#documentation": "

The package version Amazon Resource Names (ARNs) that are installed on the device when the job\n successfully completes. The package version must be in either the Published or\n Deprecated state when the job deploys. For more information, see Package version lifecycle.

\n

\n Note:The following Length Constraints relates to a\n single ARN. Up to 25 package version ARNs are allowed.

" } } }, @@ -7783,7 +8362,7 @@ "jobTemplateId": { "target": "com.amazonaws.iot#JobTemplateId", "traits": { - "smithy.api#documentation": "

A unique identifier for the job template. We recommend using a UUID. Alpha-numeric \n characters, \"-\", and \"_\" are valid for use here.

", + "smithy.api#documentation": "

A unique identifier for the job template. We recommend using a UUID. Alpha-numeric\n characters, \"-\", and \"_\" are valid for use here.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7797,13 +8376,13 @@ "documentSource": { "target": "com.amazonaws.iot#JobDocumentSource", "traits": { - "smithy.api#documentation": "

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 object URL and is required if you don't specify a value for document.

\n

For example, --document-source https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0\n

\n

For more information, see Methods for accessing a bucket.

" + "smithy.api#documentation": "

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 object URL\n and is required if you don't specify a value for document.

\n

For example, --document-source\n https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0\n

\n

For more information, see Methods for accessing a\n bucket.

" } }, "document": { "target": "com.amazonaws.iot#JobDocument", "traits": { - "smithy.api#documentation": "

The job document. Required if you don't specify a value for documentSource.

" + "smithy.api#documentation": "

The job document. Required if you don't specify a value for\n documentSource.

" } }, "description": { @@ -7840,13 +8419,13 @@ "maintenanceWindows": { "target": "com.amazonaws.iot#MaintenanceWindows", "traits": { - "smithy.api#documentation": "

Allows you to configure an optional maintenance window for the rollout of a job document to all devices in the target group for a job.

" + "smithy.api#documentation": "

Allows you to configure an optional maintenance window for the rollout of a job\n document to all devices in the target group for a job.

" } }, "destinationPackageVersions": { "target": "com.amazonaws.iot#DestinationPackageVersions", "traits": { - "smithy.api#documentation": "

The package version Amazon Resource Names (ARNs) that are installed on the device when the \n job successfully completes. The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.

\n

\n Note:The following Length Constraints relates to a single ARN. \n Up to 25 package version ARNs are allowed.

" + "smithy.api#documentation": "

The package version Amazon Resource Names (ARNs) that are installed on the device when the job\n successfully completes. The package version must be in either the Published or\n Deprecated state when the job deploys. For more information, see Package version lifecycle.

\n

\n Note:The following Length Constraints relates to a\n single ARN. Up to 25 package version ARNs are allowed.

" } } }, @@ -10443,6 +11022,131 @@ "smithy.api#input": {} } }, + "com.amazonaws.iot#DeleteCommand": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#DeleteCommandRequest" + }, + "output": { + "target": "com.amazonaws.iot#DeleteCommandResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#ConflictException" + }, + { + "target": "com.amazonaws.iot#InternalServerException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Delete a command resource.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/commands/{commandId}", + "code": 200 + } + } + }, + "com.amazonaws.iot#DeleteCommandExecution": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#DeleteCommandExecutionRequest" + }, + "output": { + "target": "com.amazonaws.iot#DeleteCommandExecutionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#ConflictException" + }, + { + "target": "com.amazonaws.iot#InternalServerException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Delete a command execution.

\n \n

Only command executions that enter a terminal state can be deleted from\n your account.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/command-executions/{executionId}", + "code": 200 + } + } + }, + "com.amazonaws.iot#DeleteCommandExecutionRequest": { + "type": "structure", + "members": { + "executionId": { + "target": "com.amazonaws.iot#CommandExecutionId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the command execution that you want to delete from your\n account.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "targetArn": { + "target": "com.amazonaws.iot#TargetArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the target device for which you want to delete\n command executions.

", + "smithy.api#httpQuery": "targetArn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iot#DeleteCommandExecutionResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iot#DeleteCommandRequest": { + "type": "structure", + "members": { + "commandId": { + "target": "com.amazonaws.iot#CommandId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the command to be deleted.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iot#DeleteCommandResponse": { + "type": "structure", + "members": { + "statusCode": { + "target": "com.amazonaws.iot#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The status code for the command deletion request. The status code is in the 200 range\n for a successful request.

\n ", + "smithy.api#httpResponseCode": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iot#DeleteConflictException": { "type": "structure", "members": { @@ -10771,7 +11475,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a job and its related job executions.

\n

Deleting a job may take time, depending on the number of job\n executions created for the job and various other factors. While the job\n is being deleted, the status of the job will be shown as \n \"DELETION_IN_PROGRESS\". Attempting to delete or cancel a job whose status \n is already \"DELETION_IN_PROGRESS\" will result in an error.

\n

Only 10 jobs may have status \"DELETION_IN_PROGRESS\" at the same time, or\n a LimitExceededException will occur.

\n

Requires permission to access the DeleteJob action.

", + "smithy.api#documentation": "

Deletes a job and its related job executions.

\n

Deleting a job may take time, depending on the number of job executions created for\n the job and various other factors. While the job is being deleted, the status of the job\n will be shown as \"DELETION_IN_PROGRESS\". Attempting to delete or cancel a job whose\n status is already \"DELETION_IN_PROGRESS\" will result in an error.

\n

Only 10 jobs may have status \"DELETION_IN_PROGRESS\" at the same time, or a\n LimitExceededException will occur.

\n

Requires permission to access the DeleteJob action.

", "smithy.api#http": { "method": "DELETE", "uri": "/jobs/{jobId}", @@ -10835,7 +11539,7 @@ "executionNumber": { "target": "com.amazonaws.iot#ExecutionNumber", "traits": { - "smithy.api#documentation": "

The ID of the job execution to be deleted. The executionNumber refers to the \n execution of a particular job on a particular device.

\n

Note that once a job execution is deleted, the executionNumber may be reused \n by IoT, so be sure you get and use the correct value here.

", + "smithy.api#documentation": "

The ID of the job execution to be deleted. The executionNumber refers\n to the execution of a particular job on a particular device.

\n

Note that once a job execution is deleted, the executionNumber may be\n reused by IoT, so be sure you get and use the correct value here.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10844,14 +11548,14 @@ "target": "com.amazonaws.iot#ForceFlag", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

(Optional) When true, you can delete a job execution which is \"IN_PROGRESS\". Otherwise, \n you can only delete a job execution which is in a terminal state (\"SUCCEEDED\", \"FAILED\",\n \"REJECTED\", \"REMOVED\" or \"CANCELED\") or an exception will occur. The default is false.

\n \n

Deleting a job execution which is \"IN_PROGRESS\", will cause the device \n to be unable to access job information or update the job execution status.\n Use caution and ensure that the device is able to recover to a valid state.

\n
", + "smithy.api#documentation": "

(Optional) When true, you can delete a job execution which is \"IN_PROGRESS\".\n Otherwise, you can only delete a job execution which is in a terminal state\n (\"SUCCEEDED\", \"FAILED\", \"REJECTED\", \"REMOVED\" or \"CANCELED\") or an exception will occur.\n The default is false.

\n \n

Deleting a job execution which is \"IN_PROGRESS\", will cause the device to be\n unable to access job information or update the job execution status. Use caution and\n ensure that the device is able to recover to a valid state.

\n
", "smithy.api#httpQuery": "force" } }, "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to\n MQTT topics that contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at this time. For\n more information, see Setting up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -10866,7 +11570,7 @@ "jobId": { "target": "com.amazonaws.iot#JobId", "traits": { - "smithy.api#documentation": "

The ID of the job to be deleted.

\n

After a job deletion is completed, you may reuse this jobId when you create a new job. \n However, this is not recommended, and you must ensure that your devices are not using the \n jobId to refer to the deleted job.

", + "smithy.api#documentation": "

The ID of the job to be deleted.

\n

After a job deletion is completed, you may reuse this jobId when you create a new\n job. However, this is not recommended, and you must ensure that your devices are not\n using the jobId to refer to the deleted job.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10875,14 +11579,14 @@ "target": "com.amazonaws.iot#ForceFlag", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

(Optional) When true, you can delete a job which is \"IN_PROGRESS\". Otherwise, you can\n only delete a job which is in a terminal state (\"COMPLETED\" or \"CANCELED\") or an exception \n will occur. The default is false.

\n \n

Deleting a job which is \"IN_PROGRESS\", will cause a device which is executing \n the job to be unable to access job information or update the job execution status.\n Use caution and ensure that each device executing a job which is deleted is able to recover to \n a valid state.

\n
", + "smithy.api#documentation": "

(Optional) When true, you can delete a job which is \"IN_PROGRESS\". Otherwise, you\n can only delete a job which is in a terminal state (\"COMPLETED\" or \"CANCELED\") or an\n exception will occur. The default is false.

\n \n

Deleting a job which is \"IN_PROGRESS\", will cause a device which is executing\n the job to be unable to access job information or update the job execution status.\n Use caution and ensure that each device executing a job which is deleted is able to\n recover to a valid state.

\n
", "smithy.api#httpQuery": "force" } }, "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to\n MQTT topics that contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at this time. For\n more information, see Setting up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -12211,6 +12915,9 @@ "com.amazonaws.iot#DeprecationDate": { "type": "timestamp" }, + "com.amazonaws.iot#DeprecationFlag": { + "type": "boolean" + }, "com.amazonaws.iot#DescribeAccountAuditConfiguration": { "type": "operation", "input": { @@ -13867,7 +14574,7 @@ "executionNumber": { "target": "com.amazonaws.iot#ExecutionNumber", "traits": { - "smithy.api#documentation": "

A string (consisting of the digits \"0\" through \"9\" which is used to specify a particular job execution\n on a particular device.

", + "smithy.api#documentation": "

A string (consisting of the digits \"0\" through \"9\" which is used to specify a\n particular job execution on a particular device.

", "smithy.api#httpQuery": "executionNumber" } } @@ -13905,7 +14612,7 @@ "target": "com.amazonaws.iot#BeforeSubstitutionFlag", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

A flag that provides a view of the job document before and after the substitution parameters have been resolved with their exact values.

", + "smithy.api#documentation": "

Provides a view of the job document before and after the substitution parameters have been resolved with their exact values.

", "smithy.api#httpQuery": "beforeSubstitution" } } @@ -14041,13 +14748,13 @@ "maintenanceWindows": { "target": "com.amazonaws.iot#MaintenanceWindows", "traits": { - "smithy.api#documentation": "

Allows you to configure an optional maintenance window for the rollout of a job document to all devices in the target group for a job.

" + "smithy.api#documentation": "

Allows you to configure an optional maintenance window for the rollout of a job\n document to all devices in the target group for a job.

" } }, "destinationPackageVersions": { "target": "com.amazonaws.iot#DestinationPackageVersions", "traits": { - "smithy.api#documentation": "

The package version Amazon Resource Names (ARNs) that are installed on the device when the \n job successfully completes. The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.

\n

\n Note:The following Length Constraints relates to a single ARN. \n Up to 25 package version ARNs are allowed.

" + "smithy.api#documentation": "

The package version Amazon Resource Names (ARNs) that are installed on the device when the job\n successfully completes. The package version must be in either the Published or\n Deprecated state when the job deploys. For more information, see Package version lifecycle.

\n

\n Note:The following Length Constraints relates to a\n single ARN. Up to 25 package version ARNs are allowed.

" } } }, @@ -14100,7 +14807,7 @@ "templateVersion": { "target": "com.amazonaws.iot#ManagedTemplateVersion", "traits": { - "smithy.api#documentation": "

An optional parameter to specify version of a managed template. If not specified, the \n pre-defined default version is returned.

", + "smithy.api#documentation": "

An optional parameter to specify version of a managed template. If not specified, the\n pre-defined default version is returned.

", "smithy.api#httpQuery": "templateVersion" } } @@ -14145,7 +14852,7 @@ "documentParameters": { "target": "com.amazonaws.iot#DocumentParameters", "traits": { - "smithy.api#documentation": "

A map of key-value pairs that you can use as guidance to specify the inputs for creating \n a job from a managed template.

\n \n

\n documentParameters can only be used when creating jobs from Amazon Web Services \n managed templates. This parameter can't be used with custom job templates or to \n create jobs from them.

\n
" + "smithy.api#documentation": "

A map of key-value pairs that you can use as guidance to specify the inputs for\n creating a job from a managed template.

\n \n

\n documentParameters can only be used when creating jobs from Amazon Web Services\n managed templates. This parameter can't be used with custom job templates or to\n create jobs from them.

\n
" } }, "document": { @@ -16095,6 +16802,16 @@ "com.amazonaws.iot#DisconnectReason": { "type": "string" }, + "com.amazonaws.iot#DisplayName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 64 + }, + "smithy.api#pattern": "^[^\\p{C}]*$" + } + }, "com.amazonaws.iot#DocumentParameter": { "type": "structure", "members": { @@ -16107,31 +16824,31 @@ "description": { "target": "com.amazonaws.iot#JobDescription", "traits": { - "smithy.api#documentation": "

Description of the map field containing the patterns that need to be replaced in a \n managed template job document schema.

" + "smithy.api#documentation": "

Description of the map field containing the patterns that need to be replaced in a\n managed template job document schema.

" } }, "regex": { "target": "com.amazonaws.iot#Regex", "traits": { - "smithy.api#documentation": "

A regular expression of the patterns that need to be replaced in a managed template \n job document schema.

" + "smithy.api#documentation": "

A regular expression of the patterns that need to be replaced in a managed template\n job document schema.

" } }, "example": { "target": "com.amazonaws.iot#Example", "traits": { - "smithy.api#documentation": "

An example illustrating a pattern that need to be replaced in a managed template \n job document schema.

" + "smithy.api#documentation": "

An example illustrating a pattern that need to be replaced in a managed template job\n document schema.

" } }, "optional": { "target": "com.amazonaws.iot#Optional", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Specifies whether a pattern that needs to be replaced in a managed template job document \n schema is optional or required.

" + "smithy.api#documentation": "

Specifies whether a pattern that needs to be replaced in a managed template job\n document schema is optional or required.

" } } }, "traits": { - "smithy.api#documentation": "

A map of key-value pairs containing the patterns that need to be replaced in a managed\n template job document schema. You can use the description of each key as a guidance to specify \n the inputs during runtime when creating a job.

\n \n

\n documentParameters can only be used when creating jobs from Amazon Web Services \n managed templates. This parameter can't be used with custom job templates or to \n create jobs from them.

\n
" + "smithy.api#documentation": "

A map of key-value pairs containing the patterns that need to be replaced in a managed\n template job document schema. You can use the description of each key as a guidance to\n specify the inputs during runtime when creating a job.

\n \n

\n documentParameters can only be used when creating jobs from Amazon Web Services\n managed templates. This parameter can't be used with custom job templates or to\n create jobs from them.

\n
" } }, "com.amazonaws.iot#DocumentParameters": { @@ -16235,6 +16952,9 @@ } } }, + "com.amazonaws.iot#DoubleParameterValue": { + "type": "double" + }, "com.amazonaws.iot#DurationInMinutes": { "type": "integer", "traits": { @@ -16758,14 +17478,14 @@ "baseRatePerMinute": { "target": "com.amazonaws.iot#RolloutRatePerMinute", "traits": { - "smithy.api#documentation": "

The minimum number of things that will be notified of a pending job, per minute at the start of job rollout.\n This parameter allows you to define the initial rate of rollout.

", + "smithy.api#documentation": "

The minimum number of things that will be notified of a pending job, per minute at\n the start of job rollout. This parameter allows you to define the initial rate of\n rollout.

", "smithy.api#required": {} } }, "incrementFactor": { "target": "com.amazonaws.iot#IncrementFactor", "traits": { - "smithy.api#documentation": "

The exponential factor to increase the rate of rollout for a job.

\n

Amazon Web Services IoT Core supports up to one digit after the decimal (for example, 1.5, but not 1.55).

", + "smithy.api#documentation": "

The exponential factor to increase the rate of rollout for a job.

\n

Amazon Web Services IoT Core supports up to one digit after the decimal (for example, 1.5, but not\n 1.55).

", "smithy.api#required": {} } }, @@ -17523,6 +18243,281 @@ "smithy.api#output": {} } }, + "com.amazonaws.iot#GetCommand": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#GetCommandRequest" + }, + "output": { + "target": "com.amazonaws.iot#GetCommandResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#InternalServerException" + }, + { + "target": "com.amazonaws.iot#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information about the specified command.

", + "smithy.api#http": { + "method": "GET", + "uri": "/commands/{commandId}", + "code": 200 + } + } + }, + "com.amazonaws.iot#GetCommandExecution": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#GetCommandExecutionRequest" + }, + "output": { + "target": "com.amazonaws.iot#GetCommandExecutionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#InternalServerException" + }, + { + "target": "com.amazonaws.iot#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information about the specific command execution on a single device.

", + "smithy.api#http": { + "method": "GET", + "uri": "/command-executions/{executionId}", + "code": 200 + } + } + }, + "com.amazonaws.iot#GetCommandExecutionRequest": { + "type": "structure", + "members": { + "executionId": { + "target": "com.amazonaws.iot#CommandExecutionId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the command execution. This information is returned as a\n response of the StartCommandExecution API request.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "targetArn": { + "target": "com.amazonaws.iot#TargetArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the device on which the command execution is being\n performed.

", + "smithy.api#httpQuery": "targetArn", + "smithy.api#required": {} + } + }, + "includeResult": { + "target": "com.amazonaws.iot#BooleanWrapperObject", + "traits": { + "smithy.api#documentation": "

Can be used to specify whether to include the result of the command execution\n in the GetCommandExecution API response. Your device can use this\n field to provide additional information about the command execution. You only\n need to specify this field when using the AWS-IoT namespace.

", + "smithy.api#httpQuery": "includeResult" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iot#GetCommandExecutionResponse": { + "type": "structure", + "members": { + "executionId": { + "target": "com.amazonaws.iot#CommandExecutionId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the command execution.

" + } + }, + "commandArn": { + "target": "com.amazonaws.iot#CommandArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the command. For example,\n arn:aws:iot:::command/

" + } + }, + "targetArn": { + "target": "com.amazonaws.iot#TargetArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the device on which the command execution is being\n performed.

" + } + }, + "status": { + "target": "com.amazonaws.iot#CommandExecutionStatus", + "traits": { + "smithy.api#documentation": "

The status of the command execution. After your devices receive the command and start\n performing the operations specified in the command, it can use the\n UpdateCommandExecution MQTT API to update the status\n information.

" + } + }, + "statusReason": { + "target": "com.amazonaws.iot#StatusReason", + "traits": { + "smithy.api#documentation": "

Your devices can use this parameter to provide additional context about the status of\n a command execution using a reason code and description.

" + } + }, + "result": { + "target": "com.amazonaws.iot#CommandExecutionResultMap", + "traits": { + "smithy.api#documentation": "

The result value for the current state of the command execution. The status provides\n information about the progress of the command execution. The device can use the result\n field to share additional details about the execution such as a return value of a remote\n function call.

\n \n

If you use the AWS-IoT-FleetWise namespace, then this field is not\n applicable in the API response.

\n
" + } + }, + "parameters": { + "target": "com.amazonaws.iot#CommandExecutionParameterMap", + "traits": { + "smithy.api#documentation": "

The list of parameters that the StartCommandExecution API used when\n performing the command on the device.

" + } + }, + "executionTimeoutSeconds": { + "target": "com.amazonaws.iot#CommandExecutionTimeoutInSeconds", + "traits": { + "smithy.api#documentation": "

Specifies the amount of time in seconds that the device can take to finish a command\n execution. A timer starts when the command execution is created. If the command\n execution status is not set to another terminal state before the timer expires, it will\n automatically update to TIMED_OUT.

" + } + }, + "createdAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The timestamp, when the command execution was created.

" + } + }, + "lastUpdatedAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The timestamp, when the command execution was last updated.

" + } + }, + "startedAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The timestamp, when the command execution was started.

" + } + }, + "completedAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The timestamp, when the command execution was completed.

" + } + }, + "timeToLive": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The time to live (TTL) parameter for the GetCommandExecution API.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iot#GetCommandRequest": { + "type": "structure", + "members": { + "commandId": { + "target": "com.amazonaws.iot#CommandId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the command for which you want to retrieve\n information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iot#GetCommandResponse": { + "type": "structure", + "members": { + "commandId": { + "target": "com.amazonaws.iot#CommandId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the command.

" + } + }, + "commandArn": { + "target": "com.amazonaws.iot#CommandArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the command. For example,\n arn:aws:iot:::command/\n

" + } + }, + "namespace": { + "target": "com.amazonaws.iot#CommandNamespace", + "traits": { + "smithy.api#documentation": "

The namespace of the command.

" + } + }, + "displayName": { + "target": "com.amazonaws.iot#DisplayName", + "traits": { + "smithy.api#documentation": "

The user-friendly name in the console for the command.

" + } + }, + "description": { + "target": "com.amazonaws.iot#CommandDescription", + "traits": { + "smithy.api#documentation": "

A short text description of the command.

" + } + }, + "mandatoryParameters": { + "target": "com.amazonaws.iot#CommandParameterList", + "traits": { + "smithy.api#documentation": "

A list of parameters for the command created.

" + } + }, + "payload": { + "target": "com.amazonaws.iot#CommandPayload", + "traits": { + "smithy.api#documentation": "

The payload object that you provided for the command.

" + } + }, + "roleArn": { + "target": "com.amazonaws.iot#RoleArn", + "traits": { + "smithy.api#documentation": "

The IAM role that allows access to retrieve information about the command.

" + } + }, + "createdAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The timestamp, when the command was created.

" + } + }, + "lastUpdatedAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The timestamp, when the command was last updated.

" + } + }, + "deprecated": { + "target": "com.amazonaws.iot#DeprecationFlag", + "traits": { + "smithy.api#documentation": "

Indicates whether the command has been deprecated.

" + } + }, + "pendingDeletion": { + "target": "com.amazonaws.iot#BooleanWrapperObject", + "traits": { + "smithy.api#documentation": "

Indicates whether the command is being deleted.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iot#GetEffectivePolicies": { "type": "operation", "input": { @@ -17711,7 +18706,7 @@ "target": "com.amazonaws.iot#BeforeSubstitutionFlag", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

A flag that provides a view of the job document before and after the substitution parameters have been resolved with their exact values.

", + "smithy.api#documentation": "

Provides a view of the job document before and after the substitution parameters have been resolved with their exact values.

", "smithy.api#httpQuery": "beforeSubstitution" } } @@ -19148,6 +20143,9 @@ } } }, + "com.amazonaws.iot#IntegerParameterValue": { + "type": "integer" + }, "com.amazonaws.iot#InternalException": { "type": "structure", "members": { @@ -19435,7 +20433,7 @@ "jobArn": { "target": "com.amazonaws.iot#JobArn", "traits": { - "smithy.api#documentation": "

An ARN identifying the job with format \"arn:aws:iot:region:account:job/jobId\".

" + "smithy.api#documentation": "

An ARN identifying the job with format\n \"arn:aws:iot:region:account:job/jobId\".

" } }, "jobId": { @@ -19447,19 +20445,19 @@ "targetSelection": { "target": "com.amazonaws.iot#TargetSelection", "traits": { - "smithy.api#documentation": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things\n specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing\n when a change is detected in a target. For example, a job will run on a device when the thing representing\n the device is added to a target group, even after the job was completed by all things originally in the \n group.

\n \n

We recommend that you use continuous jobs instead of snapshot jobs for dynamic thing group targets. \n By using continuous jobs, devices that join the group receive the job execution even after the job has\n been created.

\n
" + "smithy.api#documentation": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete\n after all those things specified as targets have completed the job (SNAPSHOT). If\n continuous, the job may also be run on a thing when a change is detected in a target.\n For example, a job will run on a device when the thing representing the device is added\n to a target group, even after the job was completed by all things originally in the\n group.

\n \n

We recommend that you use continuous jobs instead of snapshot jobs for dynamic\n thing group targets. By using continuous jobs, devices that join the group receive\n the job execution even after the job has been created.

\n
" } }, "status": { "target": "com.amazonaws.iot#JobStatus", "traits": { - "smithy.api#documentation": "

The status of the job, one of IN_PROGRESS, CANCELED, \n DELETION_IN_PROGRESS or COMPLETED.

" + "smithy.api#documentation": "

The status of the job, one of IN_PROGRESS, CANCELED,\n DELETION_IN_PROGRESS or COMPLETED.

" } }, "forceCanceled": { "target": "com.amazonaws.iot#Forced", "traits": { - "smithy.api#documentation": "

Will be true if the job was canceled with the optional force parameter set to \n true.

" + "smithy.api#documentation": "

Will be true if the job was canceled with the optional\n force parameter set to true.

" } }, "reasonCode": { @@ -19531,13 +20529,13 @@ "timeoutConfig": { "target": "com.amazonaws.iot#TimeoutConfig", "traits": { - "smithy.api#documentation": "

Specifies the amount of time each device has to finish its execution of the job. A timer \n is started when the job execution status is set to IN_PROGRESS. If the job \n execution status is not set to another terminal state before the timer expires, it will\n be automatically set to TIMED_OUT.

" + "smithy.api#documentation": "

Specifies the amount of time each device has to finish its execution of the job. A\n timer is started when the job execution status is set to IN_PROGRESS. If\n the job execution status is not set to another terminal state before the timer expires,\n it will be automatically set to TIMED_OUT.

" } }, "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
" + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to\n MQTT topics that contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at this time. For\n more information, see Setting up IoT Greengrass core devices.\n

\n
" } }, "jobTemplateArn": { @@ -19555,13 +20553,13 @@ "documentParameters": { "target": "com.amazonaws.iot#ParameterMap", "traits": { - "smithy.api#documentation": "

A key-value map that pairs the patterns that need to be replaced in a managed \n template job document schema. You can use the description of each key as a guidance \n to specify the inputs during runtime when creating a job.

\n \n

\n documentParameters can only be used when creating jobs from Amazon Web Services \n managed templates. This parameter can't be used with custom job templates or to \n create jobs from them.

\n
" + "smithy.api#documentation": "

A key-value map that pairs the patterns that need to be replaced in a managed\n template job document schema. You can use the description of each key as a guidance to\n specify the inputs during runtime when creating a job.

\n \n

\n documentParameters can only be used when creating jobs from Amazon Web Services\n managed templates. This parameter can't be used with custom job templates or to\n create jobs from them.

\n
" } }, "isConcurrent": { "target": "com.amazonaws.iot#BooleanWrapperObject", "traits": { - "smithy.api#documentation": "

Indicates whether a job is concurrent. Will be true when a job is \n rolling out new job executions or canceling previously created executions,\n otherwise false.

" + "smithy.api#documentation": "

Indicates whether a job is concurrent. Will be true when a job is rolling out new job\n executions or canceling previously created executions, otherwise false.

" } }, "schedulingConfig": { @@ -19579,7 +20577,7 @@ "destinationPackageVersions": { "target": "com.amazonaws.iot#DestinationPackageVersions", "traits": { - "smithy.api#documentation": "

The package version Amazon Resource Names (ARNs) that are installed on the device when the \n job successfully completes. The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.

\n

\n Note:The following Length Constraints relates to a single ARN. \n Up to 25 package version ARNs are allowed.

" + "smithy.api#documentation": "

The package version Amazon Resource Names (ARNs) that are installed on the device when the job\n successfully completes. The package version must be in either the Published or\n Deprecated state when the job deploys. For more information, see Package version lifecycle.The package version must be in either the\n Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.

\n

\n Note:The following Length Constraints relates to a\n single ARN. Up to 25 package version ARNs are allowed.

" } } }, @@ -19653,19 +20651,19 @@ "status": { "target": "com.amazonaws.iot#JobExecutionStatus", "traits": { - "smithy.api#documentation": "

The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCEEDED, TIMED_OUT, \n CANCELED, or REJECTED).

" + "smithy.api#documentation": "

The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCEEDED, TIMED_OUT,\n CANCELED, or REJECTED).

" } }, "forceCanceled": { "target": "com.amazonaws.iot#Forced", "traits": { - "smithy.api#documentation": "

Will be true if the job execution was canceled with the optional force \n parameter set to true.

" + "smithy.api#documentation": "

Will be true if the job execution was canceled with the optional\n force parameter set to true.

" } }, "statusDetails": { "target": "com.amazonaws.iot#JobExecutionStatusDetails", "traits": { - "smithy.api#documentation": "

A collection of name/value pairs that describe the status of the job execution.

" + "smithy.api#documentation": "

A collection of name/value pairs that describe the status of the job\n execution.

" } }, "thingArn": { @@ -19689,31 +20687,31 @@ "lastUpdatedAt": { "target": "com.amazonaws.iot#DateType", "traits": { - "smithy.api#documentation": "

The time, in seconds since the epoch, when the job execution was last updated.

" + "smithy.api#documentation": "

The time, in seconds since the epoch, when the job execution was last\n updated.

" } }, "executionNumber": { "target": "com.amazonaws.iot#ExecutionNumber", "traits": { - "smithy.api#documentation": "

A string (consisting of the digits \"0\" through \"9\") which identifies this particular job execution on\n this particular device. It can be used in commands which return or update job execution information.\n

" + "smithy.api#documentation": "

A string (consisting of the digits \"0\" through \"9\") which identifies this\n particular job execution on this particular device. It can be used in commands which\n return or update job execution information.

" } }, "versionNumber": { "target": "com.amazonaws.iot#VersionNumber", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The version of the job execution. Job execution versions are incremented each time they are updated\n by a device.

" + "smithy.api#documentation": "

The version of the job execution. Job execution versions are incremented each time\n they are updated by a device.

" } }, "approximateSecondsBeforeTimedOut": { "target": "com.amazonaws.iot#ApproximateSecondsBeforeTimedOut", "traits": { - "smithy.api#documentation": "

The estimated number of seconds that remain before the job execution status will be\n changed to TIMED_OUT. The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080 minutes). \n The actual job execution timeout can occur up to 60 seconds later than the estimated duration. \n This value will not be included if the job execution has reached a terminal status.

" + "smithy.api#documentation": "

The estimated number of seconds that remain before the job execution status will be\n changed to TIMED_OUT. The timeout interval can be anywhere between 1 minute\n and 7 days (1 to 10080 minutes). The actual job execution timeout can occur up to 60\n seconds later than the estimated duration. This value will not be included if the job\n execution has reached a terminal status.

" } } }, "traits": { - "smithy.api#documentation": "

The job execution object represents the execution of a job on a particular device.

" + "smithy.api#documentation": "

The job execution object represents the execution of a job on a particular\n device.

" } }, "com.amazonaws.iot#JobExecutionFailureType": { @@ -19836,19 +20834,19 @@ "lastUpdatedAt": { "target": "com.amazonaws.iot#DateType", "traits": { - "smithy.api#documentation": "

The time, in seconds since the epoch, when the job execution was last updated.

" + "smithy.api#documentation": "

The time, in seconds since the epoch, when the job execution was last\n updated.

" } }, "executionNumber": { "target": "com.amazonaws.iot#ExecutionNumber", "traits": { - "smithy.api#documentation": "

A string (consisting of the digits \"0\" through \"9\") which identifies this particular job execution on\n this particular device. It can be used later in commands which return or update job execution\n information.

" + "smithy.api#documentation": "

A string (consisting of the digits \"0\" through \"9\") which identifies this\n particular job execution on this particular device. It can be used later in commands\n which return or update job execution information.

" } }, "retryAttempt": { "target": "com.amazonaws.iot#RetryAttempt", "traits": { - "smithy.api#documentation": "

The number that indicates how many retry attempts have been completed for this \n job on this device.

" + "smithy.api#documentation": "

The number that indicates how many retry attempts have been completed for this job on\n this device.

" } } }, @@ -19873,7 +20871,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains a summary of information about job executions for a specific job.

" + "smithy.api#documentation": "

Contains a summary of information about job executions for a specific\n job.

" } }, "com.amazonaws.iot#JobExecutionSummaryForJobList": { @@ -19920,7 +20918,7 @@ } }, "traits": { - "smithy.api#documentation": "

The configuration that determines how many retries are allowed for each failure \n type for a job.

" + "smithy.api#documentation": "

The configuration that determines how many retries are allowed for each failure type\n for a job.

" } }, "com.amazonaws.iot#JobExecutionsRolloutConfig": { @@ -19929,13 +20927,13 @@ "maximumPerMinute": { "target": "com.amazonaws.iot#MaxJobExecutionsPerMin", "traits": { - "smithy.api#documentation": "

The maximum number of things that will be notified of a pending job, per minute.\n This parameter allows you to create a staged rollout.

" + "smithy.api#documentation": "

The maximum number of things that will be notified of a pending job, per minute.\n This parameter allows you to create a staged rollout.

" } }, "exponentialRate": { "target": "com.amazonaws.iot#ExponentialRolloutRate", "traits": { - "smithy.api#documentation": "

The rate of increase for a job rollout.\n This parameter allows you to define an exponential rate for a job rollout.

" + "smithy.api#documentation": "

The rate of increase for a job rollout. This parameter allows you to define an\n exponential rate for a job rollout.

" } } }, @@ -19959,7 +20957,7 @@ "processingTargets": { "target": "com.amazonaws.iot#ProcessingTargetNameList", "traits": { - "smithy.api#documentation": "

The target devices to which the job execution is being rolled out. This value will be null after the job execution has finished rolling out to all the target devices.

" + "smithy.api#documentation": "

The target devices to which the job execution is being rolled out. This value will\n be null after the job execution has finished rolling out to all the target\n devices.

" } }, "numberOfCanceledThings": { @@ -20001,7 +20999,7 @@ "numberOfRemovedThings": { "target": "com.amazonaws.iot#RemovedThings", "traits": { - "smithy.api#documentation": "

The number of things that are no longer scheduled to execute the job because they have been deleted or\n have been removed from the group that was a target of the job.

" + "smithy.api#documentation": "

The number of things that are no longer scheduled to execute the job because they\n have been deleted or have been removed from the group that was a target of the\n job.

" } }, "numberOfTimedOutThings": { @@ -20074,7 +21072,7 @@ "targetSelection": { "target": "com.amazonaws.iot#TargetSelection", "traits": { - "smithy.api#documentation": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things\n specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing\n when a change is detected in a target. For example, a job will run on a thing when the thing is added to a\n target group, even after the job was completed by all things originally in the group.

\n \n

We recommend that you use continuous jobs instead of snapshot jobs for dynamic thing group targets. \n By using continuous jobs, devices that join the group receive the job execution even after the job has\n been created.

\n
" + "smithy.api#documentation": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete\n after all those things specified as targets have completed the job (SNAPSHOT). If\n continuous, the job may also be run on a thing when a change is detected in a target.\n For example, a job will run on a thing when the thing is added to a target group, even\n after the job was completed by all things originally in the group.

\n \n

We recommend that you use continuous jobs instead of snapshot jobs for dynamic\n thing group targets. By using continuous jobs, devices that join the group receive\n the job execution even after the job has been created.

\n
" } }, "status": { @@ -20104,7 +21102,7 @@ "isConcurrent": { "target": "com.amazonaws.iot#BooleanWrapperObject", "traits": { - "smithy.api#documentation": "

Indicates whether a job is concurrent. Will be true when a job is \n rolling out new job executions or canceling previously created executions,\n otherwise false.

" + "smithy.api#documentation": "

Indicates whether a job is concurrent. Will be true when a job is rolling out new job\n executions or canceling previously created executions, otherwise false.

" } } }, @@ -21691,6 +22689,224 @@ "smithy.api#output": {} } }, + "com.amazonaws.iot#ListCommandExecutions": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#ListCommandExecutionsRequest" + }, + "output": { + "target": "com.amazonaws.iot#ListCommandExecutionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#InternalServerException" + }, + { + "target": "com.amazonaws.iot#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

List all command executions.

\n \n

You must provide only the\n startedTimeFilter or the completedTimeFilter information. If you \n provide both time filters, the API will generate an error.\n You can use this information to find command executions that started within\n a specific timeframe.

\n
", + "smithy.api#http": { + "method": "POST", + "uri": "/command-executions", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "commandExecutions", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.iot#ListCommandExecutionsRequest": { + "type": "structure", + "members": { + "maxResults": { + "target": "com.amazonaws.iot#CommandMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in this operation.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.iot#NextToken", + "traits": { + "smithy.api#documentation": "

To retrieve the next set of results, the nextToken value from a previous\n response; otherwise null to receive the first set of results.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "namespace": { + "target": "com.amazonaws.iot#CommandNamespace", + "traits": { + "smithy.api#documentation": "

The namespace of the command.

" + } + }, + "status": { + "target": "com.amazonaws.iot#CommandExecutionStatus", + "traits": { + "smithy.api#documentation": "

List all command executions for the device that have a particular status. For example,\n you can filter the list to display only command executions that have failed or timed\n out.

" + } + }, + "sortOrder": { + "target": "com.amazonaws.iot#SortOrder", + "traits": { + "smithy.api#documentation": "

Specify whether to list the command executions that were created in the\n ascending or descending order. By default, the API returns all commands in the\n descending order based on the start time or completion time of the executions, that are\n determined by the startTimeFilter and completeTimeFilter\n parameters.

" + } + }, + "startedTimeFilter": { + "target": "com.amazonaws.iot#TimeFilter", + "traits": { + "smithy.api#documentation": "

List all command executions that started any time before or after the\n date and time that you specify. The date and time uses the format\n yyyy-MM-dd'T'HH:mm.

" + } + }, + "completedTimeFilter": { + "target": "com.amazonaws.iot#TimeFilter", + "traits": { + "smithy.api#documentation": "

List all command executions that completed any time before or after the\n date and time that you specify. The date and time uses the format\n yyyy-MM-dd'T'HH:mm.

" + } + }, + "targetArn": { + "target": "com.amazonaws.iot#TargetArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the target device. You can use this information to\n list all command executions for a particular device.

" + } + }, + "commandArn": { + "target": "com.amazonaws.iot#CommandArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the command. You can use this information to\n list all command executions for a particular command.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iot#ListCommandExecutionsResponse": { + "type": "structure", + "members": { + "commandExecutions": { + "target": "com.amazonaws.iot#CommandExecutionSummaryList", + "traits": { + "smithy.api#documentation": "

The list of command executions.

" + } + }, + "nextToken": { + "target": "com.amazonaws.iot#NextToken", + "traits": { + "smithy.api#documentation": "

The token to use to get the next set of results, or null if there are no\n additional results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iot#ListCommands": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#ListCommandsRequest" + }, + "output": { + "target": "com.amazonaws.iot#ListCommandsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#InternalServerException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

List all commands in your account.

", + "smithy.api#http": { + "method": "GET", + "uri": "/commands", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "commands", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.iot#ListCommandsRequest": { + "type": "structure", + "members": { + "maxResults": { + "target": "com.amazonaws.iot#CommandMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in this operation. By default, the API returns\n up to a maximum of 25 results. You can override this default value to return up to a\n maximum of 100 results for this operation.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.iot#NextToken", + "traits": { + "smithy.api#documentation": "

To retrieve the next set of results, the nextToken value from a previous\n response; otherwise null to receive the first set of results.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "namespace": { + "target": "com.amazonaws.iot#CommandNamespace", + "traits": { + "smithy.api#documentation": "

The namespace of the command. By default, the API returns all commands that have been\n created for both AWS-IoT and AWS-IoT-FleetWise namespaces. You\n can override this default value if you want to return all commands that have been\n created only for a specific namespace.

", + "smithy.api#httpQuery": "namespace" + } + }, + "commandParameterName": { + "target": "com.amazonaws.iot#CommandParameterName", + "traits": { + "smithy.api#documentation": "

A filter that can be used to display the list of commands that have a specific command\n parameter name.

", + "smithy.api#httpQuery": "commandParameterName" + } + }, + "sortOrder": { + "target": "com.amazonaws.iot#SortOrder", + "traits": { + "smithy.api#documentation": "

Specify whether to list the commands that you have created in the ascending or\n descending order. By default, the API returns all commands in the descending order based\n on the time that they were created.

", + "smithy.api#httpQuery": "sortOrder" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iot#ListCommandsResponse": { + "type": "structure", + "members": { + "commands": { + "target": "com.amazonaws.iot#CommandSummaryList", + "traits": { + "smithy.api#documentation": "

The list of commands.

" + } + }, + "nextToken": { + "target": "com.amazonaws.iot#NextToken", + "traits": { + "smithy.api#documentation": "

The token to use to get the next set of results, or null if there are no\n additional results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iot#ListCustomMetrics": { "type": "operation", "input": { @@ -22385,7 +23601,7 @@ "nextToken": { "target": "com.amazonaws.iot#NextToken", "traits": { - "smithy.api#documentation": "

The token for the next set of results, or null if there are no\n additional results.

" + "smithy.api#documentation": "

The token for the next set of results, or null if\n there are no additional results.

" } } }, @@ -22444,14 +23660,14 @@ "status": { "target": "com.amazonaws.iot#JobExecutionStatus", "traits": { - "smithy.api#documentation": "

An optional filter that lets you search for jobs that have the specified status.

", + "smithy.api#documentation": "

An optional filter that lets you search for jobs that have the specified\n status.

", "smithy.api#httpQuery": "status" } }, "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to\n MQTT topics that contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at this time. For\n more information, see Setting up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } }, @@ -22493,7 +23709,7 @@ "nextToken": { "target": "com.amazonaws.iot#NextToken", "traits": { - "smithy.api#documentation": "

The token for the next set of results, or null if there are no\n additional results.

" + "smithy.api#documentation": "

The token for the next set of results, or null if\n there are no additional results.

" } } }, @@ -22569,7 +23785,7 @@ "nextToken": { "target": "com.amazonaws.iot#NextToken", "traits": { - "smithy.api#documentation": "

The token for the next set of results, or null if there are no\n additional results.

" + "smithy.api#documentation": "

The token for the next set of results, or null if\n there are no additional results.

" } } }, @@ -22620,14 +23836,14 @@ "status": { "target": "com.amazonaws.iot#JobStatus", "traits": { - "smithy.api#documentation": "

An optional filter that lets you search for jobs that have the specified status.

", + "smithy.api#documentation": "

An optional filter that lets you search for jobs that have the specified\n status.

", "smithy.api#httpQuery": "status" } }, "targetSelection": { "target": "com.amazonaws.iot#TargetSelection", "traits": { - "smithy.api#documentation": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things\n specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing\n when a change is detected in a target. For example, a job will run on a thing when the thing is added to a\n target group, even after the job was completed by all things originally in the group.

\n \n

We recommend that you use continuous jobs instead of snapshot jobs for dynamic thing group targets. \n By using continuous jobs, devices that join the group receive the job execution even after the job has\n been created.

\n
", + "smithy.api#documentation": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete\n after all those things specified as targets have completed the job (SNAPSHOT). If\n continuous, the job may also be run on a thing when a change is detected in a target.\n For example, a job will run on a thing when the thing is added to a target group, even\n after the job was completed by all things originally in the group.

\n \n

We recommend that you use continuous jobs instead of snapshot jobs for dynamic\n thing group targets. By using continuous jobs, devices that join the group receive\n the job execution even after the job has been created.

\n
", "smithy.api#httpQuery": "targetSelection" } }, @@ -22662,7 +23878,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at this time. For\n more information, see Setting up IoT Greengrass core devices.\n

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to\n MQTT topics that contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at this time. For\n more information, see Setting up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -22683,7 +23899,7 @@ "nextToken": { "target": "com.amazonaws.iot#NextToken", "traits": { - "smithy.api#documentation": "

The token for the next set of results, or null if there are no\n additional results.

" + "smithy.api#documentation": "

The token for the next set of results, or null if\n there are no additional results.

" } } }, @@ -26523,6 +27739,9 @@ "smithy.api#documentation": "

Describes the logging options payload.

" } }, + "com.amazonaws.iot#LongParameterValue": { + "type": "long" + }, "com.amazonaws.iot#MachineLearningDetectionConfig": { "type": "structure", "members": { @@ -26557,7 +27776,7 @@ } }, "traits": { - "smithy.api#documentation": "

An optional configuration within the SchedulingConfig to setup a recurring maintenance window with a predetermined start time and duration for the rollout of a job document to all devices in a target group for a job.

" + "smithy.api#documentation": "

An optional configuration within the SchedulingConfig to setup a\n recurring maintenance window with a predetermined start time and duration for the\n rollout of a job document to all devices in a target group for a job.

" } }, "com.amazonaws.iot#MaintenanceWindows": { @@ -26893,6 +28112,14 @@ "smithy.api#documentation": "

Set configurations for metrics export.

" } }, + "com.amazonaws.iot#MimeType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, "com.amazonaws.iot#Minimum": { "type": "double", "traits": { @@ -28228,13 +29455,13 @@ "roleArn": { "target": "com.amazonaws.iot#RoleArn", "traits": { - "smithy.api#documentation": "

The ARN of an IAM role that grants permission to download files from the S3 bucket\n where the job data/updates are stored. The role must also grant permission for IoT to\n download the files.

\n \n

For information about addressing the confused deputy problem, see cross-service\n confused deputy prevention in the Amazon Web Services IoT Core developer guide.

\n
" + "smithy.api#documentation": "

The ARN of an IAM role that grants permission to download files from the S3 bucket\n where the job data/updates are stored. The role must also grant permission for IoT to\n download the files.

\n \n

For information about addressing the confused deputy problem, see cross-service confused deputy prevention in the Amazon Web Services IoT Core\n developer guide.

\n
" } }, "expiresInSec": { "target": "com.amazonaws.iot#ExpiresInSec", "traits": { - "smithy.api#documentation": "

How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 3600\n seconds. Pre-signed URLs are generated when Jobs receives an MQTT request for the job document.

" + "smithy.api#documentation": "

How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the\n default value is 3600 seconds. Pre-signed URLs are generated when Jobs receives an MQTT\n request for the job document.

" } } }, @@ -28694,18 +29921,18 @@ "numberOfNotifiedThings": { "target": "com.amazonaws.iot#NumberOfThings", "traits": { - "smithy.api#documentation": "

The threshold for number of notified things that will initiate the increase in rate of rollout.

" + "smithy.api#documentation": "

The threshold for number of notified things that will initiate the increase in rate\n of rollout.

" } }, "numberOfSucceededThings": { "target": "com.amazonaws.iot#NumberOfThings", "traits": { - "smithy.api#documentation": "

The threshold for number of succeeded things that will initiate the increase in rate of rollout.

" + "smithy.api#documentation": "

The threshold for number of succeeded things that will initiate the increase in\n rate of rollout.

" } } }, "traits": { - "smithy.api#documentation": "

Allows you to define a criteria to initiate the increase in rate of rollout for a job.

" + "smithy.api#documentation": "

Allows you to define a criteria to initiate the increase in rate of rollout for a\n job.

" } }, "com.amazonaws.iot#ReasonCode": { @@ -29913,7 +31140,7 @@ } }, "traits": { - "smithy.api#documentation": "

The criteria that determines how many retries are allowed for each failure\n type for a job.

" + "smithy.api#documentation": "

The criteria that determines how many retries are allowed for each failure type for a\n job.

" } }, "com.amazonaws.iot#RetryCriteriaList": { @@ -30407,7 +31634,7 @@ "startTime": { "target": "com.amazonaws.iot#StringDateTime", "traits": { - "smithy.api#documentation": "

The time a job will begin rollout of the job document to all devices in the target\n group for a job. The startTime can be scheduled up to a year in advance and\n must be scheduled a minimum of thirty minutes from the current time. The date and time\n format for the startTime is YYYY-MM-DD for the date and HH:MM for the\n time.

\n

For more information on the syntax for startTime when using an API\n command or the Command Line Interface, see Timestamp.

" + "smithy.api#documentation": "

The time a job will begin rollout of the job document to all devices in the target\n group for a job. The startTime can be scheduled up to a year in advance and\n must be scheduled a minimum of thirty minutes from the current time. The date and time\n format for the startTime is YYYY-MM-DD for the date and HH:MM for the\n time.

\n

For more information on the syntax for startTime when using an API\n command or the Command Line Interface, see Timestamp.

" } }, "endTime": { @@ -30425,12 +31652,12 @@ "maintenanceWindows": { "target": "com.amazonaws.iot#MaintenanceWindows", "traits": { - "smithy.api#documentation": "

An optional configuration within the SchedulingConfig to setup a recurring maintenance window with a predetermined start time and duration for the rollout of a job document to all devices in a target group for a job.

" + "smithy.api#documentation": "

An optional configuration within the SchedulingConfig to setup a\n recurring maintenance window with a predetermined start time and duration for the\n rollout of a job document to all devices in a target group for a job.

" } } }, "traits": { - "smithy.api#documentation": "

Specifies the date and time that a job will begin the rollout of the job document to all devices in the target group. Additionally, you can specify the end behavior for each job execution when it reaches the scheduled end time.

" + "smithy.api#documentation": "

Specifies the date and time that a job will begin the rollout of the job document to\n all devices in the target group. Additionally, you can specify the end behavior for each\n job execution when it reaches the scheduled end time.

" } }, "com.amazonaws.iot#SearchIndex": { @@ -30702,13 +31929,13 @@ "ocspLambdaArn": { "target": "com.amazonaws.iot#OCSPLambdaArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for a Lambda function that acts as a Request for Comments\n (RFC) 6960-compliant Online Certificate Status Protocol (OCSP) responder, supporting basic\n OCSP responses. The Lambda function accepts a JSON string that's Base64-encoded.\n Therefore, you must convert your OCSP response, which is typically in the Distinguished\n Encoding Rules (DER) format, into a JSON string that's Base64-encoded. The Lambda\n function's response is also a Base64-encoded JSON string and the response payload must not\n exceed 8 kilobytes (KiB) in size. The Lambda function must be in the same Amazon Web Services region and\n account as the domain configuration.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for a Lambda function that acts as a Request for Comments\n (RFC) 6960-compliant Online Certificate Status Protocol (OCSP) responder, supporting basic\n OCSP responses. The Lambda function accepts a base64-encoding of the OCSP request in the\n Distinguished Encoding Rules (DER) format. The Lambda function's response is also a\n base64-encoded OCSP response in the DER format. The response size must not exceed 4\n kilobytes (KiB). The Lambda function must be in the same Amazon Web Services account and region as the\n domain configuration. For more information, see Configuring server certificate OCSP for private endpoints in Amazon Web Services IoT Core from the\n Amazon Web Services IoT Core developer guide.

" } }, "ocspAuthorizedResponderArn": { "target": "com.amazonaws.iot#AcmCertificateArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for an X.509 certificate stored in Amazon Web Services Certificate Manager (ACM). \n If provided, Amazon Web Services IoT Core will use this certificate to validate the signature of the received OCSP response. \n The OCSP responder must sign responses using either this authorized responder certificate or the issuing certificate, \n depending on whether the ARN is provided or not. The certificate must be in the same Amazon Web Services region and account as the domain configuration.\n

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for an X.509 certificate stored in Amazon Web Services Certificate\n Manager (ACM). If provided, Amazon Web Services IoT Core will use this certificate to validate the signature\n of the received OCSP response. The OCSP responder must sign responses using either this\n authorized responder certificate or the issuing certificate, depending on whether the ARN\n is provided or not. The certificate must be in the same Amazon Web Services account and region as the\n domain configuration.

" } } }, @@ -30789,7 +32016,7 @@ } }, "traits": { - "smithy.api#documentation": "

A limit has been exceeded.

", + "smithy.api#documentation": "

Service quota has been exceeded.

", "smithy.api#error": "client", "smithy.api#httpError": 402 } @@ -31270,6 +32497,23 @@ } } }, + "com.amazonaws.iot#SortOrder": { + "type": "enum", + "members": { + "Ascending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASCENDING" + } + }, + "Descending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DESCENDING" + } + } + } + }, "com.amazonaws.iot#SqlParseException": { "type": "structure", "members": { @@ -31793,6 +33037,53 @@ } } }, + "com.amazonaws.iot#StatusCode": { + "type": "integer", + "traits": { + "smithy.api#default": 0 + } + }, + "com.amazonaws.iot#StatusReason": { + "type": "structure", + "members": { + "reasonCode": { + "target": "com.amazonaws.iot#StatusReasonCode", + "traits": { + "smithy.api#documentation": "

A code that provides additional context for the command execution status.

", + "smithy.api#required": {} + } + }, + "reasonDescription": { + "target": "com.amazonaws.iot#StatusReasonDescription", + "traits": { + "smithy.api#documentation": "

A literal string for devices to optionally provide additional information about the\n reason code for a command execution status.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provide additional context about the status of a command execution using a reason code\n and description.

" + } + }, + "com.amazonaws.iot#StatusReasonCode": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 64 + }, + "smithy.api#pattern": "^[A-Z0-9_-]+$" + } + }, + "com.amazonaws.iot#StatusReasonDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^[^\\p{C}]*$" + } + }, "com.amazonaws.iot#StdDeviation": { "type": "double", "traits": { @@ -32068,6 +33359,14 @@ "com.amazonaws.iot#String": { "type": "string" }, + "com.amazonaws.iot#StringCommandExecutionResult": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, "com.amazonaws.iot#StringDateTime": { "type": "string", "traits": { @@ -32092,6 +33391,14 @@ "target": "com.amazonaws.iot#String" } }, + "com.amazonaws.iot#StringParameterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, "com.amazonaws.iot#SubnetId": { "type": "string" }, @@ -33366,6 +34673,26 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.iot#TimeFilter": { + "type": "structure", + "members": { + "after": { + "target": "com.amazonaws.iot#StringDateTime", + "traits": { + "smithy.api#documentation": "

Filter to display command executions that started or completed only after a particular\n date and time.

" + } + }, + "before": { + "target": "com.amazonaws.iot#StringDateTime", + "traits": { + "smithy.api#documentation": "

Filter to display command executions that started or completed only before a\n particular date and time.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A filter that can be used to list command executions for a device that started or\n completed before or after a particular date and time.

" + } + }, "com.amazonaws.iot#TimedOutThings": { "type": "integer" }, @@ -33375,12 +34702,12 @@ "inProgressTimeoutInMinutes": { "target": "com.amazonaws.iot#InProgressTimeoutInMinutes", "traits": { - "smithy.api#documentation": "

Specifies the amount of time, in minutes, this device has to finish execution of this job. \n The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080 minutes). The \n in progress timer can't be updated and will apply to all job executions for the job. Whenever a job \n execution remains in the IN_PROGRESS status for longer than this interval, the job execution will fail \n and switch to the terminal TIMED_OUT status.

" + "smithy.api#documentation": "

Specifies the amount of time, in minutes, this device has to finish execution of this\n job. The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080\n minutes). The in progress timer can't be updated and will apply to all job executions\n for the job. Whenever a job execution remains in the IN_PROGRESS status for longer than\n this interval, the job execution will fail and switch to the terminal\n TIMED_OUT status.

" } } }, "traits": { - "smithy.api#documentation": "

Specifies the amount of time each device has to finish its execution of the job. A timer \n is started when the job execution status is set to IN_PROGRESS. If the job \n execution status is not set to another terminal state before the timer expires, it will\n be automatically set to TIMED_OUT.

" + "smithy.api#documentation": "

Specifies the amount of time each device has to finish its execution of the job. A\n timer is started when the job execution status is set to IN_PROGRESS. If\n the job execution status is not set to another terminal state before the timer expires,\n it will be automatically set to TIMED_OUT.

" } }, "com.amazonaws.iot#Timestamp": { @@ -34101,6 +35428,16 @@ } } }, + "com.amazonaws.iot#UnsignedLongParameterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + }, + "smithy.api#pattern": "^[0-9]*$" + } + }, "com.amazonaws.iot#UntagResource": { "type": "operation", "input": { @@ -34728,6 +36065,112 @@ "smithy.api#input": {} } }, + "com.amazonaws.iot#UpdateCommand": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#UpdateCommandRequest" + }, + "output": { + "target": "com.amazonaws.iot#UpdateCommandResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#ConflictException" + }, + { + "target": "com.amazonaws.iot#InternalServerException" + }, + { + "target": "com.amazonaws.iot#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Update information about a command or mark a command for deprecation.

", + "smithy.api#http": { + "method": "PATCH", + "uri": "/commands/{commandId}", + "code": 200 + } + } + }, + "com.amazonaws.iot#UpdateCommandRequest": { + "type": "structure", + "members": { + "commandId": { + "target": "com.amazonaws.iot#CommandId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the command to be updated.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "displayName": { + "target": "com.amazonaws.iot#DisplayName", + "traits": { + "smithy.api#documentation": "

The new user-friendly name to use in the console for the command.

" + } + }, + "description": { + "target": "com.amazonaws.iot#CommandDescription", + "traits": { + "smithy.api#documentation": "

A short text description of the command.

" + } + }, + "deprecated": { + "target": "com.amazonaws.iot#DeprecationFlag", + "traits": { + "smithy.api#documentation": "

A boolean that you can use to specify whether to deprecate a command.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iot#UpdateCommandResponse": { + "type": "structure", + "members": { + "commandId": { + "target": "com.amazonaws.iot#CommandId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the command.

" + } + }, + "displayName": { + "target": "com.amazonaws.iot#DisplayName", + "traits": { + "smithy.api#documentation": "

The updated user-friendly display name in the console for the command.

" + } + }, + "description": { + "target": "com.amazonaws.iot#CommandDescription", + "traits": { + "smithy.api#documentation": "

The updated text description of the command.

" + } + }, + "deprecated": { + "target": "com.amazonaws.iot#DeprecationFlag", + "traits": { + "smithy.api#documentation": "

The boolean that indicates whether the command was deprecated.

" + } + }, + "lastUpdatedAt": { + "target": "com.amazonaws.iot#DateType", + "traits": { + "smithy.api#documentation": "

The date and time (epoch timestamp in seconds) when the command was last\n updated.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iot#UpdateCustomMetric": { "type": "operation", "input": { @@ -35462,13 +36905,13 @@ "timeoutConfig": { "target": "com.amazonaws.iot#TimeoutConfig", "traits": { - "smithy.api#documentation": "

Specifies the amount of time each device has to finish its execution of the job. The timer is started when the job execution status is set to IN_PROGRESS. \n If the job execution status is not set to another terminal state before the time expires, it will be automatically set to TIMED_OUT.

" + "smithy.api#documentation": "

Specifies the amount of time each device has to finish its execution of the job. The\n timer is started when the job execution status is set to IN_PROGRESS. If\n the job execution status is not set to another terminal state before the time expires,\n it will be automatically set to TIMED_OUT.

" } }, "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at\n this time. For more information, see Setting\n up IoT Greengrass core devices.\n

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to\n MQTT topics that contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is only supported by IoT Greengrass at this time. For\n more information, see Setting up IoT Greengrass core devices.\n

\n
", "smithy.api#httpQuery": "namespaceId" } }, diff --git a/codegen/sdk-codegen/aws-models/iotfleetwise.json b/codegen/sdk-codegen/aws-models/iotfleetwise.json index fd71612930c..6200100632d 100644 --- a/codegen/sdk-codegen/aws-models/iotfleetwise.json +++ b/codegen/sdk-codegen/aws-models/iotfleetwise.json @@ -88,7 +88,7 @@ "structFullyQualifiedName": { "target": "com.amazonaws.iotfleetwise#NodePath", "traits": { - "smithy.api#documentation": "

The fully qualified name of the struct node for the actuator if the data type of the actuator is Struct or StructArray. For example, the struct fully qualified name of an actuator might be Vehicle.Door.LockStruct.

" + "smithy.api#documentation": "

The fully qualified name of the struct node for the actuator if the data type of the\n actuator is Struct or StructArray. For example, the struct\n fully qualified name of an actuator might be\n Vehicle.Door.LockStruct.

" } } }, @@ -534,7 +534,7 @@ "canDbcFiles": { "target": "com.amazonaws.iotfleetwise#NetworkFilesList", "traits": { - "smithy.api#documentation": "

A list of DBC files. You can upload only one DBC file for each network interface and\n specify up to five (inclusive) files in the list. The DBC file can be a maximum size of 200 MB.

", + "smithy.api#documentation": "

A list of DBC files. You can upload only one DBC file for each network interface and\n specify up to five (inclusive) files in the list. The DBC file can be a maximum size of\n 200 MB.

", "smithy.api#required": {} } }, @@ -616,14 +616,14 @@ "target": "com.amazonaws.iotfleetwise#nonNegativeInteger", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

Indicates the beginning of the CAN signal. This should always be the least significant bit (LSB).

\n

This value might be different from the value in a DBC file. For little endian signals,\n startBit is the same value as in the DBC file. For big endian signals\n in a DBC file, the start bit is the most significant bit (MSB). You will have to\n calculate the LSB instead and pass it as the startBit.

", + "smithy.api#documentation": "

Indicates the beginning of the CAN signal. This should always be the least significant\n bit (LSB).

\n

This value might be different from the value in a DBC file. For little endian signals,\n startBit is the same value as in the DBC file. For big endian signals\n in a DBC file, the start bit is the most significant bit (MSB). You will have to\n calculate the LSB instead and pass it as the startBit.

", "smithy.api#required": {} } }, "offset": { "target": "com.amazonaws.iotfleetwise#double", "traits": { - "smithy.api#documentation": "

The offset used to calculate the signal value. Combined with factor, the calculation is value = raw_value * factor + offset.

", + "smithy.api#documentation": "

The offset used to calculate the signal value. Combined with factor, the calculation\n is value = raw_value * factor + offset.

", "smithy.api#required": {} } }, @@ -736,7 +736,7 @@ "expression": { "target": "com.amazonaws.iotfleetwise#eventExpression", "traits": { - "smithy.api#documentation": "

The logical expression used to recognize what data to collect. For example,\n $variable.`Vehicle.OutsideAirTemperature` >= 105.0.

", + "smithy.api#documentation": "

The logical expression used to recognize what data to collect. For example, $variable.`Vehicle.OutsideAirTemperature` >= 105.0.

", "smithy.api#required": {} } }, @@ -763,6 +763,28 @@ "smithy.api#documentation": "

Information about a collection scheme that uses a simple logical expression to\n recognize what data to collect.

" } }, + "com.amazonaws.iotfleetwise#ConditionBasedSignalFetchConfig": { + "type": "structure", + "members": { + "conditionExpression": { + "target": "com.amazonaws.iotfleetwise#fetchConfigEventExpression", + "traits": { + "smithy.api#documentation": "

The condition that must be satisfied to trigger a signal fetch.

", + "smithy.api#required": {} + } + }, + "triggerMode": { + "target": "com.amazonaws.iotfleetwise#TriggerMode", + "traits": { + "smithy.api#documentation": "

Indicates the mode in which the signal fetch is triggered.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the condition under which a signal fetch occurs.

" + } + }, "com.amazonaws.iotfleetwise#ConflictException": { "type": "structure", "members": { @@ -822,7 +844,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an orchestration of data collection rules. The Amazon Web Services IoT FleetWise Edge Agent software\n running in vehicles uses campaigns to decide how to collect and transfer data to the\n cloud. You create campaigns in the cloud. After you or your team approve campaigns,\n Amazon Web Services IoT FleetWise automatically deploys them to vehicles.

\n

For more information, see Collect and transfer data\n with campaigns in the Amazon Web Services IoT FleetWise Developer Guide.

", + "smithy.api#documentation": "

Creates an orchestration of data collection rules. The Amazon Web Services IoT FleetWise Edge Agent software\n running in vehicles uses campaigns to decide how to collect and transfer data to the\n cloud. You create campaigns in the cloud. After you or your team approve campaigns,\n Amazon Web Services IoT FleetWise automatically deploys them to vehicles.

\n

For more information, see Collect and transfer data\n with campaigns in the Amazon Web Services IoT FleetWise Developer Guide.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
", "smithy.api#http": { "method": "POST", "uri": "/campaigns/{name}", @@ -865,37 +887,37 @@ "startTime": { "target": "com.amazonaws.iotfleetwise#timestamp", "traits": { - "smithy.api#documentation": "

(Optional) The time, in milliseconds, to deliver a campaign after it was approved. If\n it's not specified, 0 is used.

\n

Default: 0\n

" + "smithy.api#documentation": "

The time, in milliseconds, to deliver a campaign after it was approved. If\n it's not specified, 0 is used.

\n

Default: 0\n

" } }, "expiryTime": { "target": "com.amazonaws.iotfleetwise#timestamp", "traits": { - "smithy.api#documentation": "

(Optional) The time the campaign expires, in seconds since epoch (January 1, 1970 at\n midnight UTC time). Vehicle data isn't collected after the campaign expires.

\n

Default: 253402214400 (December 31, 9999, 00:00:00 UTC)

" + "smithy.api#documentation": "

The time the campaign expires, in seconds since epoch (January 1, 1970 at\n midnight UTC time). Vehicle data isn't collected after the campaign expires.

\n

Default: 253402214400 (December 31, 9999, 00:00:00 UTC)

" } }, "postTriggerCollectionDuration": { "target": "com.amazonaws.iotfleetwise#uint32", "traits": { - "smithy.api#documentation": "

(Optional) How long (in milliseconds) to collect raw data after a triggering event\n initiates the collection. If it's not specified, 0 is used.

\n

Default: 0\n

" + "smithy.api#documentation": "

How long (in milliseconds) to collect raw data after a triggering event\n initiates the collection. If it's not specified, 0 is used.

\n

Default: 0\n

" } }, "diagnosticsMode": { "target": "com.amazonaws.iotfleetwise#DiagnosticsMode", "traits": { - "smithy.api#documentation": "

(Optional) Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. If you\n want to send diagnostic trouble codes, use SEND_ACTIVE_DTCS. If it's not\n specified, OFF is used.

\n

Default: OFF\n

" + "smithy.api#documentation": "

Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. If you\n want to send diagnostic trouble codes, use SEND_ACTIVE_DTCS. If it's not\n specified, OFF is used.

\n

Default: OFF\n

" } }, "spoolingMode": { "target": "com.amazonaws.iotfleetwise#SpoolingMode", "traits": { - "smithy.api#documentation": "

(Optional) Whether to store collected data after a vehicle lost a connection with the\n cloud. After a connection is re-established, the data is automatically forwarded to\n Amazon Web Services IoT FleetWise. If you want to store collected data when a vehicle loses connection with the\n cloud, use TO_DISK. If it's not specified, OFF is used.

\n

Default: OFF\n

" + "smithy.api#documentation": "

Determines whether to store collected data after a vehicle lost a connection with the\n cloud. After a connection is re-established, the data is automatically forwarded to\n Amazon Web Services IoT FleetWise. If you want to store collected data when a vehicle loses connection with the\n cloud, use TO_DISK. If it's not specified, OFF is used.

\n

Default: OFF\n

" } }, "compression": { "target": "com.amazonaws.iotfleetwise#Compression", "traits": { - "smithy.api#documentation": "

(Optional) Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If you\n don't want to compress the signals, use OFF. If it's not specified,\n SNAPPY is used.

\n

Default: SNAPPY\n

" + "smithy.api#documentation": "

Determines whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If you\n don't want to compress the signals, use OFF. If it's not specified,\n SNAPPY is used.

\n

Default: SNAPPY\n

" } }, "priority": { @@ -904,13 +926,13 @@ "smithy.api#deprecated": { "message": "priority is no longer used or needed as input" }, - "smithy.api#documentation": "

(Optional) A number indicating the priority of one campaign over another campaign for\n a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles\n before any other campaigns. If it's not specified, 0 is used.

\n

Default: 0\n

" + "smithy.api#documentation": "

A number indicating the priority of one campaign over another campaign for\n a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles\n before any other campaigns. If it's not specified, 0 is used.

\n

Default: 0\n

" } }, "signalsToCollect": { "target": "com.amazonaws.iotfleetwise#SignalInformationList", "traits": { - "smithy.api#documentation": "

(Optional) A list of information about signals to collect.

" + "smithy.api#documentation": "

A list of information about signals to collect.

\n \n

If you upload a signal as a condition in a data partition for a campaign, then\n those same signals must be included in signalsToCollect.

\n
" } }, "collectionScheme": { @@ -923,7 +945,7 @@ "dataExtraDimensions": { "target": "com.amazonaws.iotfleetwise#DataExtraDimensionNodePathList", "traits": { - "smithy.api#documentation": "

(Optional) A list of vehicle attributes to associate with a campaign.

\n

Enrich the data with specified vehicle attributes. For example, add make and model to the campaign, and Amazon Web Services IoT FleetWise will associate the data with those attributes as dimensions in Amazon Timestream. You can then query the data against make and model.

\n

Default: An empty array

" + "smithy.api#documentation": "

A list of vehicle attributes to associate with a campaign.

\n

Enrich the data with specified vehicle attributes. For example, add make\n and model to the campaign, and Amazon Web Services IoT FleetWise will associate the data with those\n attributes as dimensions in Amazon Timestream. You can then query the data against\n make and model.

\n

Default: An empty array

" } }, "tags": { @@ -935,7 +957,19 @@ "dataDestinationConfigs": { "target": "com.amazonaws.iotfleetwise#DataDestinationConfigs", "traits": { - "smithy.api#documentation": "

The destination where the campaign sends data. You can choose to send data to be stored in Amazon S3 or Amazon Timestream.

\n

Amazon S3 optimizes the cost of data storage and provides additional mechanisms to use vehicle data, such as data lakes, centralized data storage, data processing pipelines, and analytics. Amazon Web Services IoT FleetWise supports at-least-once file delivery to S3. Your vehicle data is stored on multiple Amazon Web Services IoT FleetWise servers for redundancy and high availability.

\n

You can use Amazon Timestream to access and analyze time series data, and Timestream to query\n vehicle data so that you can identify trends and patterns.

" + "smithy.api#documentation": "

The destination where the campaign sends data. You can send data to an MQTT topic,\n or store it in Amazon S3 or Amazon Timestream.

\n

MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with\n your devices.

\n

Amazon S3 optimizes the cost of data storage and provides additional mechanisms to use vehicle \n data, such as data lakes, centralized data storage, data processing pipelines, and analytics. \n Amazon Web Services IoT FleetWise supports at-least-once file delivery to S3. Your vehicle data is stored on multiple \n Amazon Web Services IoT FleetWise servers for redundancy and high availability.

\n

You can use Amazon Timestream to access and analyze time series data, and Timestream to query\n vehicle data so that you can identify trends and patterns.

" + } + }, + "dataPartitions": { + "target": "com.amazonaws.iotfleetwise#DataPartitions", + "traits": { + "smithy.api#documentation": "

The data partitions associated with the signals collected from the vehicle.

" + } + }, + "signalsToFetch": { + "target": "com.amazonaws.iotfleetwise#SignalFetchInformationList", + "traits": { + "smithy.api#documentation": "

A list of information about signals to fetch.

" } } } @@ -1012,7 +1046,7 @@ "description": { "target": "com.amazonaws.iotfleetwise#description", "traits": { - "smithy.api#documentation": "

A brief description of the decoder manifest.

" + "smithy.api#documentation": "

A brief description of the decoder manifest.

" } }, "modelManifestArn": { @@ -1034,6 +1068,12 @@ "smithy.api#documentation": "

A list of information about available network interfaces.

" } }, + "defaultForUnmappedSignals": { + "target": "com.amazonaws.iotfleetwise#DefaultForUnmappedSignalsType", + "traits": { + "smithy.api#documentation": "

Use default decoders for all unmapped signals in the model. You don't need to provide any detailed decoding information.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, "tags": { "target": "com.amazonaws.iotfleetwise#TagList", "traits": { @@ -1343,6 +1383,130 @@ } } }, + "com.amazonaws.iotfleetwise#CreateStateTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iotfleetwise#CreateStateTemplateRequest" + }, + "output": { + "target": "com.amazonaws.iotfleetwise#CreateStateTemplateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iotfleetwise#AccessDeniedException" + }, + { + "target": "com.amazonaws.iotfleetwise#ConflictException" + }, + { + "target": "com.amazonaws.iotfleetwise#InternalServerException" + }, + { + "target": "com.amazonaws.iotfleetwise#InvalidSignalsException" + }, + { + "target": "com.amazonaws.iotfleetwise#LimitExceededException" + }, + { + "target": "com.amazonaws.iotfleetwise#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iotfleetwise#ThrottlingException" + }, + { + "target": "com.amazonaws.iotfleetwise#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a state template. State templates contain state properties, which are signals that belong to a signal catalog that is synchronized between the Amazon Web Services IoT FleetWise Edge and the Amazon Web Services Cloud.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
", + "smithy.api#http": { + "method": "POST", + "uri": "/state-templates/{name}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.iotfleetwise#CreateStateTemplateRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.iotfleetwise#resourceName", + "traits": { + "smithy.api#documentation": "

The name of the state template.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.iotfleetwise#description", + "traits": { + "smithy.api#documentation": "

A brief description of the state template.

" + } + }, + "signalCatalogArn": { + "target": "com.amazonaws.iotfleetwise#arn", + "traits": { + "smithy.api#documentation": "

The ARN of the signal catalog associated with the state template.

", + "smithy.api#required": {} + } + }, + "stateTemplateProperties": { + "target": "com.amazonaws.iotfleetwise#StateTemplateProperties", + "traits": { + "smithy.api#documentation": "

A list of signals from which data is collected. The state template properties contain the fully qualified names of the signals.

", + "smithy.api#required": {} + } + }, + "dataExtraDimensions": { + "target": "com.amazonaws.iotfleetwise#StateTemplateDataExtraDimensionNodePathList", + "traits": { + "smithy.api#documentation": "

A list of vehicle attributes to associate with the payload published on the state template's \n MQTT topic. (See \n Processing last known state vehicle data using MQTT messaging). For example, if you add \n Vehicle.Attributes.Make and Vehicle.Attributes.Model attributes, Amazon Web Services IoT FleetWise \n will enrich the protobuf encoded payload with those attributes in the extraDimensions\n field.

" + } + }, + "metadataExtraDimensions": { + "target": "com.amazonaws.iotfleetwise#StateTemplateMetadataExtraDimensionNodePathList", + "traits": { + "smithy.api#documentation": "

A list of vehicle attributes to associate with user properties of the messages published on the\n state template's MQTT topic. (See \n Processing last known state vehicle data using MQTT messaging). For example, if you add \n Vehicle.Attributes.Make and Vehicle.Attributes.Model attributes, Amazon Web Services IoT FleetWise \n will include these attributes as User Properties with the MQTT message.

\n

Default: An empty array

" + } + }, + "tags": { + "target": "com.amazonaws.iotfleetwise#TagList", + "traits": { + "smithy.api#documentation": "

Metadata that can be used to manage the state template.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iotfleetwise#CreateStateTemplateResponse": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.iotfleetwise#resourceName", + "traits": { + "smithy.api#documentation": "

The name of the state template.

" + } + }, + "arn": { + "target": "com.amazonaws.iotfleetwise#arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the state template.

" + } + }, + "id": { + "target": "com.amazonaws.iotfleetwise#ResourceUniqueId", + "traits": { + "smithy.api#documentation": "

The unique ID of the state template.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iotfleetwise#CreateVehicle": { "type": "operation", "input": { @@ -1438,7 +1602,7 @@ "attributes": { "target": "com.amazonaws.iotfleetwise#attributesMap", "traits": { - "smithy.api#documentation": "

Static information about a vehicle in a key-value pair. For example:\n \"engineType\" : \"1.3 L R2\"\n

\n

A campaign must include the keys (attribute names) in dataExtraDimensions for them to display in Amazon Timestream.

" + "smithy.api#documentation": "

Static information about a vehicle in a key-value pair. For example:\n \"engineType\" : \"1.3 L R2\"\n

\n

To use attributes with Campaigns or State Templates, you must include them using the \n request parameters dataExtraDimensions and/or metadataExtraDimensions \n (for state templates only) when creating your campaign/state template.

" } }, "associationBehavior": { @@ -1452,6 +1616,12 @@ "traits": { "smithy.api#documentation": "

Metadata that can be used to manage the vehicle.

" } + }, + "stateTemplates": { + "target": "com.amazonaws.iotfleetwise#StateTemplateAssociations", + "traits": { + "smithy.api#documentation": "

Associate state templates with the vehicle. You can monitor the last known state of the vehicle in near real time.

" + } } } }, @@ -1496,6 +1666,12 @@ "traits": { "smithy.api#documentation": "

Metadata which can be used to manage the vehicle.

" } + }, + "stateTemplates": { + "target": "com.amazonaws.iotfleetwise#StateTemplateAssociations", + "traits": { + "smithy.api#documentation": "

Associate state templates to track the state of the vehicle. State templates determine which signal updates the vehicle sends to the cloud.

" + } } }, "traits": { @@ -1551,13 +1727,63 @@ "smithy.api#documentation": "

Information about a created vehicle.

" } }, + "com.amazonaws.iotfleetwise#CustomDecodingId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 150 + }, + "smithy.api#pattern": "^(?!.*\\.\\.)[a-zA-Z0-9_\\-#:.]+$" + } + }, + "com.amazonaws.iotfleetwise#CustomDecodingInterface": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.iotfleetwise#CustomDecodingSignalInterfaceName", + "traits": { + "smithy.api#documentation": "

The name of the interface.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a custom network interface as defined by the customer.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, + "com.amazonaws.iotfleetwise#CustomDecodingSignal": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.iotfleetwise#CustomDecodingId", + "traits": { + "smithy.api#documentation": "

The ID of the signal.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about signals using a custom decoding protocol as defined by the customer.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, + "com.amazonaws.iotfleetwise#CustomDecodingSignalInterfaceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[a-zA-Z\\d\\-_:]+$" + } + }, "com.amazonaws.iotfleetwise#CustomProperty": { "type": "structure", "members": { "fullyQualifiedName": { "target": "com.amazonaws.iotfleetwise#string", "traits": { - "smithy.api#documentation": "

The fully qualified name of the custom property. For example, the fully qualified name of a custom property might be ComplexDataTypes.VehicleDataTypes.SVMCamera.FPS.

", + "smithy.api#documentation": "

The fully qualified name of the custom property. For example, the fully qualified name\n of a custom property might be\n ComplexDataTypes.VehicleDataTypes.SVMCamera.FPS.

", "smithy.api#required": {} } }, @@ -1595,12 +1821,12 @@ "structFullyQualifiedName": { "target": "com.amazonaws.iotfleetwise#NodePath", "traits": { - "smithy.api#documentation": "

The fully qualified name of the struct node for the custom property if the data type of the custom property is Struct or StructArray.

" + "smithy.api#documentation": "

The fully qualified name of the struct node for the custom property if the data type\n of the custom property is Struct or StructArray.

" } } }, "traits": { - "smithy.api#documentation": "

Represents a member of the complex data structure. The data type of the property can be either primitive or another struct.

" + "smithy.api#documentation": "

Represents a member of the complex data structure. The data type of the property can\n be either primitive or another struct.

" } }, "com.amazonaws.iotfleetwise#CustomStruct": { @@ -1609,7 +1835,7 @@ "fullyQualifiedName": { "target": "com.amazonaws.iotfleetwise#string", "traits": { - "smithy.api#documentation": "

The fully qualified name of the custom structure. For example, the fully qualified name of a custom structure might be ComplexDataTypes.VehicleDataTypes.SVMCamera.

", + "smithy.api#documentation": "

The fully qualified name of the custom structure. For example, the fully qualified\n name of a custom structure might be\n ComplexDataTypes.VehicleDataTypes.SVMCamera.

", "smithy.api#required": {} } }, @@ -1650,10 +1876,16 @@ "traits": { "smithy.api#documentation": "

The Amazon Timestream table where the campaign sends data.

" } + }, + "mqttTopicConfig": { + "target": "com.amazonaws.iotfleetwise#MqttTopicConfig", + "traits": { + "smithy.api#documentation": "

The MQTT topic to which the Amazon Web Services IoT FleetWise campaign routes data.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } } }, "traits": { - "smithy.api#documentation": "

The destination where the Amazon Web Services IoT FleetWise campaign sends data. You can send data to be stored in Amazon S3 or Amazon Timestream.

" + "smithy.api#documentation": "

The destination where the campaign sends data. You can send data to an MQTT topic,\n or store it in Amazon S3 or Amazon Timestream.

" } }, "com.amazonaws.iotfleetwise#DataDestinationConfigs": { @@ -1699,6 +1931,106 @@ } } }, + "com.amazonaws.iotfleetwise#DataPartition": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.iotfleetwise#DataPartitionId", + "traits": { + "smithy.api#documentation": "

The ID of the data partition. The data partition ID must be unique within a campaign.\n You can establish a data partition as the default partition for a campaign by using\n default as the ID.

", + "smithy.api#required": {} + } + }, + "storageOptions": { + "target": "com.amazonaws.iotfleetwise#DataPartitionStorageOptions", + "traits": { + "smithy.api#documentation": "

The storage options for a data partition.

", + "smithy.api#required": {} + } + }, + "uploadOptions": { + "target": "com.amazonaws.iotfleetwise#DataPartitionUploadOptions", + "traits": { + "smithy.api#documentation": "

The upload options for the data partition.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for signal data storage and upload options. You can only specify these\n options when the campaign's spooling mode is TO_DISK.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, + "com.amazonaws.iotfleetwise#DataPartitionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9]+$" + } + }, + "com.amazonaws.iotfleetwise#DataPartitionStorageOptions": { + "type": "structure", + "members": { + "maximumSize": { + "target": "com.amazonaws.iotfleetwise#StorageMaximumSize", + "traits": { + "smithy.api#documentation": "

The maximum storage size of the data stored in the data partition.

\n \n

Newer data overwrites older data when the partition reaches the maximum\n size.

\n
", + "smithy.api#required": {} + } + }, + "storageLocation": { + "target": "com.amazonaws.iotfleetwise#StorageLocation", + "traits": { + "smithy.api#documentation": "

The folder name for the data partition under the campaign storage folder.

", + "smithy.api#required": {} + } + }, + "minimumTimeToLive": { + "target": "com.amazonaws.iotfleetwise#StorageMinimumTimeToLive", + "traits": { + "smithy.api#documentation": "

The amount of time that data in this partition will be kept on disk.

\n ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Size, time, and location options for the data partition.

" + } + }, + "com.amazonaws.iotfleetwise#DataPartitionUploadOptions": { + "type": "structure", + "members": { + "expression": { + "target": "com.amazonaws.iotfleetwise#eventExpression", + "traits": { + "smithy.api#documentation": "

The logical expression used to recognize what data to collect. For example, $variable.`Vehicle.OutsideAirTemperature` >= 105.0.

", + "smithy.api#required": {} + } + }, + "conditionLanguageVersion": { + "target": "com.amazonaws.iotfleetwise#languageVersion", + "traits": { + "smithy.api#documentation": "

The version of the condition language. Defaults to the most recent condition language\n version.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The upload options for the data partition. If upload options are specified, you must\n also specify storage options. See DataPartitionStorageOptions.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, + "com.amazonaws.iotfleetwise#DataPartitions": { + "type": "list", + "member": { + "target": "com.amazonaws.iotfleetwise#DataPartition" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, "com.amazonaws.iotfleetwise#DecoderManifestResource": { "type": "resource", "identifiers": { @@ -1782,14 +2114,14 @@ "lastModificationTime": { "target": "com.amazonaws.iotfleetwise#timestamp", "traits": { - "smithy.api#documentation": "

The time the decoder manifest was last updated in seconds since epoch (January 1,\n 1970 at midnight UTC time).

", + "smithy.api#documentation": "

The time the decoder manifest was last updated in seconds since epoch (January 1, 1970\n at midnight UTC time).

", "smithy.api#required": {} } }, "message": { "target": "com.amazonaws.iotfleetwise#message", "traits": { - "smithy.api#documentation": "

The detailed message for the decoder manifest. When a decoder manifest is in an INVALID status, the message contains detailed reason and help information.

" + "smithy.api#documentation": "

The detailed message for the decoder manifest. When a decoder manifest is in an\n INVALID status, the message contains detailed reason and help\n information.

" } } }, @@ -1809,7 +2141,7 @@ "invalidNetworkInterfaces": { "target": "com.amazonaws.iotfleetwise#InvalidNetworkInterfaces", "traits": { - "smithy.api#documentation": "

The request couldn't be completed because of invalid network interfaces in the request.

" + "smithy.api#documentation": "

The request couldn't be completed because of invalid network interfaces in the\n request.

" } }, "message": { @@ -1817,11 +2149,22 @@ } }, "traits": { - "smithy.api#documentation": "

The request couldn't be completed because it contains signal decoders with one or more validation errors.

", + "smithy.api#documentation": "

The request couldn't be completed because it contains signal decoders with one or more\n validation errors.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } }, + "com.amazonaws.iotfleetwise#DefaultForUnmappedSignalsType": { + "type": "enum", + "members": { + "CUSTOM_DECODING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM_DECODING" + } + } + } + }, "com.amazonaws.iotfleetwise#DeleteCampaign": { "type": "operation", "input": { @@ -1910,7 +2253,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a decoder manifest. You can't delete a decoder manifest if it has vehicles\n associated with it.

\n \n

If the decoder manifest is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200\n response with an empty body.

\n
", + "smithy.api#documentation": "

Deletes a decoder manifest. You can't delete a decoder manifest if it has vehicles\n associated with it.

", "smithy.api#http": { "method": "DELETE", "uri": "/decoder-manifests/{name}", @@ -1974,7 +2317,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a fleet. Before you delete a fleet, all vehicles must be\n dissociated from the fleet. For more information, see Delete a fleet (AWS\n CLI) in the Amazon Web Services IoT FleetWise Developer Guide.

\n \n

If the fleet is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response\n with an empty body.

\n
", + "smithy.api#documentation": "

Deletes a fleet. Before you delete a fleet, all vehicles must be\n dissociated from the fleet. For more information, see Delete a fleet (AWS\n CLI) in the Amazon Web Services IoT FleetWise Developer Guide.

", "smithy.api#http": { "method": "DELETE", "uri": "/fleets/{fleetId}", @@ -2039,7 +2382,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a vehicle model (model manifest).

\n \n

If the vehicle model is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200\n response with an empty body.

\n
", + "smithy.api#documentation": "

Deletes a vehicle model (model manifest).

", "smithy.api#http": { "method": "DELETE", "uri": "/model-manifests/{name}", @@ -2106,7 +2449,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a signal catalog.

\n \n

If the signal catalog is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200\n response with an empty body.

\n
", + "smithy.api#documentation": "

Deletes a signal catalog.

", "smithy.api#http": { "method": "DELETE", "uri": "/signal-catalogs/{name}", @@ -2147,10 +2490,84 @@ } } }, - "com.amazonaws.iotfleetwise#DeleteVehicle": { + "com.amazonaws.iotfleetwise#DeleteStateTemplate": { "type": "operation", "input": { - "target": "com.amazonaws.iotfleetwise#DeleteVehicleRequest" + "target": "com.amazonaws.iotfleetwise#DeleteStateTemplateRequest" + }, + "output": { + "target": "com.amazonaws.iotfleetwise#DeleteStateTemplateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iotfleetwise#AccessDeniedException" + }, + { + "target": "com.amazonaws.iotfleetwise#InternalServerException" + }, + { + "target": "com.amazonaws.iotfleetwise#ThrottlingException" + }, + { + "target": "com.amazonaws.iotfleetwise#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a state template.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/state-templates/{identifier}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.iotfleetwise#DeleteStateTemplateRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.iotfleetwise#ResourceIdentifier", + "traits": { + "smithy.api#documentation": "

A unique, service-generated identifier.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iotfleetwise#DeleteStateTemplateResponse": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.iotfleetwise#resourceName", + "traits": { + "smithy.api#documentation": "

The name of the state template.

" + } + }, + "arn": { + "target": "com.amazonaws.iotfleetwise#arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the state template.

" + } + }, + "id": { + "target": "com.amazonaws.iotfleetwise#ResourceUniqueId", + "traits": { + "smithy.api#documentation": "

The unique ID of the state template.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iotfleetwise#DeleteVehicle": { + "type": "operation", + "input": { + "target": "com.amazonaws.iotfleetwise#DeleteVehicleRequest" }, "output": { "target": "com.amazonaws.iotfleetwise#DeleteVehicleResponse" @@ -2170,7 +2587,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a vehicle and removes it from any campaigns.

\n \n

If the vehicle is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response\n with an empty body.

\n
", + "smithy.api#documentation": "

Deletes a vehicle and removes it from any campaigns.

", "smithy.api#http": { "method": "DELETE", "uri": "/vehicles/{vehicleName}", @@ -2254,7 +2671,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes, or disassociates, a vehicle from a fleet. Disassociating a vehicle from a\n fleet doesn't delete the vehicle.

\n \n

If the vehicle is successfully dissociated from a fleet, Amazon Web Services IoT FleetWise sends back an\n HTTP 200 response with an empty body.

\n
", + "smithy.api#documentation": "

Removes, or disassociates, a vehicle from a fleet. Disassociating a vehicle from a\n fleet doesn't delete the vehicle.

", "smithy.api#http": { "method": "PUT", "uri": "/vehicles/{vehicleName}/disassociate", @@ -2326,6 +2743,18 @@ } } }, + "com.amazonaws.iotfleetwise#EventExpressionList": { + "type": "list", + "member": { + "target": "com.amazonaws.iotfleetwise#actionEventExpression" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, "com.amazonaws.iotfleetwise#FleetAssociationResource": { "type": "resource", "identifiers": { @@ -2433,7 +2862,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n Vehicle Signal Specification (VSS) is a precise language used to describe and model\n signals in vehicle networks. The JSON file collects signal specificiations in a VSS\n format.

" + "smithy.api#documentation": "

\n Vehicle Signal Specification (VSS) is a precise language used to describe\n and model signals in vehicle networks. The JSON file collects signal specificiations in\n a VSS format.

" } }, "com.amazonaws.iotfleetwise#Fqns": { @@ -2480,7 +2909,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves information about a campaign.

", + "smithy.api#documentation": "

Retrieves information about a campaign.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
", "smithy.api#http": { "method": "GET", "uri": "/campaigns/{name}", @@ -2616,7 +3045,19 @@ "dataDestinationConfigs": { "target": "com.amazonaws.iotfleetwise#DataDestinationConfigs", "traits": { - "smithy.api#documentation": "

The destination where the campaign sends data. You can choose to send data to be stored in Amazon S3 or Amazon Timestream.

\n

Amazon S3 optimizes the cost of data storage and provides additional mechanisms to use vehicle data, such as data lakes, centralized data storage, data processing pipelines, and analytics.

\n

You can use Amazon Timestream to access and analyze time series data, and Timestream to query\n vehicle data so that you can identify trends and patterns.

" + "smithy.api#documentation": "

The destination where the campaign sends data. You can send data to an MQTT topic,\n or store it in Amazon S3 or Amazon Timestream.

\n

MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with\n your devices.

\n

Amazon S3 optimizes the cost of data storage and provides additional mechanisms to use vehicle data, \n such as data lakes, centralized data storage, data processing pipelines, and analytics.

\n

You can use Amazon Timestream to access and analyze time series data, and Timestream to query\n vehicle data so that you can identify trends and patterns.

" + } + }, + "dataPartitions": { + "target": "com.amazonaws.iotfleetwise#DataPartitions", + "traits": { + "smithy.api#documentation": "

The data partitions associated with the signals collected from the vehicle.

" + } + }, + "signalsToFetch": { + "target": "com.amazonaws.iotfleetwise#SignalFetchInformationList", + "traits": { + "smithy.api#documentation": "

Information about a list of signals to fetch data from.

" } } } @@ -2718,7 +3159,7 @@ "message": { "target": "com.amazonaws.iotfleetwise#message", "traits": { - "smithy.api#documentation": "

The detailed message for the decoder manifest. When a decoder manifest is in an INVALID status, the message contains detailed reason and help information.

" + "smithy.api#documentation": "

The detailed message for the decoder manifest. When a decoder manifest is in an\n INVALID status, the message contains detailed reason and help\n information.

" } } } @@ -2784,26 +3225,26 @@ "encryptionType": { "target": "com.amazonaws.iotfleetwise#EncryptionType", "traits": { - "smithy.api#documentation": "

The type of encryption. Set to KMS_BASED_ENCRYPTION to use a KMS key that you own and manage. Set to FLEETWISE_DEFAULT_ENCRYPTION to use an Amazon Web Services managed key that is owned by the Amazon Web Services IoT FleetWise service account.

", + "smithy.api#documentation": "

The type of encryption. Set to KMS_BASED_ENCRYPTION to use a KMS key\n that you own and manage. Set to FLEETWISE_DEFAULT_ENCRYPTION to use an\n Amazon Web Services managed key that is owned by the Amazon Web Services IoT FleetWise service account.

", "smithy.api#required": {} } }, "errorMessage": { "target": "com.amazonaws.iotfleetwise#errorMessage", "traits": { - "smithy.api#documentation": "

The error message that describes why encryption settings couldn't be configured, if applicable.

" + "smithy.api#documentation": "

The error message that describes why encryption settings couldn't be configured, if\n applicable.

" } }, "creationTime": { "target": "com.amazonaws.iotfleetwise#timestamp", "traits": { - "smithy.api#documentation": "

The time when encryption was configured in seconds since epoch (January 1, 1970 at midnight UTC time).

" + "smithy.api#documentation": "

The time when encryption was configured in seconds since epoch (January 1, 1970 at\n midnight UTC time).

" } }, "lastModificationTime": { "target": "com.amazonaws.iotfleetwise#timestamp", "traits": { - "smithy.api#documentation": "

The time when encryption was last updated in seconds since epoch (January 1, 1970 at midnight UTC time).

" + "smithy.api#documentation": "

The time when encryption was last updated in seconds since epoch (January 1, 1970 at\n midnight UTC time).

" } } }, @@ -3218,6 +3659,125 @@ } } }, + "com.amazonaws.iotfleetwise#GetStateTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iotfleetwise#GetStateTemplateRequest" + }, + "output": { + "target": "com.amazonaws.iotfleetwise#GetStateTemplateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iotfleetwise#AccessDeniedException" + }, + { + "target": "com.amazonaws.iotfleetwise#InternalServerException" + }, + { + "target": "com.amazonaws.iotfleetwise#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iotfleetwise#ThrottlingException" + }, + { + "target": "com.amazonaws.iotfleetwise#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about a state template.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/state-templates/{identifier}", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.iotfleetwise#GetStateTemplateRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.iotfleetwise#ResourceIdentifier", + "traits": { + "smithy.api#documentation": "

A unique, service-generated identifier.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iotfleetwise#GetStateTemplateResponse": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.iotfleetwise#resourceName", + "traits": { + "smithy.api#documentation": "

The name of the state template.

" + } + }, + "arn": { + "target": "com.amazonaws.iotfleetwise#arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the state template.

" + } + }, + "description": { + "target": "com.amazonaws.iotfleetwise#description", + "traits": { + "smithy.api#documentation": "

A brief description of the state template.

" + } + }, + "signalCatalogArn": { + "target": "com.amazonaws.iotfleetwise#arn", + "traits": { + "smithy.api#documentation": "

The ARN of the signal catalog associated with the state template.

" + } + }, + "stateTemplateProperties": { + "target": "com.amazonaws.iotfleetwise#StateTemplateProperties", + "traits": { + "smithy.api#documentation": "

A list of signals from which data is collected. The state template properties contain the fully qualified names of the signals.

" + } + }, + "dataExtraDimensions": { + "target": "com.amazonaws.iotfleetwise#StateTemplateDataExtraDimensionNodePathList", + "traits": { + "smithy.api#documentation": "

A list of vehicle attributes associated with the payload published on the state template's \n MQTT topic.

\n

Default: An empty array

" + } + }, + "metadataExtraDimensions": { + "target": "com.amazonaws.iotfleetwise#StateTemplateMetadataExtraDimensionNodePathList", + "traits": { + "smithy.api#documentation": "

A list of vehicle attributes to associate with user properties of the messages published on the\n state template's MQTT topic.

\n

Default: An empty array

" + } + }, + "creationTime": { + "target": "com.amazonaws.iotfleetwise#timestamp", + "traits": { + "smithy.api#documentation": "

The time the state template was created in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + }, + "lastModificationTime": { + "target": "com.amazonaws.iotfleetwise#timestamp", + "traits": { + "smithy.api#documentation": "

The time the state template was last updated in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + }, + "id": { + "target": "com.amazonaws.iotfleetwise#ResourceUniqueId", + "traits": { + "smithy.api#documentation": "

The unique ID of the state template.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iotfleetwise#GetVehicle": { "type": "operation", "input": { @@ -3299,6 +3859,12 @@ "smithy.api#documentation": "

Static information about a vehicle in a key-value pair. For example:

\n

\n \"engineType\" : \"1.3 L R2\"\n

" } }, + "stateTemplates": { + "target": "com.amazonaws.iotfleetwise#StateTemplateAssociations", + "traits": { + "smithy.api#documentation": "

State templates associated with the vehicle.

" + } + }, "creationTime": { "target": "com.amazonaws.iotfleetwise#timestamp", "traits": { @@ -3336,7 +3902,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves information about the status of a vehicle with any associated campaigns.\n

", + "smithy.api#documentation": "

Retrieves information about the status of campaigns, decoder manifests, or state templates\n associated with a vehicle.

", "smithy.api#http": { "method": "GET", "uri": "/vehicles/{vehicleName}/status", @@ -3357,14 +3923,14 @@ "nextToken": { "target": "com.amazonaws.iotfleetwise#nextToken", "traits": { - "smithy.api#documentation": "

A pagination token for the next set of results.

\n

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

", + "smithy.api#documentation": "

A pagination token for the next set of results.

\n

If the results of a search are large, only a portion of the results are returned, and a \n nextToken pagination token is returned in the response. To retrieve the next \n set of results, reissue the search request and include the returned token. When all results \n have been returned, the response does not contain a pagination token value. This parameter \n is only supported for resources of type CAMPAIGN.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive. This parameter is only \n supported for resources of type CAMPAIGN.

", "smithy.api#httpQuery": "maxResults" } }, @@ -3483,7 +4049,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a decoder manifest using your existing CAN DBC file from your local device.\n

", + "smithy.api#documentation": "

Creates a decoder manifest using your existing CAN DBC file from your local device.\n

\n

The CAN signal name must be unique and not repeated across CAN message definitions in a .dbc file.

", "smithy.api#http": { "method": "PUT", "uri": "/decoder-manifests/{name}", @@ -3792,7 +4358,7 @@ } }, "traits": { - "smithy.api#documentation": "

The request couldn't be completed because it contains signals that aren't valid.

", + "smithy.api#documentation": "

The request couldn't be completed because it contains signals that aren't\n valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3854,6 +4420,9 @@ { "target": "com.amazonaws.iotfleetwise#SignalCatalogResource" }, + { + "target": "com.amazonaws.iotfleetwise#StateTemplateResource" + }, { "target": "com.amazonaws.iotfleetwise#VehicleResource" } @@ -3873,7 +4442,7 @@ }, "aws.protocols#awsJson1_0": {}, "smithy.api#cors": {}, - "smithy.api#documentation": "

Amazon Web Services IoT FleetWise is a fully managed service that you can use to collect, model, and transfer\n vehicle data to the Amazon Web Services cloud at scale. With Amazon Web Services IoT FleetWise, you can standardize all of\n your vehicle data models, independent of the in-vehicle communication architecture, and\n define data collection rules to transfer only high-value data to the cloud.\n

\n

For more information, see What is Amazon Web Services IoT FleetWise? in the\n Amazon Web Services IoT FleetWise Developer Guide.

", + "smithy.api#documentation": "

Amazon Web Services IoT FleetWise is a fully managed service that you can use to collect, model, and transfer\n vehicle data to the Amazon Web Services cloud at scale. With Amazon Web Services IoT FleetWise, you can standardize all of\n your vehicle data models, independent of the in-vehicle communication architecture, and\n define data collection rules to transfer only high-value data to the cloud.\n

\n

For more information, see What is Amazon Web Services IoT FleetWise? in the\n Amazon Web Services IoT FleetWise Developer Guide.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
", "smithy.api#title": "AWS IoT FleetWise", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -4596,14 +5165,14 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } }, "status": { "target": "com.amazonaws.iotfleetwise#statusStr", "traits": { - "smithy.api#documentation": "

Optional parameter to filter the results by the status of each created campaign in\n your account. The status can be one of: CREATING,\n WAITING_FOR_APPROVAL, RUNNING, or\n SUSPENDED.

", + "smithy.api#documentation": "

An optional parameter to filter the results by the status of each created campaign in\n your account. The status can be one of: CREATING,\n WAITING_FOR_APPROVAL, RUNNING, or\n SUSPENDED.

", "smithy.api#httpQuery": "status" } } @@ -4688,7 +5257,7 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } } @@ -4773,7 +5342,7 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } } @@ -4854,7 +5423,7 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } } @@ -4980,7 +5549,7 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } } @@ -5016,7 +5585,7 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } } @@ -5104,7 +5673,7 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } } @@ -5185,7 +5754,7 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } } @@ -5273,7 +5842,7 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } }, @@ -5354,7 +5923,7 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } } @@ -5377,6 +5946,86 @@ } } }, + "com.amazonaws.iotfleetwise#ListStateTemplates": { + "type": "operation", + "input": { + "target": "com.amazonaws.iotfleetwise#ListStateTemplatesRequest" + }, + "output": { + "target": "com.amazonaws.iotfleetwise#ListStateTemplatesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iotfleetwise#AccessDeniedException" + }, + { + "target": "com.amazonaws.iotfleetwise#InternalServerException" + }, + { + "target": "com.amazonaws.iotfleetwise#ThrottlingException" + }, + { + "target": "com.amazonaws.iotfleetwise#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists information about created state templates.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/state-templates", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "summaries" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.iotfleetwise#ListStateTemplatesRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.iotfleetwise#nextToken", + "traits": { + "smithy.api#documentation": "

The token to retrieve the next set of results, or null if there are no more results.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.iotfleetwise#maxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#httpQuery": "maxResults" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iotfleetwise#ListStateTemplatesResponse": { + "type": "structure", + "members": { + "summaries": { + "target": "com.amazonaws.iotfleetwise#StateTemplateSummaries", + "traits": { + "smithy.api#documentation": "

A list of information about each state template.

" + } + }, + "nextToken": { + "target": "com.amazonaws.iotfleetwise#nextToken", + "traits": { + "smithy.api#documentation": "

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iotfleetwise#ListTagsForResource": { "type": "operation", "input": { @@ -5536,7 +6185,7 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#maxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } } @@ -5572,14 +6221,14 @@ "attributeNames": { "target": "com.amazonaws.iotfleetwise#attributeNamesList", "traits": { - "smithy.api#documentation": "

The fully qualified names of the attributes. For example, the fully qualified name of an attribute might be Vehicle.Body.Engine.Type.

", + "smithy.api#documentation": "

The fully qualified names of the attributes. You can use this optional parameter to list the \n vehicles containing all the attributes in the request. For example, attributeNames \n could be \"Vehicle.Body.Engine.Type, Vehicle.Color\" and the corresponding \n attributeValues could be \"1.3 L R2, Blue\" . In this case, the API \n will filter vehicles with an attribute name Vehicle.Body.Engine.Type that contains\n a value of 1.3 L R2 AND an attribute name Vehicle.Color that contains\n a value of \"Blue\". A request must contain unique values for the attributeNames \n filter and the matching number of attributeValues filters to return the subset \n of vehicles that match the attributes filter condition.

", "smithy.api#httpQuery": "attributeNames" } }, "attributeValues": { "target": "com.amazonaws.iotfleetwise#attributeValuesList", "traits": { - "smithy.api#documentation": "

Static information about a vehicle attribute value in string format. For example:

\n

\n \"1.3 L R2\"\n

", + "smithy.api#documentation": "

Static information about a vehicle attribute value in string format. You can use this optional \n parameter in conjunction with attributeNames to list the vehicles containing all \n the attributeValues corresponding to the attributeNames filter. For \n example, attributeValues could be \"1.3 L R2, Blue\" and the corresponding \n attributeNames filter could be \"Vehicle.Body.Engine.Type, Vehicle.Color\". \n In this case, the API will filter vehicles with attribute name Vehicle.Body.Engine.Type \n that contains a value of 1.3 L R2 AND an attribute name Vehicle.Color that\n contains a value of \"Blue\". A request must contain unique values for the \n attributeNames filter and the matching number of attributeValues \n filter to return the subset of vehicles that match the attributes filter condition.

", "smithy.api#httpQuery": "attributeValues" } }, @@ -5593,7 +6242,7 @@ "maxResults": { "target": "com.amazonaws.iotfleetwise#listVehiclesMaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The maximum number of items to return, between 1 and 100, inclusive.

", "smithy.api#httpQuery": "maxResults" } } @@ -5675,13 +6324,13 @@ "structuredMessage": { "target": "com.amazonaws.iotfleetwise#StructuredMessage", "traits": { - "smithy.api#documentation": "

The structured message for the message signal. It can be defined with either a primitiveMessageDefinition, structuredMessageListDefinition, or structuredMessageDefinition recursively.

", + "smithy.api#documentation": "

The structured message for the message signal. It can be defined with either a\n primitiveMessageDefinition,\n structuredMessageListDefinition, or\n structuredMessageDefinition recursively.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

The decoding information for a specific message which support higher order data types.

" + "smithy.api#documentation": "

The decoding information for a specific message which support higher order data types.\n

" } }, "com.amazonaws.iotfleetwise#ModelManifestResource": { @@ -5779,16 +6428,48 @@ "target": "com.amazonaws.iotfleetwise#string" } }, - "com.amazonaws.iotfleetwise#NetworkFileBlob": { - "type": "blob", + "com.amazonaws.iotfleetwise#MqttTopicArn": { + "type": "string", "traits": { "smithy.api#length": { - "max": 200000000 - } + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:.*$" } }, - "com.amazonaws.iotfleetwise#NetworkFileDefinition": { - "type": "union", + "com.amazonaws.iotfleetwise#MqttTopicConfig": { + "type": "structure", + "members": { + "mqttTopicArn": { + "target": "com.amazonaws.iotfleetwise#MqttTopicArn", + "traits": { + "smithy.api#documentation": "

The ARN of the MQTT topic.

", + "smithy.api#required": {} + } + }, + "executionRoleArn": { + "target": "com.amazonaws.iotfleetwise#IAMRoleArn", + "traits": { + "smithy.api#documentation": "

The ARN of the role that grants Amazon Web Services IoT FleetWise permission to access and act on messages sent to \n the MQTT topic.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The MQTT topic to which the Amazon Web Services IoT FleetWise campaign routes data. For more information, see Device communication \n protocols in the Amazon Web Services IoT Core Developer Guide.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, + "com.amazonaws.iotfleetwise#NetworkFileBlob": { + "type": "blob", + "traits": { + "smithy.api#length": { + "max": 200000000 + } + } + }, + "com.amazonaws.iotfleetwise#NetworkFileDefinition": { + "type": "union", "members": { "canDbc": { "target": "com.amazonaws.iotfleetwise#CanDbcDefinition", @@ -5832,7 +6513,7 @@ "type": { "target": "com.amazonaws.iotfleetwise#NetworkInterfaceType", "traits": { - "smithy.api#documentation": "

The network protocol for the vehicle. For example, CAN_SIGNAL specifies\n a protocol that defines how data is communicated between electronic control units\n (ECUs). OBD_SIGNAL specifies a protocol that defines how self-diagnostic\n data is communicated between ECUs.

", + "smithy.api#documentation": "

The network protocol for the vehicle. For example, CAN_SIGNAL specifies a\n protocol that defines how data is communicated between electronic control units (ECUs).\n OBD_SIGNAL specifies a protocol that defines how self-diagnostic data\n is communicated between ECUs.

", "smithy.api#required": {} } }, @@ -5845,13 +6526,19 @@ "obdInterface": { "target": "com.amazonaws.iotfleetwise#ObdInterface", "traits": { - "smithy.api#documentation": "

Information about a network interface specified by the On-board diagnostic (OBD) II\n protocol.

" + "smithy.api#documentation": "

Information about a network interface specified by the on-board diagnostic (OBD) II\n protocol.

" } }, "vehicleMiddleware": { "target": "com.amazonaws.iotfleetwise#VehicleMiddleware", "traits": { - "smithy.api#documentation": "

The vehicle middleware defined as a type of network interface. Examples of vehicle middleware include ROS2 and SOME/IP.

" + "smithy.api#documentation": "

The vehicle middleware defined as a type of network interface. Examples of vehicle\n middleware include ROS2 and SOME/IP.

" + } + }, + "customDecodingInterface": { + "target": "com.amazonaws.iotfleetwise#CustomDecodingInterface", + "traits": { + "smithy.api#documentation": "

Information about a custom network \n interface.

" } } }, @@ -5903,6 +6590,12 @@ "traits": { "smithy.api#enumValue": "VEHICLE_MIDDLEWARE_NETWORK_INTERFACE_INFO_IS_NULL" } + }, + "CUSTOM_DECODING_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM_DECODING_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL" + } } } }, @@ -5926,6 +6619,12 @@ "traits": { "smithy.api#enumValue": "VEHICLE_MIDDLEWARE" } + }, + "CUSTOM_DECODING_INTERFACE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM_DECODING_INTERFACE" + } } } }, @@ -5974,7 +6673,7 @@ "property": { "target": "com.amazonaws.iotfleetwise#CustomProperty", "traits": { - "smithy.api#documentation": "

Represents a member of the complex data structure. The datatype of the property can be either primitive or another struct.

" + "smithy.api#documentation": "

Represents a member of the complex data structure. The datatype of the\n property can be either primitive or another struct.

" } } }, @@ -6341,7 +7040,7 @@ } }, "traits": { - "smithy.api#documentation": "

A network interface that specifies the On-board diagnostic (OBD) II network protocol.

" + "smithy.api#documentation": "

A network interface that specifies the on-board diagnostic (OBD) II network\n protocol.

" } }, "com.amazonaws.iotfleetwise#ObdInterfaceName": { @@ -6389,7 +7088,7 @@ "offset": { "target": "com.amazonaws.iotfleetwise#double", "traits": { - "smithy.api#documentation": "

The offset used to calculate the signal value. Combined with scaling, the calculation is value = raw_value * scaling + offset.

", + "smithy.api#documentation": "

The offset used to calculate the signal value. Combined with scaling, the calculation\n is value = raw_value * scaling + offset.

", "smithy.api#required": {} } }, @@ -6435,6 +7134,27 @@ } } }, + "com.amazonaws.iotfleetwise#OnChangeStateTemplateUpdateStrategy": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

Vehicles associated with the state template will stream telemetry data when there is a change.

" + } + }, + "com.amazonaws.iotfleetwise#PeriodicStateTemplateUpdateStrategy": { + "type": "structure", + "members": { + "stateTemplateUpdateRate": { + "target": "com.amazonaws.iotfleetwise#TimePeriod", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Vehicles associated with the state template will stream telemetry data during a specified time period.

" + } + }, "com.amazonaws.iotfleetwise#Prefix": { "type": "string", "traits": { @@ -6451,7 +7171,7 @@ "ros2PrimitiveMessageDefinition": { "target": "com.amazonaws.iotfleetwise#ROS2PrimitiveMessageDefinition", "traits": { - "smithy.api#documentation": "

Information about a PrimitiveMessage using a ROS 2 compliant primitive type message of the complex data structure.

" + "smithy.api#documentation": "

Information about a PrimitiveMessage using a ROS 2 compliant primitive\n type message of the complex data structure.

" } } }, @@ -6506,7 +7226,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates or updates the encryption configuration. Amazon Web Services IoT FleetWise can encrypt your data and resources using an Amazon Web Services managed key. Or, you can use a KMS key that you own and manage. For more information, see Data encryption in the Amazon Web Services IoT FleetWise Developer Guide.

", + "smithy.api#documentation": "

Creates or updates the encryption configuration. Amazon Web Services IoT FleetWise can encrypt your data and\n resources using an Amazon Web Services managed key. Or, you can use a KMS key that you own and\n manage. For more information, see Data\n encryption in the Amazon Web Services IoT FleetWise Developer Guide.

", "smithy.api#http": { "method": "POST", "uri": "/encryptionConfiguration", @@ -6530,7 +7250,7 @@ "encryptionType": { "target": "com.amazonaws.iotfleetwise#EncryptionType", "traits": { - "smithy.api#documentation": "

The type of encryption. Choose KMS_BASED_ENCRYPTION to use a KMS key or FLEETWISE_DEFAULT_ENCRYPTION to use an Amazon Web Services managed key.

", + "smithy.api#documentation": "

The type of encryption. Choose KMS_BASED_ENCRYPTION to use a KMS key or\n FLEETWISE_DEFAULT_ENCRYPTION to use an Amazon Web Services managed key.

", "smithy.api#required": {} } } @@ -6558,7 +7278,7 @@ "encryptionType": { "target": "com.amazonaws.iotfleetwise#EncryptionType", "traits": { - "smithy.api#documentation": "

The type of encryption. Set to KMS_BASED_ENCRYPTION to use an KMS key that you own and manage. Set to FLEETWISE_DEFAULT_ENCRYPTION to use an Amazon Web Services managed key that is owned by the Amazon Web Services IoT FleetWise service account.

", + "smithy.api#documentation": "

The type of encryption. Set to KMS_BASED_ENCRYPTION to use an KMS key that \n you own and manage. Set to FLEETWISE_DEFAULT_ENCRYPTION to use an Amazon Web Services managed \n key that is owned by the Amazon Web Services IoT FleetWise service account.

", "smithy.api#required": {} } } @@ -6624,14 +7344,14 @@ "primitiveType": { "target": "com.amazonaws.iotfleetwise#ROS2PrimitiveType", "traits": { - "smithy.api#documentation": "

The primitive type (integer, floating point, boolean, etc.) for the ROS 2 primitive message definition.

", + "smithy.api#documentation": "

The primitive type (integer, floating point, boolean, etc.) for the ROS 2 primitive\n message definition.

", "smithy.api#required": {} } }, "offset": { "target": "com.amazonaws.iotfleetwise#double", "traits": { - "smithy.api#documentation": "

The offset used to calculate the signal value. Combined with scaling, the calculation is value = raw_value * scaling + offset.

" + "smithy.api#documentation": "

The offset used to calculate the signal value. Combined with scaling, the calculation\n is value = raw_value * scaling + offset.

" } }, "scaling": { @@ -6643,7 +7363,7 @@ "upperBound": { "target": "com.amazonaws.iotfleetwise#maxStringSize", "traits": { - "smithy.api#documentation": "

An optional attribute specifying the upper bound for STRING and WSTRING.

", + "smithy.api#documentation": "

An optional attribute specifying the upper bound for STRING and\n WSTRING.

", "smithy.api#range": { "min": 0, "max": 2048 @@ -6652,7 +7372,7 @@ } }, "traits": { - "smithy.api#documentation": "

Represents a ROS 2 compliant primitive type message of the complex data structure.

" + "smithy.api#documentation": "

Represents a ROS 2 compliant primitive type message of the complex data\n structure.

" } }, "com.amazonaws.iotfleetwise#ROS2PrimitiveType": { @@ -6779,7 +7499,7 @@ } ], "traits": { - "smithy.api#documentation": "\n

This API operation contains deprecated parameters. Register your account again without the Timestream resources parameter so that Amazon Web Services IoT FleetWise can remove the Timestream metadata stored. You should then pass the data destination into the CreateCampaign API operation.

\n

You must delete any existing campaigns that include an empty data destination before you register your account again. For more information, see the DeleteCampaign API operation.

\n

If you want to delete the Timestream inline policy from the service-linked role, such as to mitigate an overly permissive policy, you must first delete any existing campaigns. Then delete the service-linked role and register your account again to enable CloudWatch metrics. For more information, see DeleteServiceLinkedRole in the Identity and Access Management API Reference.

\n
\n

Registers your Amazon Web Services account, IAM, and Amazon Timestream resources so Amazon Web Services IoT FleetWise can\n transfer your vehicle data to the Amazon Web Services Cloud. For more information, including\n step-by-step procedures, see Setting up\n Amazon Web Services IoT FleetWise.

\n \n

An Amazon Web Services account is not the same thing as a \"user.\" An Amazon Web Services user is an identity that you create using Identity and Access Management (IAM) and\n takes the form of either an IAM user or an IAM role, both\n with credentials. A single Amazon Web Services account can, and typically does,\n contain many users and roles.

\n
", + "smithy.api#documentation": "\n

This API operation contains deprecated parameters. Register your account again\n without the Timestream resources parameter so that Amazon Web Services IoT FleetWise can remove the Timestream\n metadata stored. You should then pass the data destination into the CreateCampaign API operation.

\n

You must delete any existing campaigns that include an empty data destination\n before you register your account again. For more information, see the DeleteCampaign API operation.

\n

If you want to delete the Timestream inline policy from the service-linked role, such\n as to mitigate an overly permissive policy, you must first delete any existing\n campaigns. Then delete the service-linked role and register your account again to\n enable CloudWatch metrics. For more information, see DeleteServiceLinkedRole in the Identity and Access Management API\n Reference.

\n
\n

Registers your Amazon Web Services account, IAM, and Amazon Timestream resources so Amazon Web Services IoT FleetWise can\n transfer your vehicle data to the Amazon Web Services Cloud. For more information, including\n step-by-step procedures, see Setting up\n Amazon Web Services IoT FleetWise.

\n \n

An Amazon Web Services account is not the same thing as a\n \"user.\" An Amazon Web Services user is an identity that you create using Identity and Access Management (IAM) and\n takes the form of either an IAM user or an IAM role, both\n with credentials. A single Amazon Web Services account can, and typically does,\n contain many users and roles.

\n
", "smithy.api#http": { "method": "POST", "uri": "/account/registration", @@ -6868,6 +7588,16 @@ } } }, + "com.amazonaws.iotfleetwise#ResourceIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[a-zA-Z\\d\\-_:]+$" + } + }, "com.amazonaws.iotfleetwise#ResourceNotFoundException": { "type": "structure", "members": { @@ -6898,6 +7628,16 @@ "smithy.api#httpError": 404 } }, + "com.amazonaws.iotfleetwise#ResourceUniqueId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 26, + "max": 26 + }, + "smithy.api#pattern": "^[A-Z0-9]+$" + } + }, "com.amazonaws.iotfleetwise#RetryAfterSeconds": { "type": "integer", "traits": { @@ -6930,7 +7670,7 @@ "dataFormat": { "target": "com.amazonaws.iotfleetwise#DataFormat", "traits": { - "smithy.api#documentation": "

Specify the format that files are saved in the Amazon S3 bucket. You can save files in an Apache Parquet or JSON format.

\n " + "smithy.api#documentation": "

Specify the format that files are saved in the Amazon S3 bucket. You can save files in an\n Apache Parquet or JSON format.

\n " } }, "storageCompressionFormat": { @@ -6942,12 +7682,12 @@ "prefix": { "target": "com.amazonaws.iotfleetwise#Prefix", "traits": { - "smithy.api#documentation": "

(Optional) Enter an S3 bucket prefix. The prefix is the string of characters after the bucket name and before the object name. You can use the prefix to organize data stored in Amazon S3 buckets. For more information, see Organizing objects using prefixes in the Amazon Simple Storage Service User Guide.

\n

By default, Amazon Web Services IoT FleetWise sets the prefix processed-data/year=YY/month=MM/date=DD/hour=HH/ (in UTC) to data it delivers to Amazon S3. You can enter a prefix to append it to this default prefix. For example, if you enter the prefix vehicles, the prefix will be vehicles/processed-data/year=YY/month=MM/date=DD/hour=HH/.

" + "smithy.api#documentation": "

Enter an S3 bucket prefix. The prefix is the string of characters after the\n bucket name and before the object name. You can use the prefix to organize data stored\n in Amazon S3 buckets. For more information, see Organizing objects using\n prefixes in the Amazon Simple Storage Service User Guide.

\n

By default, Amazon Web Services IoT FleetWise sets the prefix\n processed-data/year=YY/month=MM/date=DD/hour=HH/ (in UTC) to data it\n delivers to Amazon S3. You can enter a prefix to append it to this default prefix. For\n example, if you enter the prefix vehicles, the prefix will be\n vehicles/processed-data/year=YY/month=MM/date=DD/hour=HH/.

" } } }, "traits": { - "smithy.api#documentation": "

The Amazon S3 bucket where the Amazon Web Services IoT FleetWise campaign sends data. Amazon S3 is an object storage service that stores data as objects within buckets. For more information, see Creating, configuring, and working with Amazon S3 buckets in the Amazon Simple Storage Service User Guide.

" + "smithy.api#documentation": "

The Amazon S3 bucket where the Amazon Web Services IoT FleetWise campaign sends data. Amazon S3 is an object storage\n service that stores data as objects within buckets. For more information, see Creating, configuring, and working with Amazon S3 buckets in the\n Amazon Simple Storage Service User Guide.

" } }, "com.amazonaws.iotfleetwise#Sensor": { @@ -7012,7 +7752,7 @@ "structFullyQualifiedName": { "target": "com.amazonaws.iotfleetwise#NodePath", "traits": { - "smithy.api#documentation": "

The fully qualified name of the struct node for a sensor if the data type of the actuator is Struct or StructArray. For example, the struct fully qualified name of a sensor might be Vehicle.ADAS.CameraStruct.

" + "smithy.api#documentation": "

The fully qualified name of the struct node for a sensor if the data type of the\n actuator is Struct or StructArray. For example, the struct\n fully qualified name of a sensor might be Vehicle.ADAS.CameraStruct.

" } } }, @@ -7102,33 +7842,39 @@ "type": { "target": "com.amazonaws.iotfleetwise#SignalDecoderType", "traits": { - "smithy.api#documentation": "

The network protocol for the vehicle. For example, CAN_SIGNAL specifies\n a protocol that defines how data is communicated between electronic control units\n (ECUs). OBD_SIGNAL specifies a protocol that defines how self-diagnostic\n data is communicated between ECUs.

", + "smithy.api#documentation": "

The network protocol for the vehicle. For example, CAN_SIGNAL specifies a\n protocol that defines how data is communicated between electronic control units (ECUs).\n OBD_SIGNAL specifies a protocol that defines how self-diagnostic data\n is communicated between ECUs.

", "smithy.api#required": {} } }, "interfaceId": { "target": "com.amazonaws.iotfleetwise#InterfaceId", "traits": { - "smithy.api#documentation": "

The ID of a network interface that specifies what network protocol a vehicle follows.

", + "smithy.api#documentation": "

The ID of a network interface that specifies what network protocol a vehicle\n follows.

", "smithy.api#required": {} } }, "canSignal": { "target": "com.amazonaws.iotfleetwise#CanSignal", "traits": { - "smithy.api#documentation": "

Information about signal decoder using the Controller Area Network (CAN) protocol.

" + "smithy.api#documentation": "

Information about signal decoder using the Controller Area Network (CAN)\n protocol.

" } }, "obdSignal": { "target": "com.amazonaws.iotfleetwise#ObdSignal", "traits": { - "smithy.api#documentation": "

Information about signal decoder using the On-board diagnostic (OBD) II protocol.

" + "smithy.api#documentation": "

Information about signal decoder using the on-board diagnostic (OBD) II\n protocol.

" } }, "messageSignal": { "target": "com.amazonaws.iotfleetwise#MessageSignal", "traits": { - "smithy.api#documentation": "

The decoding information for a specific message which supports higher order data types.

" + "smithy.api#documentation": "

The decoding information for a specific message which supports higher order data\n types.

" + } + }, + "customDecodingSignal": { + "target": "com.amazonaws.iotfleetwise#CustomDecodingSignal", + "traits": { + "smithy.api#documentation": "

Information about a custom signal \n decoder.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" } } }, @@ -7228,6 +7974,12 @@ "traits": { "smithy.api#enumValue": "EMPTY_MESSAGE_SIGNAL" } + }, + "CUSTOM_DECODING_SIGNAL_INFO_IS_NULL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM_DECODING_SIGNAL_INFO_IS_NULL" + } } } }, @@ -7251,6 +8003,12 @@ "traits": { "smithy.api#enumValue": "MESSAGE_SIGNAL" } + }, + "CUSTOM_DECODING_SIGNAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM_DECODING_SIGNAL" + } } } }, @@ -7266,6 +8024,73 @@ } } }, + "com.amazonaws.iotfleetwise#SignalFetchConfig": { + "type": "union", + "members": { + "timeBased": { + "target": "com.amazonaws.iotfleetwise#TimeBasedSignalFetchConfig", + "traits": { + "smithy.api#documentation": "

The configuration of a time-based signal fetch operation.

" + } + }, + "conditionBased": { + "target": "com.amazonaws.iotfleetwise#ConditionBasedSignalFetchConfig", + "traits": { + "smithy.api#documentation": "

The configuration of a condition-based signal fetch operation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration of the signal fetch operation.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, + "com.amazonaws.iotfleetwise#SignalFetchInformation": { + "type": "structure", + "members": { + "fullyQualifiedName": { + "target": "com.amazonaws.iotfleetwise#NodePath", + "traits": { + "smithy.api#documentation": "

The fully qualified name of the signal to be fetched.

", + "smithy.api#required": {} + } + }, + "signalFetchConfig": { + "target": "com.amazonaws.iotfleetwise#SignalFetchConfig", + "traits": { + "smithy.api#documentation": "

The configuration of the signal fetch operation.

", + "smithy.api#required": {} + } + }, + "conditionLanguageVersion": { + "target": "com.amazonaws.iotfleetwise#languageVersion", + "traits": { + "smithy.api#documentation": "

The version of the condition language used.

" + } + }, + "actions": { + "target": "com.amazonaws.iotfleetwise#EventExpressionList", + "traits": { + "smithy.api#documentation": "

The actions to be performed by the signal fetch.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the signal to be fetched.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, + "com.amazonaws.iotfleetwise#SignalFetchInformationList": { + "type": "list", + "member": { + "target": "com.amazonaws.iotfleetwise#SignalFetchInformation" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, "com.amazonaws.iotfleetwise#SignalInformation": { "type": "structure", "members": { @@ -7287,101 +8112,405 @@ "traits": { "smithy.api#documentation": "

The minimum duration of time (in milliseconds) between two triggering events to\n collect data.

\n \n

If a signal changes often, you might want to collect data at a slower rate.

\n
" } + }, + "dataPartitionId": { + "target": "com.amazonaws.iotfleetwise#DataPartitionId", + "traits": { + "smithy.api#documentation": "

The ID of the data partition this signal is associated with.

\n

The ID must match one of the IDs provided in dataPartitions. This is\n accomplished either by specifying a particular data partition ID or by using\n default for an established default partition. You can establish a\n default partition in the DataPartition data type.

\n \n

If you upload a signal as a condition for a campaign's data partition,\n the same signal must be included in signalsToCollect.

\n
\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a signal.

" + } + }, + "com.amazonaws.iotfleetwise#SignalInformationList": { + "type": "list", + "member": { + "target": "com.amazonaws.iotfleetwise#SignalInformation" + }, + "traits": { + "aws.api#data": "content", + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.iotfleetwise#SignalNodeType": { + "type": "enum", + "members": { + "SENSOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SENSOR" + } + }, + "ACTUATOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTUATOR" + } + }, + "ATTRIBUTE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ATTRIBUTE" + } + }, + "BRANCH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BRANCH" + } + }, + "CUSTOM_STRUCT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM_STRUCT" + } + }, + "CUSTOM_PROPERTY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM_PROPERTY" + } + } + } + }, + "com.amazonaws.iotfleetwise#SpoolingMode": { + "type": "enum", + "members": { + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OFF" + } + }, + "TO_DISK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TO_DISK" + } + } + } + }, + "com.amazonaws.iotfleetwise#StateTemplateAssociation": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.iotfleetwise#ResourceIdentifier", + "traits": { + "smithy.api#documentation": "

A unique, service-generated identifier.

", + "smithy.api#required": {} + } + }, + "stateTemplateUpdateStrategy": { + "target": "com.amazonaws.iotfleetwise#StateTemplateUpdateStrategy", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The state template associated with a vehicle. State templates contain state properties, which are signals that belong to a signal catalog that is synchronized between the Amazon Web Services IoT FleetWise Edge and the Amazon Web Services Cloud.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, + "com.amazonaws.iotfleetwise#StateTemplateAssociationIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.iotfleetwise#ResourceIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, + "com.amazonaws.iotfleetwise#StateTemplateAssociations": { + "type": "list", + "member": { + "target": "com.amazonaws.iotfleetwise#StateTemplateAssociation" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, + "com.amazonaws.iotfleetwise#StateTemplateDataExtraDimensionNodePathList": { + "type": "list", + "member": { + "target": "com.amazonaws.iotfleetwise#NodePath" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 + } + } + }, + "com.amazonaws.iotfleetwise#StateTemplateMetadataExtraDimensionNodePathList": { + "type": "list", + "member": { + "target": "com.amazonaws.iotfleetwise#NodePath" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 + } + } + }, + "com.amazonaws.iotfleetwise#StateTemplateProperties": { + "type": "list", + "member": { + "target": "com.amazonaws.iotfleetwise#NodePath" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.iotfleetwise#StateTemplateResource": { + "type": "resource", + "identifiers": { + "identifier": { + "target": "com.amazonaws.iotfleetwise#ResourceIdentifier" + } + }, + "create": { + "target": "com.amazonaws.iotfleetwise#CreateStateTemplate" + }, + "read": { + "target": "com.amazonaws.iotfleetwise#GetStateTemplate" + }, + "update": { + "target": "com.amazonaws.iotfleetwise#UpdateStateTemplate" + }, + "delete": { + "target": "com.amazonaws.iotfleetwise#DeleteStateTemplate" + }, + "list": { + "target": "com.amazonaws.iotfleetwise#ListStateTemplates" + }, + "traits": { + "aws.cloudformation#cfnResource": { + "name": "StateTemplate" + } + } + }, + "com.amazonaws.iotfleetwise#StateTemplateSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.iotfleetwise#StateTemplateSummary" + } + }, + "com.amazonaws.iotfleetwise#StateTemplateSummary": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.iotfleetwise#resourceName", + "traits": { + "smithy.api#documentation": "

The name of the state template.

" + } + }, + "arn": { + "target": "com.amazonaws.iotfleetwise#arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the state template.

" + } + }, + "signalCatalogArn": { + "target": "com.amazonaws.iotfleetwise#arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the signal catalog associated with the state template.

" + } + }, + "description": { + "target": "com.amazonaws.iotfleetwise#description", + "traits": { + "smithy.api#documentation": "

A brief description of the state template.

" + } + }, + "creationTime": { + "target": "com.amazonaws.iotfleetwise#timestamp", + "traits": { + "smithy.api#documentation": "

The time the state template was created, in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + }, + "lastModificationTime": { + "target": "com.amazonaws.iotfleetwise#timestamp", + "traits": { + "smithy.api#documentation": "

The time the state template was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + }, + "id": { + "target": "com.amazonaws.iotfleetwise#ResourceUniqueId", + "traits": { + "smithy.api#documentation": "

The unique ID of the state template.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a state template.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, + "com.amazonaws.iotfleetwise#StateTemplateUpdateStrategy": { + "type": "union", + "members": { + "periodic": { + "target": "com.amazonaws.iotfleetwise#PeriodicStateTemplateUpdateStrategy" + }, + "onChange": { + "target": "com.amazonaws.iotfleetwise#OnChangeStateTemplateUpdateStrategy" + } + }, + "traits": { + "smithy.api#documentation": "

The update strategy for the state template. Vehicles associated with the state template can stream telemetry data with either an onChange or periodic update strategy.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, + "com.amazonaws.iotfleetwise#StorageCompressionFormat": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "GZIP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GZIP" + } } - }, - "traits": { - "smithy.api#documentation": "

Information about a signal.

" } }, - "com.amazonaws.iotfleetwise#SignalInformationList": { - "type": "list", - "member": { - "target": "com.amazonaws.iotfleetwise#SignalInformation" - }, + "com.amazonaws.iotfleetwise#StorageLocation": { + "type": "string", "traits": { "aws.api#data": "content", "smithy.api#length": { - "min": 0, - "max": 1000 + "min": 1, + "max": 4096 }, "smithy.api#sensitive": {} } }, - "com.amazonaws.iotfleetwise#SignalNodeType": { - "type": "enum", + "com.amazonaws.iotfleetwise#StorageMaximumSize": { + "type": "structure", "members": { - "SENSOR": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SENSOR" - } - }, - "ACTUATOR": { - "target": "smithy.api#Unit", + "unit": { + "target": "com.amazonaws.iotfleetwise#StorageMaximumSizeUnit", "traits": { - "smithy.api#enumValue": "ACTUATOR" + "smithy.api#documentation": "

The data type of the data to store.

", + "smithy.api#required": {} } }, - "ATTRIBUTE": { - "target": "smithy.api#Unit", + "value": { + "target": "com.amazonaws.iotfleetwise#StorageMaximumSizeValue", "traits": { - "smithy.api#enumValue": "ATTRIBUTE" + "smithy.api#documentation": "

The maximum amount of time to store data.

", + "smithy.api#required": {} } - }, - "BRANCH": { + } + }, + "traits": { + "smithy.api#documentation": "

The maximum storage size for the data partition.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } + }, + "com.amazonaws.iotfleetwise#StorageMaximumSizeUnit": { + "type": "enum", + "members": { + "MB": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "BRANCH" + "smithy.api#enumValue": "MB" } }, - "CUSTOM_STRUCT": { + "GB": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CUSTOM_STRUCT" + "smithy.api#enumValue": "GB" } }, - "CUSTOM_PROPERTY": { + "TB": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CUSTOM_PROPERTY" + "smithy.api#enumValue": "TB" } } } }, - "com.amazonaws.iotfleetwise#SpoolingMode": { - "type": "enum", + "com.amazonaws.iotfleetwise#StorageMaximumSizeValue": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1073741824 + } + } + }, + "com.amazonaws.iotfleetwise#StorageMinimumTimeToLive": { + "type": "structure", "members": { - "OFF": { - "target": "smithy.api#Unit", + "unit": { + "target": "com.amazonaws.iotfleetwise#StorageMinimumTimeToLiveUnit", "traits": { - "smithy.api#enumValue": "OFF" + "smithy.api#documentation": "

The time increment type.

", + "smithy.api#required": {} } }, - "TO_DISK": { - "target": "smithy.api#Unit", + "value": { + "target": "com.amazonaws.iotfleetwise#StorageMinimumTimeToLiveValue", "traits": { - "smithy.api#enumValue": "TO_DISK" + "smithy.api#documentation": "

The minimum amount of time to store the data.

", + "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#documentation": "

Information about the minimum amount of time that data will be kept.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" } }, - "com.amazonaws.iotfleetwise#StorageCompressionFormat": { + "com.amazonaws.iotfleetwise#StorageMinimumTimeToLiveUnit": { "type": "enum", "members": { - "NONE": { + "HOURS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#enumValue": "HOURS" } }, - "GZIP": { + "DAYS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "GZIP" + "smithy.api#enumValue": "DAYS" + } + }, + "WEEKS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WEEKS" } } } }, + "com.amazonaws.iotfleetwise#StorageMinimumTimeToLiveValue": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 876600 + } + } + }, "com.amazonaws.iotfleetwise#StructureMessageName": { "type": "string", "traits": { @@ -7414,7 +8543,7 @@ } }, "traits": { - "smithy.api#documentation": "

The structured message for the message signal. It can be defined with either a primitiveMessageDefinition, structuredMessageListDefinition, or structuredMessageDefinition recursively.

" + "smithy.api#documentation": "

The structured message for the message signal. It can be defined with either a\n primitiveMessageDefinition,\n structuredMessageListDefinition, or\n structuredMessageDefinition recursively.

" } }, "com.amazonaws.iotfleetwise#StructuredMessageDefinition": { @@ -7435,7 +8564,7 @@ "fieldName": { "target": "com.amazonaws.iotfleetwise#StructureMessageName", "traits": { - "smithy.api#documentation": "

The field name of the structured message. It determines how a data value is referenced in the target language.

", + "smithy.api#documentation": "

The field name of the structured message. It determines how a data value is referenced\n in the target language.

", "smithy.api#required": {} } }, @@ -7448,7 +8577,7 @@ } }, "traits": { - "smithy.api#documentation": "

Represents a StructureMessageName to DataType map element.

" + "smithy.api#documentation": "

Represents a StructureMessageName to DataType map\n element.

" } }, "com.amazonaws.iotfleetwise#StructuredMessageListDefinition": { @@ -7479,7 +8608,7 @@ "target": "com.amazonaws.iotfleetwise#nonNegativeInteger", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The capacity of the structured message list definition when the list type is FIXED_CAPACITY or DYNAMIC_BOUNDED_CAPACITY.

" + "smithy.api#documentation": "

The capacity of the structured message list definition when the list type is\n FIXED_CAPACITY or DYNAMIC_BOUNDED_CAPACITY.

" } } }, @@ -7675,7 +8804,7 @@ "periodMs": { "target": "com.amazonaws.iotfleetwise#collectionPeriodMs", "traits": { - "smithy.api#documentation": "

The time period (in milliseconds) to decide how often to collect data. For example,\n if the time period is 60000, the Edge Agent software collects data once\n every minute.

", + "smithy.api#documentation": "

The time period (in milliseconds) to decide how often to collect data. For example, if\n the time period is 60000, the Edge Agent software collects data once every\n minute.

", "smithy.api#required": {} } } @@ -7684,6 +8813,72 @@ "smithy.api#documentation": "

Information about a collection scheme that uses a time period to decide how often to\n collect data.

" } }, + "com.amazonaws.iotfleetwise#TimeBasedSignalFetchConfig": { + "type": "structure", + "members": { + "executionFrequencyMs": { + "target": "com.amazonaws.iotfleetwise#positiveLong", + "traits": { + "smithy.api#documentation": "

The frequency with which the signal fetch will be executed.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Used to configure a frequency-based vehicle signal fetch.

" + } + }, + "com.amazonaws.iotfleetwise#TimePeriod": { + "type": "structure", + "members": { + "unit": { + "target": "com.amazonaws.iotfleetwise#TimeUnit", + "traits": { + "smithy.api#documentation": "

A unit of time.

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.iotfleetwise#positiveInteger", + "traits": { + "smithy.api#documentation": "

A number of time units.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The length of time between state template updates.

" + } + }, + "com.amazonaws.iotfleetwise#TimeUnit": { + "type": "enum", + "members": { + "MILLISECOND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MILLISECOND" + } + }, + "SECOND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SECOND" + } + }, + "MINUTE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MINUTE" + } + }, + "HOUR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOUR" + } + } + } + }, "com.amazonaws.iotfleetwise#TimestreamConfig": { "type": "structure", "members": { @@ -7697,13 +8892,13 @@ "executionRoleArn": { "target": "com.amazonaws.iotfleetwise#IAMRoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution role that grants Amazon Web Services IoT FleetWise permission to deliver data to the Amazon Timestream table.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution role that grants Amazon Web Services IoT FleetWise permission to\n deliver data to the Amazon Timestream table.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

The Amazon Timestream table where the Amazon Web Services IoT FleetWise campaign sends data. Timestream stores and organizes data to optimize query processing time and to reduce storage costs. For more information, see Data modeling in the Amazon Timestream Developer Guide.

" + "smithy.api#documentation": "

The Amazon Timestream table where the Amazon Web Services IoT FleetWise campaign sends data. Timestream stores and organizes\n data to optimize query processing time and to reduce storage costs. For more\n information, see Data modeling in\n the Amazon Timestream Developer Guide.

" } }, "com.amazonaws.iotfleetwise#TimestreamDatabaseName": { @@ -7984,7 +9179,7 @@ "action": { "target": "com.amazonaws.iotfleetwise#UpdateCampaignAction", "traits": { - "smithy.api#documentation": "

Specifies how to update a campaign. The action can be one of the following:

\n ", + "smithy.api#documentation": "

Specifies how to update a campaign. The action can be one of the following:

\n ", "smithy.api#required": {} } } @@ -8112,6 +9307,12 @@ "traits": { "smithy.api#documentation": "

The state of the decoder manifest. If the status is ACTIVE, the decoder\n manifest can't be edited. If the status is DRAFT, you can edit the decoder\n manifest.

" } + }, + "defaultForUnmappedSignals": { + "target": "com.amazonaws.iotfleetwise#DefaultForUnmappedSignalsType", + "traits": { + "smithy.api#documentation": "

Use default decoders for all unmapped signals in the model. You don't need to provide any detailed decoding information.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
" + } } } }, @@ -8163,7 +9364,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the description of an existing fleet.

\n \n

If the fleet is successfully updated, Amazon Web Services IoT FleetWise sends back an HTTP 200 response\n with an empty HTTP body.

\n
", + "smithy.api#documentation": "

Updates the description of an existing fleet.

", "smithy.api#http": { "method": "PATCH", "uri": "/fleets/{fleetId}", @@ -8424,6 +9625,119 @@ } } }, + "com.amazonaws.iotfleetwise#UpdateStateTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iotfleetwise#UpdateStateTemplateRequest" + }, + "output": { + "target": "com.amazonaws.iotfleetwise#UpdateStateTemplateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iotfleetwise#AccessDeniedException" + }, + { + "target": "com.amazonaws.iotfleetwise#InternalServerException" + }, + { + "target": "com.amazonaws.iotfleetwise#InvalidSignalsException" + }, + { + "target": "com.amazonaws.iotfleetwise#LimitExceededException" + }, + { + "target": "com.amazonaws.iotfleetwise#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iotfleetwise#ThrottlingException" + }, + { + "target": "com.amazonaws.iotfleetwise#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a state template.

\n \n

Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see Amazon Web Services Region and feature availability in the Amazon Web Services IoT FleetWise Developer Guide.

\n
", + "smithy.api#http": { + "method": "PATCH", + "uri": "/state-templates/{identifier}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.iotfleetwise#UpdateStateTemplateRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.iotfleetwise#ResourceIdentifier", + "traits": { + "smithy.api#documentation": "

A unique, service-generated identifier.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.iotfleetwise#description", + "traits": { + "smithy.api#documentation": "

A brief description of the state template.

" + } + }, + "stateTemplatePropertiesToAdd": { + "target": "com.amazonaws.iotfleetwise#StateTemplateProperties", + "traits": { + "smithy.api#documentation": "

Add signals from which data is collected as part of the state template.

" + } + }, + "stateTemplatePropertiesToRemove": { + "target": "com.amazonaws.iotfleetwise#StateTemplateProperties", + "traits": { + "smithy.api#documentation": "

Remove signals from which data is collected as part of the state template.

" + } + }, + "dataExtraDimensions": { + "target": "com.amazonaws.iotfleetwise#StateTemplateDataExtraDimensionNodePathList", + "traits": { + "smithy.api#documentation": "

A list of vehicle attributes to associate with the payload published on the state template's \n MQTT topic. (See \n Processing last known state vehicle data using MQTT messaging). For example, if you add \n Vehicle.Attributes.Make and Vehicle.Attributes.Model attributes, Amazon Web Services IoT FleetWise \n will enrich the protobuf encoded payload with those attributes in the extraDimensions\n field.

\n

Default: An empty array

" + } + }, + "metadataExtraDimensions": { + "target": "com.amazonaws.iotfleetwise#StateTemplateMetadataExtraDimensionNodePathList", + "traits": { + "smithy.api#documentation": "

A list of vehicle attributes to associate with user properties of the messages published on the\n state template's MQTT topic. (See \n Processing last known state vehicle data using MQTT messaging). For example, if you add \n Vehicle.Attributes.Make and Vehicle.Attributes.Model attributes, Amazon Web Services IoT FleetWise \n will include these attributes as User Properties with the MQTT message.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iotfleetwise#UpdateStateTemplateResponse": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.iotfleetwise#resourceName", + "traits": { + "smithy.api#documentation": "

The name of the state template.

" + } + }, + "arn": { + "target": "com.amazonaws.iotfleetwise#arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the state template.

" + } + }, + "id": { + "target": "com.amazonaws.iotfleetwise#ResourceUniqueId", + "traits": { + "smithy.api#documentation": "

The unique ID of the state template.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iotfleetwise#UpdateVehicle": { "type": "operation", "input": { @@ -8525,6 +9839,18 @@ "traits": { "smithy.api#documentation": "

The method the specified attributes will update the existing attributes on the\n vehicle. UseOverwite to replace the vehicle attributes with the specified\n attributes. Or use Merge to combine all attributes.

\n

This is required if attributes are present in the input.

" } + }, + "stateTemplatesToAdd": { + "target": "com.amazonaws.iotfleetwise#StateTemplateAssociations", + "traits": { + "smithy.api#documentation": "

Associate state templates with the vehicle.

" + } + }, + "stateTemplatesToRemove": { + "target": "com.amazonaws.iotfleetwise#StateTemplateAssociationIdentifiers", + "traits": { + "smithy.api#documentation": "

Remove state templates from the vehicle.

" + } } } }, @@ -8541,7 +9867,7 @@ "modelManifestArn": { "target": "com.amazonaws.iotfleetwise#arn", "traits": { - "smithy.api#documentation": "

The ARN of the vehicle model (model manifest) associated with the vehicle to update.

" + "smithy.api#documentation": "

The ARN of the vehicle model (model manifest) associated with the vehicle to\n update.

" } }, "decoderManifestArn": { @@ -8561,6 +9887,18 @@ "traits": { "smithy.api#documentation": "

The method the specified attributes will update the existing attributes on the\n vehicle. UseOverwite to replace the vehicle attributes with the specified\n attributes. Or use Merge to combine all attributes.

\n

This is required if attributes are present in the input.

" } + }, + "stateTemplatesToAdd": { + "target": "com.amazonaws.iotfleetwise#StateTemplateAssociations", + "traits": { + "smithy.api#documentation": "

Associate additional state templates to track the state of the vehicle. State templates determine which signal updates the vehicle sends to the cloud.

" + } + }, + "stateTemplatesToRemove": { + "target": "com.amazonaws.iotfleetwise#StateTemplateAssociationIdentifiers", + "traits": { + "smithy.api#documentation": "

Remove existing state template associations from the vehicle.

" + } } }, "traits": { @@ -8616,13 +9954,13 @@ "reason": { "target": "com.amazonaws.iotfleetwise#ValidationExceptionReason", "traits": { - "smithy.api#documentation": "

The reason the input failed to satisfy the constraints specified by an Amazon Web Services service.

" + "smithy.api#documentation": "

The reason the input failed to satisfy the constraints specified by an Amazon Web Services\n service.

" } }, "fieldList": { "target": "com.amazonaws.iotfleetwise#ValidationExceptionFieldList", "traits": { - "smithy.api#documentation": "

The list of fields that fail to satisfy the constraints specified by an Amazon Web Services service.

" + "smithy.api#documentation": "

The list of fields that fail to satisfy the constraints specified by an Amazon Web Services\n service.

" } } }, @@ -8739,7 +10077,7 @@ } }, "traits": { - "smithy.api#documentation": "

The vehicle middleware defined as a type of network interface. Examples of vehicle middleware include ROS2 and SOME/IP.

" + "smithy.api#documentation": "

The vehicle middleware defined as a type of network interface. Examples of vehicle\n middleware include ROS2 and SOME/IP.

" } }, "com.amazonaws.iotfleetwise#VehicleMiddlewareName": { @@ -8857,12 +10195,12 @@ "status": { "target": "com.amazonaws.iotfleetwise#VehicleState", "traits": { - "smithy.api#documentation": "

The state of a vehicle, which can be one of the following:

\n " + "smithy.api#documentation": "

The status of a campaign, which can be one of the following:

\n " } } }, "traits": { - "smithy.api#documentation": "

Information about the state of a vehicle and how it relates to the status of a\n campaign.

" + "smithy.api#documentation": "

Information about a campaign associated with a vehicle.

" } }, "com.amazonaws.iotfleetwise#VehicleStatusList": { @@ -8927,6 +10265,17 @@ "smithy.api#documentation": "

Information about a vehicle.

\n

To return this information about vehicles in your account, you can use the API operation.

" } }, + "com.amazonaws.iotfleetwise#actionEventExpression": { + "type": "string", + "traits": { + "aws.api#data": "content", + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#sensitive": {} + } + }, "com.amazonaws.iotfleetwise#arn": { "type": "string" }, @@ -9067,6 +10416,17 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.iotfleetwise#fetchConfigEventExpression": { + "type": "string", + "traits": { + "aws.api#data": "content", + "smithy.api#length": { + "min": 1, + "max": 400 + }, + "smithy.api#sensitive": {} + } + }, "com.amazonaws.iotfleetwise#fleetId": { "type": "string", "traits": { @@ -9188,6 +10548,14 @@ } } }, + "com.amazonaws.iotfleetwise#positiveLong": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, "com.amazonaws.iotfleetwise#priority": { "type": "integer", "traits": { diff --git a/codegen/sdk-codegen/aws-models/lambda.json b/codegen/sdk-codegen/aws-models/lambda.json index 49eb6ab3803..e86a0448002 100644 --- a/codegen/sdk-codegen/aws-models/lambda.json +++ b/codegen/sdk-codegen/aws-models/lambda.json @@ -250,7 +250,7 @@ "name": "lambda" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "Lambda\n

\n Overview\n

\n

Lambda is a compute service that lets you run code without provisioning or managing servers.\n Lambda runs your code on a high-availability compute infrastructure and performs all of the\n administration of the compute resources, including server and operating system maintenance, capacity provisioning\n and automatic scaling, code monitoring and logging. With Lambda, you can run code for virtually any\n type of application or backend service. For more information about the Lambda service, see What is Lambda in the Lambda Developer Guide.

\n

The Lambda API Reference provides information about\n each of the API methods, including details about the parameters in each API request and\n response.

\n

\n

You can use Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command\n line tools to access the API. For installation instructions, see Tools for\n Amazon Web Services.

\n

For a list of Region-specific endpoints that Lambda supports, \n see Lambda\n endpoints and quotas in the Amazon Web Services General Reference..

\n

When making the API calls, you will need to\n authenticate your request by providing a signature. Lambda supports signature version 4. For more information,\n see Signature Version 4 signing process in the\n Amazon Web Services General Reference..

\n

\n CA certificates\n

\n

Because Amazon Web Services SDKs use the CA certificates from your computer, changes to the certificates on the Amazon Web Services servers\n can cause connection failures when you attempt to use an SDK. You can prevent these failures by keeping your\n computer's CA certificates and operating system up-to-date. If you encounter this issue in a corporate\n environment and do not manage your own computer, you might need to ask an administrator to assist with the\n update process. The following list shows minimum operating system and Java versions:

\n \n

When accessing the Lambda management console or Lambda API endpoints, whether through browsers or\n programmatically, you will need to ensure your client machines support any of the following CAs:

\n \n

Root certificates from the first two authorities are available from Amazon trust services, but keeping your computer\n up-to-date is the more straightforward solution. To learn more about ACM-provided certificates, see Amazon Web Services Certificate Manager FAQs.\n

", + "smithy.api#documentation": "Lambda\n

\n Overview\n

\n

Lambda is a compute service that lets you run code without provisioning or managing servers.\n Lambda runs your code on a high-availability compute infrastructure and performs all of the\n administration of the compute resources, including server and operating system maintenance, capacity provisioning\n and automatic scaling, code monitoring and logging. With Lambda, you can run code for virtually any\n type of application or backend service. For more information about the Lambda service, see What is Lambda in the Lambda Developer Guide.

\n

The Lambda API Reference provides information about\n each of the API methods, including details about the parameters in each API request and\n response.

\n

\n

You can use Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command\n line tools to access the API. For installation instructions, see Tools for\n Amazon Web Services.

\n

For a list of Region-specific endpoints that Lambda supports, \n see Lambda\n endpoints and quotas in the Amazon Web Services General Reference..

\n

When making the API calls, you will need to\n authenticate your request by providing a signature. Lambda supports signature version 4. For more information,\n see Signature Version 4 signing process in the\n Amazon Web Services General Reference..

\n

\n CA certificates\n

\n

Because Amazon Web Services SDKs use the CA certificates from your computer, changes to the certificates on the Amazon Web Services servers\n can cause connection failures when you attempt to use an SDK. You can prevent these failures by keeping your\n computer's CA certificates and operating system up-to-date. If you encounter this issue in a corporate\n environment and do not manage your own computer, you might need to ask an administrator to assist with the\n update process. The following list shows minimum operating system and Java versions:

\n \n

When accessing the Lambda management console or Lambda API endpoints, whether through browsers or\n programmatically, you will need to ensure your client machines support any of the following CAs:

\n \n

Root certificates from the first two authorities are available from Amazon trust services, but keeping your computer\n up-to-date is the more straightforward solution. To learn more about ACM-provided certificates, see Amazon Web Services Certificate Manager FAQs.\n

", "smithy.api#title": "AWS Lambda", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -2593,7 +2593,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a mapping between an event source and an Lambda function. Lambda reads items from the event source and invokes the function.

\n

For details about how to configure different event sources, see the following topics.

\n \n

The following error handling options are available only for stream sources (DynamoDB and Kinesis):

\n \n

For information about which configuration parameters apply to each event source, see the following topics.

\n ", + "smithy.api#documentation": "

Creates a mapping between an event source and an Lambda function. Lambda reads items from the event source and invokes the function.

\n

For details about how to configure different event sources, see the following topics.

\n \n

The following error handling options are available only for DynamoDB and Kinesis event sources:

\n \n

For stream sources (DynamoDB, Kinesis, Amazon MSK, and self-managed Apache Kafka), the following option is also available:

\n \n

For information about which configuration parameters apply to each event source, see the following topics.

\n ", "smithy.api#examples": [ { "title": "To create a mapping between an event source and an AWS Lambda function", @@ -2774,6 +2774,12 @@ "traits": { "smithy.api#documentation": "

\n The ARN of the Key Management Service (KMS) customer managed key that Lambda\n uses to encrypt your function's filter criteria.\n By default, Lambda does not encrypt your filter criteria object. Specify this\n property to encrypt data using your own customer managed key.\n

" } + }, + "MetricsConfig": { + "target": "com.amazonaws.lambda#EventSourceMappingMetricsConfig", + "traits": { + "smithy.api#documentation": "

The metrics configuration for your event source. For more information, see Event source mapping metrics.

" + } } }, "traits": { @@ -4335,12 +4341,55 @@ "traits": { "smithy.api#documentation": "

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

" } + }, + "MetricsConfig": { + "target": "com.amazonaws.lambda#EventSourceMappingMetricsConfig", + "traits": { + "smithy.api#documentation": "

The metrics configuration for your event source. For more information, see Event source mapping metrics.

" + } } }, "traits": { "smithy.api#documentation": "

A mapping between an Amazon Web Services resource and a Lambda function. For details, see CreateEventSourceMapping.

" } }, + "com.amazonaws.lambda#EventSourceMappingMetric": { + "type": "enum", + "members": { + "EventCount": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EventCount" + } + } + } + }, + "com.amazonaws.lambda#EventSourceMappingMetricList": { + "type": "list", + "member": { + "target": "com.amazonaws.lambda#EventSourceMappingMetric" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1 + } + } + }, + "com.amazonaws.lambda#EventSourceMappingMetricsConfig": { + "type": "structure", + "members": { + "Metrics": { + "target": "com.amazonaws.lambda#EventSourceMappingMetricList", + "traits": { + "smithy.api#documentation": "

\n The metrics you want your event source mapping to produce. Include EventCount to receive event source mapping\n metrics related to the number of events processed by your event source mapping. For more information about these metrics,\n see \n Event source mapping metrics.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The metrics configuration for your event source. Use this configuration object to define which metrics you want your\n event source mapping to produce.

" + } + }, "com.amazonaws.lambda#EventSourceMappingsList": { "type": "list", "member": { @@ -4864,7 +4913,7 @@ "DestinationConfig": { "target": "com.amazonaws.lambda#DestinationConfig", "traits": { - "smithy.api#documentation": "

A destination for events after they have been sent to a function for processing.

\n

\n Destinations\n

\n " + "smithy.api#documentation": "

A destination for events after they have been sent to a function for processing.

\n

\n Destinations\n

\n \n \n

S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type.

\n
" } } } @@ -9609,7 +9658,7 @@ "Destination": { "target": "com.amazonaws.lambda#DestinationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the destination resource.

\n

To retain records of asynchronous invocations,\n you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function,\n or Amazon EventBridge event bus as the destination.

\n

To retain records of failed invocations from Kinesis and\n DynamoDB event sources, you can configure an Amazon SNS topic or\n Amazon SQS queue as the destination.

\n

To retain records of failed invocations from self-managed Kafka or\n Amazon MSK,\n you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the destination resource.

\n

To retain records of unsuccessful asynchronous invocations,\n you can configure an Amazon SNS topic, Amazon SQS queue, Amazon S3 bucket, Lambda function,\n or Amazon EventBridge event bus as the destination.

\n

To retain records of failed invocations from Kinesis, \n DynamoDB, self-managed Kafka or\n Amazon MSK,\n you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.

" } } }, @@ -9628,7 +9677,7 @@ } }, "traits": { - "smithy.api#documentation": "

A destination for events that were processed successfully.

" + "smithy.api#documentation": "

A destination for events that were processed successfully.

\n

To retain records of successful asynchronous invocations,\n you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function,\n or Amazon EventBridge event bus as the destination.

" } }, "com.amazonaws.lambda#OrganizationId": { @@ -10314,7 +10363,7 @@ } ], "traits": { - "smithy.api#documentation": "

Configures options for asynchronous\n invocation on a function, version, or alias. If a configuration already exists for a function, version,\n or alias, this operation overwrites it. If you exclude any settings, they are removed. To set one option without\n affecting existing settings for other options, use UpdateFunctionEventInvokeConfig.

\n

By default, Lambda retries an asynchronous invocation twice if the function returns an error. It retains\n events in a queue for up to six hours. When an event fails all processing attempts or stays in the asynchronous\n invocation queue for too long, Lambda discards it. To retain discarded events, configure a dead-letter queue with\n UpdateFunctionConfiguration.

\n

To send an invocation record to a queue, topic, function, or event bus, specify a destination. You can configure separate destinations for successful invocations (on-success) and events\n that fail all processing attempts (on-failure). You can configure destinations in addition to or instead of a\n dead-letter queue.

", + "smithy.api#documentation": "

Configures options for asynchronous\n invocation on a function, version, or alias. If a configuration already exists for a function, version,\n or alias, this operation overwrites it. If you exclude any settings, they are removed. To set one option without\n affecting existing settings for other options, use UpdateFunctionEventInvokeConfig.

\n

By default, Lambda retries an asynchronous invocation twice if the function returns an error. It retains\n events in a queue for up to six hours. When an event fails all processing attempts or stays in the asynchronous\n invocation queue for too long, Lambda discards it. To retain discarded events, configure a dead-letter queue with\n UpdateFunctionConfiguration.

\n

To send an invocation record to a queue, topic, S3 bucket, function, or event bus, specify a destination. You can configure separate destinations for successful invocations (on-success) and events\n that fail all processing attempts (on-failure). You can configure destinations in addition to or instead of a\n dead-letter queue.

\n \n

S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type.

\n
", "smithy.api#http": { "method": "PUT", "uri": "/2019-09-25/functions/{FunctionName}/event-invoke-config", @@ -10355,7 +10404,7 @@ "DestinationConfig": { "target": "com.amazonaws.lambda#DestinationConfig", "traits": { - "smithy.api#documentation": "

A destination for events after they have been sent to a function for processing.

\n

\n Destinations\n

\n " + "smithy.api#documentation": "

A destination for events after they have been sent to a function for processing.

\n

\n Destinations\n

\n \n \n

S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type.

\n
" } } }, @@ -12540,7 +12589,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates an event source mapping. You can change the function that Lambda invokes, or pause\n invocation and resume later from the same location.

\n

For details about how to configure different event sources, see the following topics.

\n \n

The following error handling options are available only for stream sources (DynamoDB and Kinesis):

\n \n

For information about which configuration parameters apply to each event source, see the following topics.

\n ", + "smithy.api#documentation": "

Updates an event source mapping. You can change the function that Lambda invokes, or pause\n invocation and resume later from the same location.

\n

For details about how to configure different event sources, see the following topics.

\n \n

The following error handling options are available only for DynamoDB and Kinesis event sources:

\n \n

For stream sources (DynamoDB, Kinesis, Amazon MSK, and self-managed Apache Kafka), the following option is also available:

\n \n

For information about which configuration parameters apply to each event source, see the following topics.

\n ", "smithy.api#http": { "method": "PUT", "uri": "/2015-03-31/event-source-mappings/{UUID}", @@ -12654,6 +12703,12 @@ "traits": { "smithy.api#documentation": "

\n The ARN of the Key Management Service (KMS) customer managed key that Lambda\n uses to encrypt your function's filter criteria.\n By default, Lambda does not encrypt your filter criteria object. Specify this\n property to encrypt data using your own customer managed key.\n

" } + }, + "MetricsConfig": { + "target": "com.amazonaws.lambda#EventSourceMappingMetricsConfig", + "traits": { + "smithy.api#documentation": "

The metrics configuration for your event source. For more information, see Event source mapping metrics.

" + } } }, "traits": { @@ -13107,7 +13162,7 @@ "DestinationConfig": { "target": "com.amazonaws.lambda#DestinationConfig", "traits": { - "smithy.api#documentation": "

A destination for events after they have been sent to a function for processing.

\n

\n Destinations\n

\n " + "smithy.api#documentation": "

A destination for events after they have been sent to a function for processing.

\n

\n Destinations\n

\n \n \n

S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type.

\n
" } } }, diff --git a/codegen/sdk-codegen/aws-models/notifications.json b/codegen/sdk-codegen/aws-models/notifications.json new file mode 100644 index 00000000000..5614b4b6abf --- /dev/null +++ b/codegen/sdk-codegen/aws-models/notifications.json @@ -0,0 +1,4059 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.notifications#AccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notifications#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

User does not have sufficient access to perform this action.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.notifications#AccountId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^\\d{12}$" + } + }, + "com.amazonaws.notifications#AggregationDuration": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "LONG", + "value": "LONG", + "documentation": "Aggregate notifications for long periods of time (12 hours)" + }, + { + "name": "SHORT", + "value": "SHORT", + "documentation": "Aggregate notifications for short periods of time (5 mins)" + }, + { + "name": "NONE", + "value": "NONE", + "documentation": "Do not aggregate notifications sourced from a notification configuration" + } + ] + } + }, + "com.amazonaws.notifications#AggregationEventType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "AGGREGATE", + "value": "AGGREGATE" + }, + { + "name": "CHILD", + "value": "CHILD" + }, + { + "name": "NONE", + "value": "NONE" + } + ] + } + }, + "com.amazonaws.notifications#Arn": { + "type": "string", + "traits": { + "aws.api#arnReference": {}, + "smithy.api#pattern": "^arn:[^:]*:[^:]*:[^:]*:.*$" + } + }, + "com.amazonaws.notifications#AssociateChannel": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#AssociateChannelRequest" + }, + "output": { + "target": "com.amazonaws.notifications#AssociateChannelResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#ConflictException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to associate a new Channel with a particular NotificationConfiguration" + }, + "smithy.api#documentation": "

Associates a delivery Channel with a particular NotificationConfiguration. Supported Channels include AWS Chatbot,\nthe AWS Console Mobile Application, and emails (notifications-contacts).

", + "smithy.api#http": { + "code": 201, + "method": "POST", + "uri": "/channels/associate/{arn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#AssociateChannelRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#ChannelArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Channel to associate with the NotificationConfiguration.

\n

Supported ARNs include AWS Chatbot, the Console Mobile Application, and notifications-contacts.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN of the NotificationConfiguration to associate with the Channel.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#AssociateChannelResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#Channel": { + "type": "resource", + "identifiers": { + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn" + }, + "arn": { + "target": "com.amazonaws.notifications#ChannelArn" + } + }, + "put": { + "target": "com.amazonaws.notifications#AssociateChannel" + }, + "delete": { + "target": "com.amazonaws.notifications#DisassociateChannel" + }, + "list": { + "target": "com.amazonaws.notifications#ListChannels" + }, + "traits": { + "aws.cloudformation#cfnResource": {} + } + }, + "com.amazonaws.notifications#ChannelArn": { + "type": "string", + "traits": { + "aws.api#arnReference": {}, + "smithy.api#pattern": "^arn:aws:(chatbot|consoleapp|notifications-contacts):[a-zA-Z0-9-]*:[0-9]{12}:[a-zA-Z0-9-_.@]+/[a-zA-Z0-9/_.@:-]+$" + } + }, + "com.amazonaws.notifications#Channels": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#ChannelArn" + } + }, + "com.amazonaws.notifications#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notifications#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "com.amazonaws.notifications#ResourceId", + "traits": { + "smithy.api#documentation": "

The resource ID that prompted the conflict error.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Updating or deleting a resource can cause an inconsistent state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.notifications#CreateEventRule": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#CreateEventRuleRequest" + }, + "output": { + "target": "com.amazonaws.notifications#CreateEventRuleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#ConflictException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to create a new EventRule, associating it with a NotificationConfiguration" + }, + "smithy.api#documentation": "

Creates an EventRule that is associated with a specified Notification Configuration.

", + "smithy.api#http": { + "code": 201, + "method": "POST", + "uri": "/event-rules" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#CreateEventRuleRequest": { + "type": "structure", + "members": { + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the NotificationConfiguration associated with this EventRule.

", + "smithy.api#required": {} + } + }, + "source": { + "target": "com.amazonaws.notifications#Source", + "traits": { + "smithy.api#documentation": "

The matched event source.

\n

Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see Event delivery from AWS services in the Amazon EventBridge User Guide.

", + "smithy.api#required": {} + } + }, + "eventType": { + "target": "com.amazonaws.notifications#EventType", + "traits": { + "smithy.api#documentation": "

The event type to match.

\n

Must match one of the valid Amazon EventBridge event types. For example, EC2 Instance State-change Notification and AWS CloudWatch Alarm State Change. For more information, see Event delivery from AWS services in the Amazon EventBridge User Guide.

", + "smithy.api#required": {} + } + }, + "eventPattern": { + "target": "com.amazonaws.notifications#EventRuleEventPattern", + "traits": { + "smithy.api#documentation": "

An additional event pattern used to further filter the events this EventRule receives.

\n

For more information, see Amazon EventBridge event patterns in the Amazon EventBridge User Guide.\n

" + } + }, + "regions": { + "target": "com.amazonaws.notifications#Regions", + "traits": { + "smithy.api#documentation": "

A list of AWS Regions that send events to this EventRule.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#CreateEventRuleResponse": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#EventRuleArn", + "traits": { + "smithy.api#documentation": "

The ARN of the resource.

", + "smithy.api#required": {} + } + }, + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN of a NotificationConfiguration.

", + "smithy.api#required": {} + } + }, + "statusSummaryByRegion": { + "target": "com.amazonaws.notifications#StatusSummaryByRegion", + "traits": { + "smithy.api#documentation": "

A list of an EventRule's status by Region. Regions are mapped to EventRuleStatusSummary.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#CreateNotificationConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#CreateNotificationConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.notifications#CreateNotificationConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#ConflictException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to create a NotificationConfiguration" + }, + "smithy.api#documentation": "

Creates a new NotificationConfiguration.

", + "smithy.api#http": { + "code": 201, + "method": "POST", + "uri": "/notification-configurations" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#CreateNotificationConfigurationRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.notifications#NotificationConfigurationName", + "traits": { + "smithy.api#documentation": "

The name of the NotificationConfiguration. Supports RFC 3986's unreserved characters.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.notifications#NotificationConfigurationDescription", + "traits": { + "smithy.api#documentation": "

The description of the NotificationConfiguration.

", + "smithy.api#required": {} + } + }, + "aggregationDuration": { + "target": "com.amazonaws.notifications#AggregationDuration", + "traits": { + "smithy.api#documentation": "

The aggregation preference of the NotificationConfiguration.

\n " + } + }, + "tags": { + "target": "com.amazonaws.notifications#TagMap", + "traits": { + "smithy.api#documentation": "

A map of tags assigned to a resource. A tag is a string-to-string map of key-value pairs.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#CreateNotificationConfigurationResponse": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the the resource.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.notifications#NotificationConfigurationStatus", + "traits": { + "smithy.api#documentation": "

The status of this NotificationConfiguration.

\n

The status should always be INACTIVE when part of the CreateNotificationConfiguration response.

\n ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#CreationTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "date-time" + } + }, + "com.amazonaws.notifications#DeleteEventRule": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#DeleteEventRuleRequest" + }, + "output": { + "target": "com.amazonaws.notifications#DeleteEventRuleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#ConflictException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to delete an EventRule" + }, + "smithy.api#documentation": "

Deletes an EventRule.

", + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/event-rules/{arn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#DeleteEventRuleRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#EventRuleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the EventRule to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#DeleteEventRuleResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#DeleteNotificationConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#DeleteNotificationConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.notifications#DeleteNotificationConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#ConflictException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to delete a NotificationConfiguration" + }, + "smithy.api#documentation": "

Deletes a NotificationConfiguration.

", + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/notification-configurations/{arn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#DeleteNotificationConfigurationRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the NotificationConfiguration to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#DeleteNotificationConfigurationResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#DeregisterNotificationHub": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#DeregisterNotificationHubRequest" + }, + "output": { + "target": "com.amazonaws.notifications#DeregisterNotificationHubResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#ConflictException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to deregister a NotificationHub" + }, + "smithy.api#documentation": "

Deregisters a NotificationHub in the specified Region.

\n \n

You can't deregister the last NotificationHub in the account. NotificationEvents stored in the deregistered NotificationHub are no longer be visible. Recreating a new NotificationHub in the same Region restores access to those NotificationEvents.

\n
", + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/notification-hubs/{notificationHubRegion}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#DeregisterNotificationHubRequest": { + "type": "structure", + "members": { + "notificationHubRegion": { + "target": "com.amazonaws.notifications#Region", + "traits": { + "smithy.api#documentation": "

The NotificationHub Region.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#DeregisterNotificationHubResponse": { + "type": "structure", + "members": { + "notificationHubRegion": { + "target": "com.amazonaws.notifications#Region", + "traits": { + "smithy.api#documentation": "

The NotificationHub Region.

", + "smithy.api#required": {} + } + }, + "statusSummary": { + "target": "com.amazonaws.notifications#NotificationHubStatusSummary", + "traits": { + "smithy.api#documentation": "

NotificationHub status information.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#Dimension": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.notifications#TextPartReference", + "traits": { + "smithy.api#documentation": "

The name of the dimension

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.notifications#TextPartReference", + "traits": { + "smithy.api#documentation": "

The value of the dimension.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The key-value pair of properties for an event.

" + } + }, + "com.amazonaws.notifications#Dimensions": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#Dimension" + }, + "traits": { + "smithy.api#length": { + "max": 10 + } + } + }, + "com.amazonaws.notifications#DisassociateChannel": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#DisassociateChannelRequest" + }, + "output": { + "target": "com.amazonaws.notifications#DisassociateChannelResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to remove a Channel from a NotificationConfiguration" + }, + "smithy.api#documentation": "

Disassociates a Channel from a specified NotificationConfiguration. Supported Channels include AWS Chatbot, the AWS Console Mobile Application, and emails (notifications-contacts).

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/channels/disassociate/{arn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#DisassociateChannelRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#ChannelArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Channel to disassociate.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN of the NotificationConfiguration to disassociate.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#DisassociateChannelResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#ErrorMessage": { + "type": "string" + }, + "com.amazonaws.notifications#EventRule": { + "type": "resource", + "identifiers": { + "arn": { + "target": "com.amazonaws.notifications#EventRuleArn" + } + }, + "put": { + "target": "com.amazonaws.notifications#UpdateEventRule" + }, + "create": { + "target": "com.amazonaws.notifications#CreateEventRule" + }, + "read": { + "target": "com.amazonaws.notifications#GetEventRule" + }, + "delete": { + "target": "com.amazonaws.notifications#DeleteEventRule" + }, + "list": { + "target": "com.amazonaws.notifications#ListEventRules" + }, + "traits": { + "aws.api#arn": { + "template": "{arn}", + "absolute": true + }, + "aws.cloudformation#cfnResource": {} + } + }, + "com.amazonaws.notifications#EventRuleArn": { + "type": "string", + "traits": { + "aws.api#arnReference": { + "service": "com.amazonaws.notifications#Notifications", + "resource": "com.amazonaws.notifications#EventRule" + }, + "smithy.api#pattern": "^arn:aws:notifications::[0-9]{12}:configuration/[a-z0-9]{27}/rule/[a-z0-9]{27}$" + } + }, + "com.amazonaws.notifications#EventRuleEventPattern": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 4096 + } + } + }, + "com.amazonaws.notifications#EventRuleStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ACTIVE", + "value": "ACTIVE", + "documentation": "EventRule is processing events. Any call can be executed." + }, + { + "name": "INACTIVE", + "value": "INACTIVE", + "documentation": "EventRule is in a bad state and may not be processing events. Any call can be executed." + }, + { + "name": "CREATING", + "value": "CREATING", + "documentation": "This EventRule is being created. Only GET/LIST calls can be executed." + }, + { + "name": "UPDATING", + "value": "UPDATING", + "documentation": "This EventRule is being updated. Only GET/LIST calls can be executed." + }, + { + "name": "DELETING", + "value": "DELETING", + "documentation": "This EventRule is being deleted. Only GET/LIST calls can be executed." + } + ] + } + }, + "com.amazonaws.notifications#EventRuleStatusReason": { + "type": "string" + }, + "com.amazonaws.notifications#EventRuleStatusSummary": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.notifications#EventRuleStatus", + "traits": { + "smithy.api#documentation": "

The status of the EventRule.

\n ", + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.amazonaws.notifications#EventRuleStatusReason", + "traits": { + "smithy.api#documentation": "

A human-readable reason for EventRuleStatus.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes EventRule status information.

" + } + }, + "com.amazonaws.notifications#EventRuleStructure": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#EventRuleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource.

", + "smithy.api#required": {} + } + }, + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN for the NotificationConfiguration associated with this EventRule.

", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.notifications#CreationTime", + "traits": { + "smithy.api#documentation": "

The creation time of the resource.

", + "smithy.api#required": {} + } + }, + "source": { + "target": "com.amazonaws.notifications#Source", + "traits": { + "smithy.api#documentation": "

The matched event source.

\n

Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see Event delivery from AWS services in the Amazon EventBridge User Guide.

", + "smithy.api#required": {} + } + }, + "eventType": { + "target": "com.amazonaws.notifications#EventType", + "traits": { + "smithy.api#documentation": "

The event type to match.

\n

Must match one of the valid Amazon EventBridge event types. For example, EC2 Instance State-change Notification and AWS CloudWatch Alarm State Change. For more information, see Event delivery from AWS services in the Amazon EventBridge User Guide.

", + "smithy.api#required": {} + } + }, + "eventPattern": { + "target": "com.amazonaws.notifications#EventRuleEventPattern", + "traits": { + "smithy.api#documentation": "

An additional event pattern used to further filter the events this EventRule receives.

\n

For more information, see Amazon EventBridge event patterns in the Amazon EventBridge User Guide.\n

", + "smithy.api#required": {} + } + }, + "regions": { + "target": "com.amazonaws.notifications#Regions", + "traits": { + "smithy.api#documentation": "

A list of AWS Regions that send events to this EventRule.

", + "smithy.api#required": {} + } + }, + "managedRules": { + "target": "com.amazonaws.notifications#ManagedRuleArns", + "traits": { + "smithy.api#documentation": "

A list of Amazon EventBridge Managed Rule ARNs associated with this EventRule.

\n \n

These are created by AWS User Notifications within your account so your EventRules can function.

\n
", + "smithy.api#required": {} + } + }, + "statusSummaryByRegion": { + "target": "com.amazonaws.notifications#StatusSummaryByRegion", + "traits": { + "smithy.api#documentation": "

A list of an EventRule's status by Region. Regions are mapped to EventRuleStatusSummary.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a complete list of fields related to an EventRule.

" + } + }, + "com.amazonaws.notifications#EventRules": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#EventRuleStructure" + } + }, + "com.amazonaws.notifications#EventStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "HEALTHY", + "value": "HEALTHY" + }, + { + "name": "UNHEALTHY", + "value": "UNHEALTHY" + } + ] + } + }, + "com.amazonaws.notifications#EventType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^([a-zA-Z0-9 \\-\\(\\)])+$" + } + }, + "com.amazonaws.notifications#GetEventRule": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#GetEventRuleRequest" + }, + "output": { + "target": "com.amazonaws.notifications#GetEventRuleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to get an EventRule" + }, + "smithy.api#documentation": "

Returns a specified EventRule.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/event-rules/{arn}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.notifications#GetEventRuleRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#EventRuleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the EventRule to return.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#GetEventRuleResponse": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#EventRuleArn", + "traits": { + "smithy.api#documentation": "

The ARN of the resource.

", + "smithy.api#required": {} + } + }, + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN of a NotificationConfiguration.

", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.notifications#CreationTime", + "traits": { + "smithy.api#documentation": "

The date when the EventRule was created.

", + "smithy.api#required": {} + } + }, + "source": { + "target": "com.amazonaws.notifications#Source", + "traits": { + "smithy.api#documentation": "

The matched event source.

\n

Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see Event delivery from AWS services in the Amazon EventBridge User Guide.

", + "smithy.api#required": {} + } + }, + "eventType": { + "target": "com.amazonaws.notifications#EventType", + "traits": { + "smithy.api#documentation": "

The event type to match.

\n

Must match one of the valid Amazon EventBridge event types. For example, EC2 Instance State-change Notification and AWS CloudWatch Alarm State Change. For more information, see Event delivery from AWS services in the Amazon EventBridge User Guide.

", + "smithy.api#required": {} + } + }, + "eventPattern": { + "target": "com.amazonaws.notifications#EventRuleEventPattern", + "traits": { + "smithy.api#documentation": "

An additional event pattern used to further filter the events this EventRule receives.

\n

For more information, see Amazon EventBridge event patterns in the Amazon EventBridge User Guide.\n

", + "smithy.api#required": {} + } + }, + "regions": { + "target": "com.amazonaws.notifications#Regions", + "traits": { + "smithy.api#documentation": "

A list of AWS Regions that send events to this EventRule.

", + "smithy.api#required": {} + } + }, + "managedRules": { + "target": "com.amazonaws.notifications#ManagedRuleArns", + "traits": { + "smithy.api#documentation": "

A list of managed rules from EventBridge that are are associated with this EventRule.

\n \n

These are created by AWS User Notifications within your account so this EventRule functions.

\n
", + "smithy.api#required": {} + } + }, + "statusSummaryByRegion": { + "target": "com.amazonaws.notifications#StatusSummaryByRegion", + "traits": { + "smithy.api#documentation": "

A list of an EventRule's status by Region. Regions are mapped to EventRuleStatusSummary.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#GetNotificationConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#GetNotificationConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.notifications#GetNotificationConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to get a NotificationConfiguration" + }, + "smithy.api#documentation": "

Returns a specified NotificationConfiguration.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/notification-configurations/{arn}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.notifications#GetNotificationConfigurationRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the NotificationConfiguration to return.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#GetNotificationConfigurationResponse": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN of the resource.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.notifications#NotificationConfigurationName", + "traits": { + "smithy.api#documentation": "

The name of the NotificationConfiguration.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.notifications#NotificationConfigurationDescription", + "traits": { + "smithy.api#documentation": "

The description of the NotificationConfiguration.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.notifications#NotificationConfigurationStatus", + "traits": { + "smithy.api#documentation": "

The status of this NotificationConfiguration.

\n

The status should always be INACTIVE when part of the CreateNotificationConfiguration response.

\n ", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.notifications#CreationTime", + "traits": { + "smithy.api#documentation": "

The creation time of the NotificationConfiguration.

", + "smithy.api#required": {} + } + }, + "aggregationDuration": { + "target": "com.amazonaws.notifications#AggregationDuration", + "traits": { + "smithy.api#documentation": "

The aggregation preference of the NotificationConfiguration.

\n " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#GetNotificationEvent": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#GetNotificationEventRequest" + }, + "output": { + "target": "com.amazonaws.notifications#GetNotificationEventResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to get a NotificationEvent" + }, + "smithy.api#documentation": "

Returns a specified NotificationEvent.

\n \n

User Notifications stores notifications in the individual Regions you register as notification hubs and the Region of the source event rule. GetNotificationEvent only returns notifications stored in the same Region in which the action is called.\n\t User Notifications doesn't backfill notifications to new Regions selected as notification hubs. For this reason, we recommend that you make calls in your oldest registered notification hub. \n\t For more information, see Notification hubs in the AWS User Notifications User Guide.

\n
", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/notification-events/{arn}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.notifications#GetNotificationEventRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationEventArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the NotificationEvent to return.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "locale": { + "target": "com.amazonaws.notifications#LocaleCode", + "traits": { + "smithy.api#documentation": "

The locale code of the language used for the retrieved NotificationEvent. The default locale is English en_US.

", + "smithy.api#httpQuery": "locale" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#GetNotificationEventResponse": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationEventArn", + "traits": { + "smithy.api#documentation": "

The ARN of the resource.

", + "smithy.api#required": {} + } + }, + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN of the NotificationConfiguration.

", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.notifications#CreationTime", + "traits": { + "smithy.api#documentation": "

The creation time of the NotificationEvent.

", + "smithy.api#required": {} + } + }, + "content": { + "target": "com.amazonaws.notifications#NotificationEventSchema", + "traits": { + "smithy.api#documentation": "

The content of the NotificationEvent.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notifications#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Unexpected error during processing of request.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500, + "smithy.api#retryable": {} + } + }, + "com.amazonaws.notifications#LastActivationTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "date-time" + } + }, + "com.amazonaws.notifications#ListChannels": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#ListChannelsRequest" + }, + "output": { + "target": "com.amazonaws.notifications#ListChannelsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to list Channels by NotificationConfiguration" + }, + "smithy.api#documentation": "

Returns a list of Channels for a NotificationConfiguration.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/channels" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "channels" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.notifications#ListChannelsRequest": { + "type": "structure", + "members": { + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the NotificationConfiguration.

", + "smithy.api#httpQuery": "notificationConfigurationArn", + "smithy.api#required": {} + } + }, + "maxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned in this call. The default value is 20.

", + "smithy.api#httpQuery": "maxResults", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "nextToken": { + "target": "com.amazonaws.notifications#NextToken", + "traits": { + "smithy.api#documentation": "

The start token for paginated calls. Retrieved from the response of a previous ListNotificationEvents call. NextToken uses Base64 encoding.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#ListChannelsResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.notifications#NextToken", + "traits": { + "smithy.api#documentation": "

A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries.

" + } + }, + "channels": { + "target": "com.amazonaws.notifications#Channels", + "traits": { + "smithy.api#documentation": "

A list of Channels.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#ListEventRules": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#ListEventRulesRequest" + }, + "output": { + "target": "com.amazonaws.notifications#ListEventRulesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to list EventRules" + }, + "smithy.api#documentation": "

Returns a list of EventRules according to specified filters, in reverse chronological order (newest first).

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/event-rules" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "eventRules" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.notifications#ListEventRulesRequest": { + "type": "structure", + "members": { + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the NotificationConfiguration.

", + "smithy.api#httpQuery": "notificationConfigurationArn", + "smithy.api#required": {} + } + }, + "maxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned in this call. The default value is 20.

", + "smithy.api#httpQuery": "maxResults", + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "nextToken": { + "target": "com.amazonaws.notifications#NextToken", + "traits": { + "smithy.api#documentation": "

The start token for paginated calls. Retrieved from the response of a previous ListEventRules call. Next token uses Base64 encoding.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#ListEventRulesResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.notifications#NextToken", + "traits": { + "smithy.api#documentation": "

A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries.

" + } + }, + "eventRules": { + "target": "com.amazonaws.notifications#EventRules", + "traits": { + "smithy.api#documentation": "

A list of EventRules.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#ListNotificationConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#ListNotificationConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.notifications#ListNotificationConfigurationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to list NotificationConfigurations" + }, + "smithy.api#documentation": "

Returns a list of abbreviated NotificationConfigurations according to specified filters, in reverse chronological order (newest first).

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/notification-configurations" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "notificationConfigurations" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "ListNotificationConfigurationsSuccess", + "params": { + "status": "ACTIVE", + "maxResults": 3 + }, + "expect": { + "success": {} + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "vendorParams": { + "region": "us-east-1" + } + } + ] + } + }, + "com.amazonaws.notifications#ListNotificationConfigurationsRequest": { + "type": "structure", + "members": { + "eventRuleSource": { + "target": "com.amazonaws.notifications#Source", + "traits": { + "smithy.api#documentation": "

The matched event source.

\n

Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see Event delivery from AWS services in the Amazon EventBridge User Guide.

", + "smithy.api#httpQuery": "eventRuleSource" + } + }, + "channelArn": { + "target": "com.amazonaws.notifications#ChannelArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Channel to match.

", + "smithy.api#httpQuery": "channelArn" + } + }, + "status": { + "target": "com.amazonaws.notifications#NotificationConfigurationStatus", + "traits": { + "smithy.api#documentation": "

The NotificationConfiguration status to match.

\n ", + "smithy.api#httpQuery": "status" + } + }, + "maxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned in this call. Defaults to 20.

", + "smithy.api#httpQuery": "maxResults", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "nextToken": { + "target": "com.amazonaws.notifications#NextToken", + "traits": { + "smithy.api#documentation": "

The start token for paginated calls. Retrieved from the response of a previous ListEventRules call. Next token uses Base64 encoding.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#ListNotificationConfigurationsResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.notifications#NextToken", + "traits": { + "smithy.api#documentation": "

A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries.

" + } + }, + "notificationConfigurations": { + "target": "com.amazonaws.notifications#NotificationConfigurations", + "traits": { + "smithy.api#documentation": "

The NotificationConfigurations in the account.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#ListNotificationEvents": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#ListNotificationEventsRequest" + }, + "output": { + "target": "com.amazonaws.notifications#ListNotificationEventsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to list NotificationEvents" + }, + "smithy.api#documentation": "

Returns a list of NotificationEvents according to specified filters, in reverse chronological order (newest first).

\n \n

User Notifications stores notifications in the individual Regions you register as notification hubs and the Region of the source event rule. ListNotificationEvents only returns notifications stored in the same Region in which the action is called.\n\t User Notifications doesn't backfill notifications to new Regions selected as notification hubs. For this reason, we recommend that you make calls in your oldest registered notification hub.\n\t For more information, see Notification hubs in the AWS User Notifications User Guide.

\n
", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/notification-events" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "notificationEvents" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "ListNotificationEventsSuccess", + "params": { + "includeChildEvents": true, + "maxResults": 3 + }, + "expect": { + "success": {} + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "vendorParams": { + "region": "us-east-1" + } + } + ] + } + }, + "com.amazonaws.notifications#ListNotificationEventsRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The earliest time of events to return from this call.

", + "smithy.api#httpQuery": "startTime", + "smithy.api#timestampFormat": "date-time" + } + }, + "endTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

Latest time of events to return from this call.

", + "smithy.api#httpQuery": "endTime", + "smithy.api#timestampFormat": "date-time" + } + }, + "locale": { + "target": "com.amazonaws.notifications#LocaleCode", + "traits": { + "smithy.api#documentation": "

The locale code of the language used for the retrieved NotificationEvent. The default locale is English (en_US).

", + "smithy.api#httpQuery": "locale" + } + }, + "source": { + "target": "com.amazonaws.notifications#Source", + "traits": { + "smithy.api#documentation": "

The matched event source.

\n

Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see Event delivery from AWS services in the Amazon EventBridge User Guide.

", + "smithy.api#httpQuery": "source" + } + }, + "includeChildEvents": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Include aggregated child events in the result.

", + "smithy.api#httpQuery": "includeChildEvents" + } + }, + "aggregateNotificationEventArn": { + "target": "com.amazonaws.notifications#NotificationEventArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the aggregatedNotificationEventArn to match.

", + "smithy.api#httpQuery": "aggregateNotificationEventArn" + } + }, + "maxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned in this call. Defaults to 20.

", + "smithy.api#httpQuery": "maxResults", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "nextToken": { + "target": "com.amazonaws.notifications#NextToken", + "traits": { + "smithy.api#documentation": "

The start token for paginated calls. Retrieved from the response of a previous ListEventRules call. Next token uses Base64 encoding.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#ListNotificationEventsResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.notifications#NextToken", + "traits": { + "smithy.api#documentation": "

A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries.

" + } + }, + "notificationEvents": { + "target": "com.amazonaws.notifications#NotificationEvents", + "traits": { + "smithy.api#documentation": "

The list of notification events.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#ListNotificationHubs": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#ListNotificationHubsRequest" + }, + "output": { + "target": "com.amazonaws.notifications#ListNotificationHubsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to list NotificationHubs" + }, + "smithy.api#documentation": "

Returns a list of NotificationHubs.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/notification-hubs" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "notificationHubs" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "ListNotificationHubsSuccess", + "params": { + "maxResults": 3 + }, + "expect": { + "success": {} + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "vendorParams": { + "region": "us-east-1" + } + } + ] + } + }, + "com.amazonaws.notifications#ListNotificationHubsRequest": { + "type": "structure", + "members": { + "maxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of records to list in a single response.

", + "smithy.api#httpQuery": "maxResults", + "smithy.api#range": { + "min": 3, + "max": 3 + } + } + }, + "nextToken": { + "target": "com.amazonaws.notifications#NextToken", + "traits": { + "smithy.api#documentation": "

A pagination token. Set to null to start listing notification hubs from the start.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#ListNotificationHubsResponse": { + "type": "structure", + "members": { + "notificationHubs": { + "target": "com.amazonaws.notifications#NotificationHubs", + "traits": { + "smithy.api#documentation": "

The NotificationHubs in the account.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.notifications#NextToken", + "traits": { + "smithy.api#documentation": "

A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.notifications#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to get tags for a resource" + }, + "smithy.api#documentation": "

Returns a list of tags for a specified Amazon Resource Name (ARN).

\n

For more information, see Tagging your AWS resources in the Tagging AWS Resources User Guide.

\n \n

This is only supported for NotificationConfigurations.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/tags/{arn}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.notifications#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) to use to list tags.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "tags": { + "target": "com.amazonaws.notifications#TagMap", + "traits": { + "smithy.api#documentation": "

A list of tags for the specified ARN.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#LocaleCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "de_DE", + "value": "de_DE", + "documentation": "German (Germany)" + }, + { + "name": "en_CA", + "value": "en_CA", + "documentation": "English (Canada)" + }, + { + "name": "en_US", + "value": "en_US", + "documentation": "English (United States). This is the default locale." + }, + { + "name": "en_UK", + "value": "en_UK", + "documentation": "English (United Kingdom)" + }, + { + "name": "es_ES", + "value": "es_ES", + "documentation": "Spanish (Spain)" + }, + { + "name": "fr_CA", + "value": "fr_CA", + "documentation": "French (Canada)" + }, + { + "name": "fr_FR", + "value": "fr_FR", + "documentation": "French (France)" + }, + { + "name": "id_ID", + "value": "id_ID", + "documentation": "Bahasa Indonesian (Indonesia)" + }, + { + "name": "it_IT", + "value": "it_IT", + "documentation": "Italian (Italy)" + }, + { + "name": "ja_JP", + "value": "ja_JP", + "documentation": "Japanese (Japan)" + }, + { + "name": "ko_KR", + "value": "ko_KR", + "documentation": "Korean (Korea)" + }, + { + "name": "pt_BR", + "value": "pt_BR", + "documentation": "Portuguese (Brazil)" + }, + { + "name": "tr_TR", + "value": "tr_TR", + "documentation": "Turkish (Turkey)" + }, + { + "name": "zh_CN", + "value": "zh_CN", + "documentation": "Chinese (China)" + }, + { + "name": "zh_TW", + "value": "zh_TW", + "documentation": "Chinese (Taiwan)" + } + ], + "smithy.api#suppress": [ + "EnumTrait" + ] + } + }, + "com.amazonaws.notifications#ManagedRuleArn": { + "type": "string", + "traits": { + "aws.api#arnReference": {}, + "smithy.api#pattern": "^arn:aws:events:[a-z-\\d]{2,25}:\\d{12}:rule\\/[a-zA-Z-\\d]{1,1024}$" + } + }, + "com.amazonaws.notifications#ManagedRuleArns": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#ManagedRuleArn" + } + }, + "com.amazonaws.notifications#Media": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#MediaElement" + } + }, + "com.amazonaws.notifications#MediaElement": { + "type": "structure", + "members": { + "mediaId": { + "target": "com.amazonaws.notifications#MediaId", + "traits": { + "smithy.api#documentation": "

The unique ID for the media.

", + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.notifications#MediaElementType", + "traits": { + "smithy.api#documentation": "

The type of media.

", + "smithy.api#required": {} + } + }, + "url": { + "target": "com.amazonaws.notifications#Url", + "traits": { + "smithy.api#documentation": "

The url of the media.

", + "smithy.api#required": {} + } + }, + "caption": { + "target": "com.amazonaws.notifications#TextPartReference", + "traits": { + "smithy.api#documentation": "

The caption of the media.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a media element.

" + } + }, + "com.amazonaws.notifications#MediaElementType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "IMAGE", + "value": "IMAGE" + } + ] + } + }, + "com.amazonaws.notifications#MediaId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.notifications#MessageComponents": { + "type": "structure", + "members": { + "headline": { + "target": "com.amazonaws.notifications#TextPartReference", + "traits": { + "smithy.api#documentation": "

A sentence long summary. For example, titles or an email subject line.

" + } + }, + "paragraphSummary": { + "target": "com.amazonaws.notifications#TextPartReference", + "traits": { + "smithy.api#documentation": "

A paragraph long or multiple sentence summary. For example, AWS Chatbot notifications.

" + } + }, + "completeDescription": { + "target": "com.amazonaws.notifications#TextPartReference", + "traits": { + "smithy.api#documentation": "

A complete summary with all possible relevant information.

" + } + }, + "dimensions": { + "target": "com.amazonaws.notifications#Dimensions", + "traits": { + "smithy.api#documentation": "

A list of properties in key-value pairs. Pairs are shown in order of importance from most important to least important. Channels may limit the number of dimensions shown to the notification viewer.

\n \n

Included dimensions, keys, and values are subject to change.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the components of a notification message.

" + } + }, + "com.amazonaws.notifications#MessageComponentsSummary": { + "type": "structure", + "members": { + "headline": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A sentence long summary. For example, titles or an email subject line.

", + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the headline message component.

" + } + }, + "com.amazonaws.notifications#NextToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4096 + }, + "smithy.api#pattern": "^[\\w+-/=]+$" + } + }, + "com.amazonaws.notifications#NotificationConfiguration": { + "type": "resource", + "identifiers": { + "arn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn" + } + }, + "put": { + "target": "com.amazonaws.notifications#UpdateNotificationConfiguration" + }, + "create": { + "target": "com.amazonaws.notifications#CreateNotificationConfiguration" + }, + "read": { + "target": "com.amazonaws.notifications#GetNotificationConfiguration" + }, + "delete": { + "target": "com.amazonaws.notifications#DeleteNotificationConfiguration" + }, + "list": { + "target": "com.amazonaws.notifications#ListNotificationConfigurations" + }, + "traits": { + "aws.api#arn": { + "template": "{arn}", + "absolute": true + }, + "aws.cloudformation#cfnResource": {} + } + }, + "com.amazonaws.notifications#NotificationConfigurationArn": { + "type": "string", + "traits": { + "aws.api#arnReference": { + "service": "com.amazonaws.notifications#Notifications", + "resource": "com.amazonaws.notifications#NotificationConfiguration" + }, + "smithy.api#pattern": "^arn:aws:notifications::[0-9]{12}:configuration/[a-z0-9]{27}$" + } + }, + "com.amazonaws.notifications#NotificationConfigurationDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^[^\\u0001-\\u001F\\u007F-\\u009F]*$" + } + }, + "com.amazonaws.notifications#NotificationConfigurationName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[A-Za-z0-9_\\-]+$" + } + }, + "com.amazonaws.notifications#NotificationConfigurationStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ACTIVE", + "value": "ACTIVE", + "documentation": "All of the EventRules are in ACTIVE Status. Any call can be executed." + }, + { + "name": "PARTIALLY_ACTIVE", + "value": "PARTIALLY_ACTIVE", + "documentation": "Some EventRules are in ACTIVE Status and some are INACTIVE. Any call can be executed." + }, + { + "name": "INACTIVE", + "value": "INACTIVE", + "documentation": "All of the EventRules are in INACTIVE Status. Any call can be executed." + }, + { + "name": "DELETING", + "value": "DELETING", + "documentation": "This NotificationConfiguration is being deleted. Only GET/LIST calls can be executed." + } + ] + } + }, + "com.amazonaws.notifications#NotificationConfigurationStructure": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.notifications#NotificationConfigurationName", + "traits": { + "smithy.api#documentation": "

The name of the NotificationConfiguration. Supports RFC 3986's unreserved characters.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.notifications#NotificationConfigurationDescription", + "traits": { + "smithy.api#documentation": "

The description of the NotificationConfiguration.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.notifications#NotificationConfigurationStatus", + "traits": { + "smithy.api#documentation": "

The status of this NotificationConfiguration.

\n

The status should always be INACTIVE when part of the CreateNotificationConfiguration response.

\n ", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.notifications#CreationTime", + "traits": { + "smithy.api#documentation": "

The creation time of the resource.

", + "smithy.api#required": {} + } + }, + "aggregationDuration": { + "target": "com.amazonaws.notifications#AggregationDuration", + "traits": { + "smithy.api#documentation": "

The aggregation preference of the NotificationConfiguration.

\n " + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the complete list of fields for a NotificationConfiguration.

" + } + }, + "com.amazonaws.notifications#NotificationConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#NotificationConfigurationStructure" + } + }, + "com.amazonaws.notifications#NotificationEventArn": { + "type": "string", + "traits": { + "aws.api#arnReference": { + "service": "com.amazonaws.notifications#Notifications", + "resource": "com.amazonaws.notifications#NotificationEventSchema" + }, + "smithy.api#pattern": "^arn:[-.a-z0-9]{1,63}:notifications:[-.a-z0-9]{1,63}:[0-9]{12}:configuration/[a-z0-9]{27}/event/[a-z0-9]{27}$" + } + }, + "com.amazonaws.notifications#NotificationEventId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-z0-9]{27}$" + } + }, + "com.amazonaws.notifications#NotificationEventOverview": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationEventArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource.

", + "smithy.api#required": {} + } + }, + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN of the NotificationConfiguration.

", + "smithy.api#required": {} + } + }, + "relatedAccount": { + "target": "com.amazonaws.notifications#AccountId", + "traits": { + "smithy.api#documentation": "

The account name containing the NotificationHub.

", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.notifications#CreationTime", + "traits": { + "smithy.api#documentation": "

The creation time of the NotificationEvent.

", + "smithy.api#required": {} + } + }, + "notificationEvent": { + "target": "com.amazonaws.notifications#NotificationEventSummary", + "traits": { + "smithy.api#documentation": "

Refers to a NotificationEventSummary object.

\n

Similar in structure to content in the GetNotificationEvent response.

", + "smithy.api#required": {} + } + }, + "aggregationEventType": { + "target": "com.amazonaws.notifications#AggregationEventType", + "traits": { + "smithy.api#documentation": "

The NotificationConfiguration's aggregation type.

\n " + } + }, + "aggregateNotificationEventArn": { + "target": "com.amazonaws.notifications#NotificationEventArn", + "traits": { + "smithy.api#documentation": "

The ARN of the aggregatedNotificationEventArn to match.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a short summary of a NotificationEvent. This is only used when listing notification events.

" + } + }, + "com.amazonaws.notifications#NotificationEventResource": { + "type": "resource", + "identifiers": { + "arn": { + "target": "com.amazonaws.notifications#NotificationEventArn" + } + }, + "read": { + "target": "com.amazonaws.notifications#GetNotificationEvent" + }, + "list": { + "target": "com.amazonaws.notifications#ListNotificationEvents" + }, + "traits": { + "aws.api#arn": { + "template": "{arn}", + "absolute": true + } + } + }, + "com.amazonaws.notifications#NotificationEventSchema": { + "type": "structure", + "members": { + "schemaVersion": { + "target": "com.amazonaws.notifications#SchemaVersion", + "traits": { + "smithy.api#documentation": "

The schema version of the Notification Event.

", + "smithy.api#required": {} + } + }, + "id": { + "target": "com.amazonaws.notifications#NotificationEventId", + "traits": { + "smithy.api#documentation": "

The unique identifier for a NotificationEvent.

", + "smithy.api#required": {} + } + }, + "sourceEventMetadata": { + "target": "com.amazonaws.notifications#SourceEventMetadata", + "traits": { + "smithy.api#documentation": "

The source event metadata.

", + "smithy.api#required": {} + } + }, + "messageComponents": { + "target": "com.amazonaws.notifications#MessageComponents", + "traits": { + "smithy.api#required": {} + } + }, + "sourceEventDetailUrl": { + "target": "com.amazonaws.notifications#Url", + "traits": { + "smithy.api#documentation": "

The source event URL.

" + } + }, + "sourceEventDetailUrlDisplayText": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The detailed URL for the source event.

" + } + }, + "notificationType": { + "target": "com.amazonaws.notifications#NotificationType", + "traits": { + "smithy.api#documentation": "

The type of event causing the notification.

\n ", + "smithy.api#required": {} + } + }, + "eventStatus": { + "target": "com.amazonaws.notifications#EventStatus", + "traits": { + "smithy.api#documentation": "

The assesed nature of the event.

\n " + } + }, + "aggregationEventType": { + "target": "com.amazonaws.notifications#AggregationEventType", + "traits": { + "smithy.api#documentation": "

The NotificationConfiguration's aggregation type.

\n " + } + }, + "aggregateNotificationEventArn": { + "target": "com.amazonaws.notifications#NotificationEventArn", + "traits": { + "smithy.api#documentation": "

If the value of aggregationEventType is not NONE, this is the Amazon Resource Event (ARN) of the parent aggregate notification.

\n

This is omitted if notification isn't aggregated.

" + } + }, + "startTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The notification event start time.

", + "smithy.api#timestampFormat": "date-time" + } + }, + "endTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The end time of the event.

", + "smithy.api#timestampFormat": "date-time" + } + }, + "textParts": { + "target": "com.amazonaws.notifications#TextParts", + "traits": { + "smithy.api#documentation": "

A list of text values.

", + "smithy.api#required": {} + } + }, + "media": { + "target": "com.amazonaws.notifications#Media", + "traits": { + "smithy.api#documentation": "

A list of media elements.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A NotificationEvent is a notification-focused representation of an event. They contain semantic information used by Channels to create end-user notifications.

" + } + }, + "com.amazonaws.notifications#NotificationEventSummary": { + "type": "structure", + "members": { + "schemaVersion": { + "target": "com.amazonaws.notifications#SchemaVersion", + "traits": { + "smithy.api#documentation": "

The schema version of the Notification Event.

", + "smithy.api#required": {} + } + }, + "sourceEventMetadata": { + "target": "com.amazonaws.notifications#SourceEventMetadataSummary", + "traits": { + "smithy.api#documentation": "

The source event metadata.

", + "smithy.api#required": {} + } + }, + "messageComponents": { + "target": "com.amazonaws.notifications#MessageComponentsSummary", + "traits": { + "smithy.api#documentation": "

The message components of a notification event.

", + "smithy.api#required": {} + } + }, + "eventStatus": { + "target": "com.amazonaws.notifications#EventStatus", + "traits": { + "smithy.api#documentation": "

The notification event status.

\n ", + "smithy.api#required": {} + } + }, + "notificationType": { + "target": "com.amazonaws.notifications#NotificationType", + "traits": { + "smithy.api#documentation": "

The type of event causing the notification.

\n ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a short summary and metadata for a notification event.

" + } + }, + "com.amazonaws.notifications#NotificationEvents": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#NotificationEventOverview" + } + }, + "com.amazonaws.notifications#NotificationHub": { + "type": "resource", + "identifiers": { + "notificationHubRegion": { + "target": "com.amazonaws.notifications#Region" + } + }, + "put": { + "target": "com.amazonaws.notifications#RegisterNotificationHub" + }, + "delete": { + "target": "com.amazonaws.notifications#DeregisterNotificationHub" + }, + "list": { + "target": "com.amazonaws.notifications#ListNotificationHubs" + }, + "traits": { + "aws.cloudformation#cfnResource": {}, + "aws.iam#disableConditionKeyInference": {}, + "smithy.api#noReplace": {} + } + }, + "com.amazonaws.notifications#NotificationHubOverview": { + "type": "structure", + "members": { + "notificationHubRegion": { + "target": "com.amazonaws.notifications#Region", + "traits": { + "smithy.api#documentation": "

The Region of the resource.

", + "smithy.api#required": {} + } + }, + "statusSummary": { + "target": "com.amazonaws.notifications#NotificationHubStatusSummary", + "traits": { + "smithy.api#documentation": "

The status summary of the resource.

", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.notifications#CreationTime", + "traits": { + "smithy.api#documentation": "

The date and time the resource was created.

", + "smithy.api#required": {} + } + }, + "lastActivationTime": { + "target": "com.amazonaws.notifications#LastActivationTime", + "traits": { + "smithy.api#documentation": "

The most recent time this NotificationHub had an ACTIVE status.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an overview of a NotificationHub.

\n

A NotificationHub is an account-level setting used to select the Regions where you want to store, process and replicate your notifications.

" + } + }, + "com.amazonaws.notifications#NotificationHubStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ACTIVE", + "value": "ACTIVE", + "documentation": "Incoming Notification Events are being replicated to this Notification Hub. A Notification Hub with this status can be deregistered." + }, + { + "name": "REGISTERING", + "value": "REGISTERING", + "documentation": "Notification Hub is initializing. Cannot deregister a Notification Hub in this status." + }, + { + "name": "DEREGISTERING", + "value": "DEREGISTERING", + "documentation": "Notification Hub is being deleted. Cannot register a Notification Hub in the same region as one in this status." + }, + { + "name": "INACTIVE", + "value": "INACTIVE", + "documentation": "Notification Hub is in a failure state. Incoming Notification Events are not being replicated to this Hub." + } + ] + } + }, + "com.amazonaws.notifications#NotificationHubStatusReason": { + "type": "string" + }, + "com.amazonaws.notifications#NotificationHubStatusSummary": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.notifications#NotificationHubStatus", + "traits": { + "smithy.api#documentation": "

Status information about the NotificationHub.

\n ", + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.amazonaws.notifications#NotificationHubStatusReason", + "traits": { + "smithy.api#documentation": "

An Explanation for the current status.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

NotificationHub status information.

" + } + }, + "com.amazonaws.notifications#NotificationHubs": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#NotificationHubOverview" + } + }, + "com.amazonaws.notifications#NotificationType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ALERT", + "value": "ALERT" + }, + { + "name": "WARNING", + "value": "WARNING" + }, + { + "name": "ANNOUNCEMENT", + "value": "ANNOUNCEMENT" + }, + { + "name": "INFORMATIONAL", + "value": "INFORMATIONAL" + } + ] + } + }, + "com.amazonaws.notifications#Notifications": { + "type": "service", + "version": "2018-05-10", + "operations": [ + { + "target": "com.amazonaws.notifications#ListTagsForResource" + }, + { + "target": "com.amazonaws.notifications#TagResource" + }, + { + "target": "com.amazonaws.notifications#UntagResource" + } + ], + "resources": [ + { + "target": "com.amazonaws.notifications#Channel" + }, + { + "target": "com.amazonaws.notifications#EventRule" + }, + { + "target": "com.amazonaws.notifications#NotificationConfiguration" + }, + { + "target": "com.amazonaws.notifications#NotificationEventResource" + }, + { + "target": "com.amazonaws.notifications#NotificationHub" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "Notifications", + "arnNamespace": "notifications", + "endpointPrefix": "notifications", + "cloudTrailEventSource": "notifications.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "notifications" + }, + "aws.endpoints#dualStackOnlyEndpoints": {}, + "aws.endpoints#standardRegionalEndpoints": {}, + "aws.iam#supportedPrincipalTypes": [ + "Root", + "IAMUser", + "IAMRole", + "FederatedUser" + ], + "aws.protocols#restJson1": {}, + "smithy.api#cors": { + "additionalAllowedHeaders": [ + "*", + "content-type", + "x-amz-content-sha256", + "x-amz-user-agent", + "x-amzn-platform-id", + "x-amzn-trace-id" + ], + "additionalExposedHeaders": [ + "x-amzn-errortype", + "x-amzn-requestid", + "x-amzn-trace-id" + ], + "maxAge": 86400 + }, + "smithy.api#documentation": "

The AWS User Notifications API Reference provides descriptions, API request parameters, and the JSON response for each of the User Notification API actions.

\n

User Notification control APIs are currently available in US East (Virginia) - us-east-1.

\n

\n GetNotificationEvent\n\t and ListNotificationEvents APIs are currently available in\n\t commercial partition Regions and only return notifications stored in the same Region in which they're called.

\n

The User Notifications console can only be used in US East (Virginia). Your data however, is stored in each Region chosen as a \n\t notification hub in addition to US East (Virginia).

", + "smithy.api#title": "AWS User Notifications", + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://notifications-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://notifications.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For custom endpoint with region not set and fips disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications-fips.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications-fips.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://notifications.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": false + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.notifications#QuotaCode": { + "type": "string" + }, + "com.amazonaws.notifications#Region": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 2, + "max": 25 + }, + "smithy.api#pattern": "^([a-z]{1,2})-([a-z]{1,15}-)+([0-9])$" + } + }, + "com.amazonaws.notifications#Regions": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#Region" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.notifications#RegisterNotificationHub": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#RegisterNotificationHubRequest" + }, + "output": { + "target": "com.amazonaws.notifications#RegisterNotificationHubResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#ConflictException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to register a NotificationHub" + }, + "smithy.api#documentation": "

Registers a NotificationHub in the specified Region.

\n

There is a maximum of one NotificationHub per Region. You can have a maximum of 3 NotificationHubs at a time.

", + "smithy.api#http": { + "code": 201, + "method": "POST", + "uri": "/notification-hubs" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#RegisterNotificationHubRequest": { + "type": "structure", + "members": { + "notificationHubRegion": { + "target": "com.amazonaws.notifications#Region", + "traits": { + "smithy.api#documentation": "

The Region of the NotificationHub.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#RegisterNotificationHubResponse": { + "type": "structure", + "members": { + "notificationHubRegion": { + "target": "com.amazonaws.notifications#Region", + "traits": { + "smithy.api#documentation": "

The Region of the NotificationHub.

", + "smithy.api#required": {} + } + }, + "statusSummary": { + "target": "com.amazonaws.notifications#NotificationHubStatusSummary", + "traits": { + "smithy.api#documentation": "

NotificationHub status information.

", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.notifications#CreationTime", + "traits": { + "smithy.api#documentation": "

The date the resource was created.

", + "smithy.api#required": {} + } + }, + "lastActivationTime": { + "target": "com.amazonaws.notifications#LastActivationTime", + "traits": { + "smithy.api#documentation": "

The date the resource was last activated.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#Resource": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The unique identifier for the resource.

\n

At least one id or ARN is required.

" + } + }, + "arn": { + "target": "com.amazonaws.notifications#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource. At least one id or ARN is required.

" + } + }, + "detailUrl": { + "target": "com.amazonaws.notifications#Url", + "traits": { + "smithy.api#documentation": "

The URL to the resource's detail page. If a detail page URL is unavailable, it is the URL to an informational page that describes the resource's type.

" + } + }, + "tags": { + "target": "com.amazonaws.notifications#Tags", + "traits": { + "smithy.api#documentation": "

A map of tags assigned to a resource. A tag is a string-to-string map of key-value pairs.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A resource affected by or closely linked to an event.

" + } + }, + "com.amazonaws.notifications#ResourceId": { + "type": "string" + }, + "com.amazonaws.notifications#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notifications#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "com.amazonaws.notifications#ResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the resource that wasn't found.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Request references a resource which does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.notifications#ResourceType": { + "type": "string" + }, + "com.amazonaws.notifications#Resources": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#Resource" + } + }, + "com.amazonaws.notifications#SchemaVersion": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "SCHEMA_VERSION_1_0", + "value": "v1.0" + } + ] + } + }, + "com.amazonaws.notifications#ServiceCode": { + "type": "string" + }, + "com.amazonaws.notifications#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notifications#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "resourceType": { + "target": "com.amazonaws.notifications#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of the resource that exceeds the service quota.

", + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "com.amazonaws.notifications#ResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the resource that exceeds the service quota.

" + } + }, + "serviceCode": { + "target": "com.amazonaws.notifications#ServiceCode", + "traits": { + "smithy.api#documentation": "

The code for the service quota exceeded in Service Quotas.

" + } + }, + "quotaCode": { + "target": "com.amazonaws.notifications#QuotaCode", + "traits": { + "smithy.api#documentation": "

The code for the service quota in Service Quotas.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Request would cause a service quota to be exceeded.

", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.notifications#Source": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 36 + }, + "smithy.api#pattern": "^aws.([a-z0-9\\-])+$" + } + }, + "com.amazonaws.notifications#SourceEventMetadata": { + "type": "structure", + "members": { + "eventTypeVersion": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The version of the type of event.

", + "smithy.api#length": { + "min": 1, + "max": 3 + }, + "smithy.api#pattern": "^[0-9.]+$", + "smithy.api#required": {} + } + }, + "sourceEventId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The source event id.

", + "smithy.api#required": {} + } + }, + "eventOriginRegion": { + "target": "com.amazonaws.notifications#Region", + "traits": { + "smithy.api#documentation": "

The Region the event originated from.

", + "smithy.api#length": { + "max": 32 + } + } + }, + "relatedAccount": { + "target": "com.amazonaws.notifications#AccountId", + "traits": { + "smithy.api#documentation": "

The Primary AWS account of Source Event

", + "smithy.api#pattern": "^[0-9]{12}$", + "smithy.api#required": {} + } + }, + "source": { + "target": "com.amazonaws.notifications#Source", + "traits": { + "smithy.api#documentation": "

The AWS servvice the event originates from. For example aws.cloudwatch.

", + "smithy.api#required": {} + } + }, + "eventOccurrenceTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The date and time the source event occurred. This is based on the Source Event.

", + "smithy.api#required": {}, + "smithy.api#timestampFormat": "date-time" + } + }, + "eventType": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The type of event. For example, an AWS CloudWatch state change.

", + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#required": {} + } + }, + "relatedResources": { + "target": "com.amazonaws.notifications#Resources", + "traits": { + "smithy.api#documentation": "

A list of resources related to this NotificationEvent.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the metadata for a source event.

\n

For more information, see Event structure reference in the Amazon EventBridge User Guide.

" + } + }, + "com.amazonaws.notifications#SourceEventMetadataSummary": { + "type": "structure", + "members": { + "eventOriginRegion": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Region where the notification originated.

\n

Unavailable for aggregated notifications.

", + "smithy.api#length": { + "max": 32 + } + } + }, + "source": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The matched event source.

\n

Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see Event delivery from AWS services in the Amazon EventBridge User Guide.

", + "smithy.api#required": {} + } + }, + "eventType": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The event type to match.

\n

Must match one of the valid Amazon EventBridge event types. For example, EC2 Instance State-change Notification and AWS CloudWatch Alarm State Change. For more information, see Event delivery from AWS services in the Amazon EventBridge User Guide.

", + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains metadata about the event that caused the NotificationEvent. For other specific values, see sourceEventMetadata.

" + } + }, + "com.amazonaws.notifications#StatusSummaryByRegion": { + "type": "map", + "key": { + "target": "com.amazonaws.notifications#Region" + }, + "value": { + "target": "com.amazonaws.notifications#EventRuleStatusSummary" + } + }, + "com.amazonaws.notifications#TagKey": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(?!aws:).{1,128}$" + } + }, + "com.amazonaws.notifications#TagKeys": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#TagKey" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.notifications#TagMap": { + "type": "map", + "key": { + "target": "com.amazonaws.notifications#TagKey" + }, + "value": { + "target": "com.amazonaws.notifications#TagValue" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.notifications#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.notifications#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to tag a resource" + }, + "smithy.api#documentation": "

Tags the resource with a tag key and value.

\n

For more information, see Tagging your AWS resources in the Tagging AWS Resources User Guide.

\n \n

This is only supported for NotificationConfigurations.

\n
", + "smithy.api#http": { + "method": "POST", + "uri": "/tags/{arn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#TagResourceRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) to use to tag a resource.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.notifications#TagMap", + "traits": { + "smithy.api#documentation": "

A map of tags assigned to a resource. A tag is a string-to-string map of key-value pairs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#TagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, + "com.amazonaws.notifications#Tags": { + "type": "list", + "member": { + "target": "smithy.api#String", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "traits": { + "smithy.api#length": { + "max": 50 + } + } + }, + "com.amazonaws.notifications#TextByLocale": { + "type": "map", + "key": { + "target": "com.amazonaws.notifications#LocaleCode" + }, + "value": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.notifications#TextPartId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[A-Za-z0-9_]+$" + } + }, + "com.amazonaws.notifications#TextPartReference": { + "type": "string" + }, + "com.amazonaws.notifications#TextPartType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "LOCALIZED_TEXT", + "value": "LOCALIZED_TEXT" + }, + { + "name": "PLAIN_TEXT", + "value": "PLAIN_TEXT" + }, + { + "name": "URL", + "value": "URL" + } + ] + } + }, + "com.amazonaws.notifications#TextPartValue": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.notifications#TextPartType", + "traits": { + "smithy.api#documentation": "

The type of text part. Determines the usage of all other fields and whether or not they're required.

", + "smithy.api#required": {} + } + }, + "displayText": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A short single line description of the link. Must be hyperlinked with the URL itself.

\n

Used for text parts with the type URL.

", + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "textByLocale": { + "target": "com.amazonaws.notifications#TextByLocale", + "traits": { + "smithy.api#documentation": "

A map of locales to the text in that locale.

" + } + }, + "url": { + "target": "com.amazonaws.notifications#Url", + "traits": { + "smithy.api#documentation": "

The URL itself.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes text information objects containing fields that determine how text part objects are composed.

" + } + }, + "com.amazonaws.notifications#TextParts": { + "type": "map", + "key": { + "target": "com.amazonaws.notifications#TextPartId" + }, + "value": { + "target": "com.amazonaws.notifications#TextPartValue" + } + }, + "com.amazonaws.notifications#ThrottlingException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notifications#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "serviceCode": { + "target": "com.amazonaws.notifications#ServiceCode", + "traits": { + "smithy.api#documentation": "

Identifies the service being throttled.

" + } + }, + "quotaCode": { + "target": "com.amazonaws.notifications#QuotaCode", + "traits": { + "smithy.api#documentation": "

Identifies the quota that is being throttled.

" + } + }, + "retryAfterSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of seconds a client should wait before retrying the request.

", + "smithy.api#httpHeader": "Retry-After" + } + } + }, + "traits": { + "smithy.api#documentation": "

Request was denied due to request throttling.

", + "smithy.api#error": "client", + "smithy.api#httpError": 429, + "smithy.api#retryable": { + "throttling": true + } + } + }, + "com.amazonaws.notifications#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.notifications#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to remove tags from a resource" + }, + "smithy.api#documentation": "

Untags a resource with a specified Amazon Resource Name (ARN).

\n

For more information, see Tagging your AWS resources in the Tagging AWS Resources User Guide.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/tags/{arn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#UntagResourceRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) to use to untag a resource.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tagKeys": { + "target": "com.amazonaws.notifications#TagKeys", + "traits": { + "smithy.api#documentation": "

The tag keys to use to untag a resource.

", + "smithy.api#httpQuery": "tagKeys", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#UntagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#UpdateEventRule": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#UpdateEventRuleRequest" + }, + "output": { + "target": "com.amazonaws.notifications#UpdateEventRuleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#ConflictException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to update an EventRule" + }, + "smithy.api#documentation": "

Updates an existing EventRule.

", + "smithy.api#http": { + "code": 200, + "method": "PUT", + "uri": "/event-rules/{arn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#UpdateEventRuleRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#EventRuleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) to use to update the EventRule.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "eventPattern": { + "target": "com.amazonaws.notifications#EventRuleEventPattern", + "traits": { + "smithy.api#documentation": "

An additional event pattern used to further filter the events this EventRule receives.

\n

For more information, see Amazon EventBridge event patterns in the Amazon EventBridge User Guide.\n

" + } + }, + "regions": { + "target": "com.amazonaws.notifications#Regions", + "traits": { + "smithy.api#documentation": "

A list of AWS Regions that sends events to this EventRule.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#UpdateEventRuleResponse": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#EventRuleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) to use to update the EventRule.

", + "smithy.api#required": {} + } + }, + "notificationConfigurationArn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN of the NotificationConfiguration.

", + "smithy.api#required": {} + } + }, + "statusSummaryByRegion": { + "target": "com.amazonaws.notifications#StatusSummaryByRegion", + "traits": { + "smithy.api#documentation": "

The status of the action by Region.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#UpdateNotificationConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.notifications#UpdateNotificationConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.notifications#UpdateNotificationConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notifications#AccessDeniedException" + }, + { + "target": "com.amazonaws.notifications#ConflictException" + }, + { + "target": "com.amazonaws.notifications#InternalServerException" + }, + { + "target": "com.amazonaws.notifications#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notifications#ThrottlingException" + }, + { + "target": "com.amazonaws.notifications#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to update a NotificationConfiguration" + }, + "smithy.api#documentation": "

Updates a NotificationConfiguration.

", + "smithy.api#http": { + "code": 200, + "method": "PUT", + "uri": "/notification-configurations/{arn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notifications#UpdateNotificationConfigurationRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) used to update the NotificationConfiguration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.notifications#NotificationConfigurationName", + "traits": { + "smithy.api#documentation": "

The name of the NotificationConfiguration.

" + } + }, + "description": { + "target": "com.amazonaws.notifications#NotificationConfigurationDescription", + "traits": { + "smithy.api#documentation": "

The description of the NotificationConfiguration.

" + } + }, + "aggregationDuration": { + "target": "com.amazonaws.notifications#AggregationDuration", + "traits": { + "smithy.api#documentation": "

The status of this NotificationConfiguration.

\n

The status should always be INACTIVE when part of the CreateNotificationConfiguration response.

\n " + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notifications#UpdateNotificationConfigurationResponse": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notifications#NotificationConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN used to update the NotificationConfiguration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notifications#Url": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 2000 + }, + "smithy.api#pattern": "^(https?)://.*$" + } + }, + "com.amazonaws.notifications#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notifications#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.amazonaws.notifications#ValidationExceptionReason", + "traits": { + "smithy.api#documentation": "

The reason why your input is considered invalid.

" + } + }, + "fieldList": { + "target": "com.amazonaws.notifications#ValidationExceptionFieldList", + "traits": { + "smithy.api#documentation": "

The list of input fields that are invalid.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This exception is thrown when the notification event fails validation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.notifications#ValidationExceptionField": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The field name where the invalid entry was detected.

", + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A message with the reason for the validation exception error.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Stores information about a field passed inside a request that resulted in an exception.

" + } + }, + "com.amazonaws.notifications#ValidationExceptionFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.notifications#ValidationExceptionField" + } + }, + "com.amazonaws.notifications#ValidationExceptionReason": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "fieldValidationFailed", + "name": "FIELD_VALIDATION_FAILED" + }, + { + "value": "other", + "name": "OTHER" + } + ] + } + } + } +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/notificationscontacts.json b/codegen/sdk-codegen/aws-models/notificationscontacts.json new file mode 100644 index 00000000000..dd683fae2e6 --- /dev/null +++ b/codegen/sdk-codegen/aws-models/notificationscontacts.json @@ -0,0 +1,1670 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.notificationscontacts#AccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notificationscontacts#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

You do not have sufficient access to perform this action.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.notificationscontacts#ActivateEmailContact": { + "type": "operation", + "input": { + "target": "com.amazonaws.notificationscontacts#ActivateEmailContactRequest" + }, + "output": { + "target": "com.amazonaws.notificationscontacts#ActivateEmailContactResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notificationscontacts#AccessDeniedException" + }, + { + "target": "com.amazonaws.notificationscontacts#ConflictException" + }, + { + "target": "com.amazonaws.notificationscontacts#InternalServerException" + }, + { + "target": "com.amazonaws.notificationscontacts#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notificationscontacts#ThrottlingException" + }, + { + "target": "com.amazonaws.notificationscontacts#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to activate the email contact associated with the given ARN if the provided code is valid" + }, + "smithy.api#documentation": "

Activates an email contact using an activation code. This code is in the activation email sent to the email address associated with this email contact.

", + "smithy.api#http": { + "code": 200, + "method": "PUT", + "uri": "/emailcontacts/{arn}/activate/{code}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notificationscontacts#ActivateEmailContactRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notificationscontacts#EmailContactArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "code": { + "target": "com.amazonaws.notificationscontacts#Token", + "traits": { + "smithy.api#documentation": "

The activation code for this email contact.

\n

An email contact has a maximum of five activation attempts. Activation codes expire after 12 hours and are generated by the SendActivationCode API action.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notificationscontacts#ActivateEmailContactResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notificationscontacts#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notificationscontacts#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "com.amazonaws.notificationscontacts#ResourceId", + "traits": { + "smithy.api#documentation": "

The resource ID that prompted the conflict error.

", + "smithy.api#required": {} + } + }, + "resourceType": { + "target": "com.amazonaws.notificationscontacts#ResourceType", + "traits": { + "smithy.api#documentation": "

The resource type that prompted the conflict error.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Updating or deleting a resource can cause an inconsistent state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.notificationscontacts#CreateEmailContact": { + "type": "operation", + "input": { + "target": "com.amazonaws.notificationscontacts#CreateEmailContactRequest" + }, + "output": { + "target": "com.amazonaws.notificationscontacts#CreateEmailContactResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notificationscontacts#AccessDeniedException" + }, + { + "target": "com.amazonaws.notificationscontacts#ConflictException" + }, + { + "target": "com.amazonaws.notificationscontacts#InternalServerException" + }, + { + "target": "com.amazonaws.notificationscontacts#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.notificationscontacts#ThrottlingException" + }, + { + "target": "com.amazonaws.notificationscontacts#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to create an email contact" + }, + "smithy.api#documentation": "

Creates an email contact for the provided email address.

", + "smithy.api#http": { + "code": 201, + "method": "POST", + "uri": "/2022-09-19/emailcontacts" + } + } + }, + "com.amazonaws.notificationscontacts#CreateEmailContactRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.notificationscontacts#EmailContactName", + "traits": { + "smithy.api#documentation": "

The name of the email contact.

", + "smithy.api#required": {} + } + }, + "emailAddress": { + "target": "com.amazonaws.notificationscontacts#EmailContactAddress", + "traits": { + "smithy.api#documentation": "

The email address this email contact points to. The activation email and any subscribed emails are sent here.

\n \n

This email address can't receive emails until it's activated.

\n
", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.notificationscontacts#TagMap", + "traits": { + "smithy.api#documentation": "

A map of tags assigned to a resource. A tag is a string-to-string map of key-value pairs.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notificationscontacts#CreateEmailContactResponse": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notificationscontacts#EmailContactArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notificationscontacts#CreationTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "date-time" + } + }, + "com.amazonaws.notificationscontacts#DeleteEmailContact": { + "type": "operation", + "input": { + "target": "com.amazonaws.notificationscontacts#DeleteEmailContactRequest" + }, + "output": { + "target": "com.amazonaws.notificationscontacts#DeleteEmailContactResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notificationscontacts#AccessDeniedException" + }, + { + "target": "com.amazonaws.notificationscontacts#ConflictException" + }, + { + "target": "com.amazonaws.notificationscontacts#InternalServerException" + }, + { + "target": "com.amazonaws.notificationscontacts#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notificationscontacts#ThrottlingException" + }, + { + "target": "com.amazonaws.notificationscontacts#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to delete an email contact associated with the given ARN" + }, + "smithy.api#documentation": "

Deletes an email contact.

\n \n

Deleting an email contact removes it from all associated notification configurations.

\n
", + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/emailcontacts/{arn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notificationscontacts#DeleteEmailContactRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notificationscontacts#EmailContactArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notificationscontacts#DeleteEmailContactResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notificationscontacts#EmailContact": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notificationscontacts#EmailContactArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the email contact.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.notificationscontacts#EmailContactName", + "traits": { + "smithy.api#documentation": "

The name of the email contact.

", + "smithy.api#required": {} + } + }, + "address": { + "target": "com.amazonaws.notificationscontacts#SensitiveEmailContactAddress", + "traits": { + "smithy.api#documentation": "

The email address this email contact points to. The activation email and any subscribed emails are sent here.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.notificationscontacts#EmailContactStatus", + "traits": { + "smithy.api#documentation": "

The status of the email contact. Only activated email contacts receive emails.

", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.notificationscontacts#CreationTime", + "traits": { + "smithy.api#documentation": "

The creation time of the resource.

", + "smithy.api#required": {} + } + }, + "updateTime": { + "target": "com.amazonaws.notificationscontacts#UpdateTime", + "traits": { + "smithy.api#documentation": "

The time the resource was last updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An email contact.

" + } + }, + "com.amazonaws.notificationscontacts#EmailContactAddress": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 6, + "max": 254 + }, + "smithy.api#pattern": "^(.+)@(.+)$" + } + }, + "com.amazonaws.notificationscontacts#EmailContactArn": { + "type": "string", + "traits": { + "aws.api#arnReference": { + "service": "com.amazonaws.notificationscontacts#NotificationsContacts", + "resource": "com.amazon.aws.services.notifications.contacts.orchestration.service#EmailContact" + }, + "smithy.api#pattern": "^arn:aws:notifications-contacts::[0-9]{12}:emailcontact/[a-z0-9]{27}$" + } + }, + "com.amazonaws.notificationscontacts#EmailContactName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "[\\w-.~]+", + "smithy.api#sensitive": {}, + "smithy.api#suppress": [ + "PatternTrait" + ] + } + }, + "com.amazonaws.notificationscontacts#EmailContactResource": { + "type": "resource", + "identifiers": { + "arn": { + "target": "com.amazonaws.notificationscontacts#EmailContactArn" + } + }, + "create": { + "target": "com.amazonaws.notificationscontacts#CreateEmailContact" + }, + "read": { + "target": "com.amazonaws.notificationscontacts#GetEmailContact" + }, + "delete": { + "target": "com.amazonaws.notificationscontacts#DeleteEmailContact" + }, + "list": { + "target": "com.amazonaws.notificationscontacts#ListEmailContacts" + }, + "operations": [ + { + "target": "com.amazonaws.notificationscontacts#ActivateEmailContact" + }, + { + "target": "com.amazonaws.notificationscontacts#SendActivationCode" + } + ], + "traits": { + "aws.api#arn": { + "template": "{arn}", + "absolute": true, + "noRegion": true + }, + "aws.cloudformation#cfnResource": {} + } + }, + "com.amazonaws.notificationscontacts#EmailContactStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "inactive", + "name": "INACTIVE" + }, + { + "value": "active", + "name": "ACTIVE" + } + ] + } + }, + "com.amazonaws.notificationscontacts#EmailContacts": { + "type": "list", + "member": { + "target": "com.amazonaws.notificationscontacts#EmailContact" + } + }, + "com.amazonaws.notificationscontacts#ErrorMessage": { + "type": "string" + }, + "com.amazonaws.notificationscontacts#GetEmailContact": { + "type": "operation", + "input": { + "target": "com.amazonaws.notificationscontacts#GetEmailContactRequest" + }, + "output": { + "target": "com.amazonaws.notificationscontacts#GetEmailContactResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notificationscontacts#AccessDeniedException" + }, + { + "target": "com.amazonaws.notificationscontacts#InternalServerException" + }, + { + "target": "com.amazonaws.notificationscontacts#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notificationscontacts#ThrottlingException" + }, + { + "target": "com.amazonaws.notificationscontacts#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to get an email contact associated with the given ARN" + }, + "smithy.api#documentation": "

Returns an email contact.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/emailcontacts/{arn}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.notificationscontacts#GetEmailContactRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notificationscontacts#EmailContactArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the email contact to get.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notificationscontacts#GetEmailContactResponse": { + "type": "structure", + "members": { + "emailContact": { + "target": "com.amazonaws.notificationscontacts#EmailContact", + "traits": { + "smithy.api#documentation": "

The email contact for the provided email address.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notificationscontacts#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notificationscontacts#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Unexpected error during processing of request.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500, + "smithy.api#retryable": {} + } + }, + "com.amazonaws.notificationscontacts#ListEmailContacts": { + "type": "operation", + "input": { + "target": "com.amazonaws.notificationscontacts#ListEmailContactsRequest" + }, + "output": { + "target": "com.amazonaws.notificationscontacts#ListEmailContactsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notificationscontacts#AccessDeniedException" + }, + { + "target": "com.amazonaws.notificationscontacts#InternalServerException" + }, + { + "target": "com.amazonaws.notificationscontacts#ThrottlingException" + }, + { + "target": "com.amazonaws.notificationscontacts#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to list email contacts" + }, + "smithy.api#documentation": "

Lists all email contacts created under the Account.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/emailcontacts" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "emailContacts" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "ListEmailContactsSuccess", + "params": { + "maxResults": 1 + }, + "expect": { + "success": {} + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "vendorParams": { + "region": "us-east-1" + } + } + ] + } + }, + "com.amazonaws.notificationscontacts#ListEmailContactsRequest": { + "type": "structure", + "members": { + "maxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.

", + "smithy.api#httpQuery": "maxResults", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notificationscontacts#ListEmailContactsResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults.

" + } + }, + "emailContacts": { + "target": "com.amazonaws.notificationscontacts#EmailContacts", + "traits": { + "smithy.api#documentation": "

A list of email contacts.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notificationscontacts#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.notificationscontacts#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.notificationscontacts#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notificationscontacts#AccessDeniedException" + }, + { + "target": "com.amazonaws.notificationscontacts#InternalServerException" + }, + { + "target": "com.amazonaws.notificationscontacts#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notificationscontacts#ThrottlingException" + }, + { + "target": "com.amazonaws.notificationscontacts#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to get tags for a resource" + }, + "smithy.api#documentation": "

Lists all of the tags associated with the Amazon Resource Name (ARN) that you specify. The resource can be a user, server, or role.

", + "smithy.api#http": { + "method": "GET", + "uri": "/tags/{arn}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.notificationscontacts#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notificationscontacts#EmailContactArn", + "traits": { + "smithy.api#documentation": "

The ARN you specified to list the tags of.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notificationscontacts#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "tags": { + "target": "com.amazonaws.notificationscontacts#TagMap", + "traits": { + "smithy.api#documentation": "

Key-value pairs that are assigned to a resource, usually for the purpose of grouping and searching for items. Tags are metadata that you define.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notificationscontacts#NotificationsContacts": { + "type": "service", + "version": "2018-05-10", + "operations": [ + { + "target": "com.amazonaws.notificationscontacts#ListTagsForResource" + }, + { + "target": "com.amazonaws.notificationscontacts#TagResource" + }, + { + "target": "com.amazonaws.notificationscontacts#UntagResource" + } + ], + "resources": [ + { + "target": "com.amazonaws.notificationscontacts#EmailContactResource" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "NotificationsContacts", + "arnNamespace": "notifications-contacts", + "endpointPrefix": "notifications-contacts", + "cloudTrailEventSource": "notifications-contacts.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "notifications-contacts" + }, + "aws.endpoints#dualStackOnlyEndpoints": {}, + "aws.endpoints#standardPartitionalEndpoints": { + "endpointPatternType": "service_region_dnsSuffix" + }, + "aws.iam#supportedPrincipalTypes": [ + "Root", + "IAMUser", + "IAMRole", + "FederatedUser" + ], + "aws.protocols#restJson1": {}, + "smithy.api#cors": { + "additionalAllowedHeaders": [ + "*", + "content-type", + "x-amz-content-sha256", + "x-amz-user-agent", + "x-amzn-platform-id", + "x-amzn-trace-id" + ], + "additionalExposedHeaders": [ + "x-amzn-errortype", + "x-amzn-requestid", + "x-amzn-trace-id" + ], + "maxAge": 86400 + }, + "smithy.api#documentation": "

AWS User Notifications Contacts is a service that allows you to create and manage email contacts for AWS User Notifications. The AWS User Notifications Contacts API Reference provides descriptions, API request parameters, and the JSON response for all email contact related API actions.

", + "smithy.api#title": "AWS User Notifications Contacts", + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://notifications-contacts-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://notifications-contacts.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For custom endpoint with region not set and fips disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://notifications-contacts-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://notifications-contacts.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://notifications-contacts-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://notifications-contacts.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://notifications-contacts-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://notifications-contacts.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://notifications-contacts-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://notifications-contacts.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://notifications-contacts-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://notifications-contacts.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "url": "https://notifications-contacts-fips.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "url": "https://notifications-contacts.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "url": "https://notifications-contacts-fips.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "url": "https://notifications-contacts.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": false + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.notificationscontacts#QuotaCode": { + "type": "string" + }, + "com.amazonaws.notificationscontacts#ResourceId": { + "type": "string" + }, + "com.amazonaws.notificationscontacts#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notificationscontacts#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "com.amazonaws.notificationscontacts#ResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the resource that wasn't found.

", + "smithy.api#required": {} + } + }, + "resourceType": { + "target": "com.amazonaws.notificationscontacts#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of resource that wasn't found.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Your request references a resource which does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.notificationscontacts#ResourceType": { + "type": "string" + }, + "com.amazonaws.notificationscontacts#SendActivationCode": { + "type": "operation", + "input": { + "target": "com.amazonaws.notificationscontacts#SendActivationCodeRequest" + }, + "output": { + "target": "com.amazonaws.notificationscontacts#SendActivationCodeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notificationscontacts#AccessDeniedException" + }, + { + "target": "com.amazonaws.notificationscontacts#ConflictException" + }, + { + "target": "com.amazonaws.notificationscontacts#InternalServerException" + }, + { + "target": "com.amazonaws.notificationscontacts#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notificationscontacts#ThrottlingException" + }, + { + "target": "com.amazonaws.notificationscontacts#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to send an activation link to the email associated with the given ARN" + }, + "smithy.api#documentation": "

Sends an activation email to the email address associated with the specified email contact.

\n \n

It might take a few minutes for the activation email to arrive. If it doesn't arrive, check in your spam folder or try sending another activation email.

\n
", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/2022-10-31/emailcontacts/{arn}/activate/send" + } + } + }, + "com.amazonaws.notificationscontacts#SendActivationCodeRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notificationscontacts#EmailContactArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notificationscontacts#SendActivationCodeResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notificationscontacts#SensitiveEmailContactAddress": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 6, + "max": 254 + }, + "smithy.api#pattern": "^(.+)@(.+)$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.notificationscontacts#ServiceCode": { + "type": "string" + }, + "com.amazonaws.notificationscontacts#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notificationscontacts#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "com.amazonaws.notificationscontacts#ResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the resource that exceeds the service quota.

", + "smithy.api#required": {} + } + }, + "resourceType": { + "target": "com.amazonaws.notificationscontacts#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of the resource that exceeds the service quota.

", + "smithy.api#required": {} + } + }, + "serviceCode": { + "target": "com.amazonaws.notificationscontacts#ServiceCode", + "traits": { + "smithy.api#documentation": "

The code for the service quota exceeded in Service Quotas.

", + "smithy.api#required": {} + } + }, + "quotaCode": { + "target": "com.amazonaws.notificationscontacts#QuotaCode", + "traits": { + "smithy.api#documentation": "

The code for the service quota in Service Quotas.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Request would cause a service quota to be exceeded.

", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.notificationscontacts#TagKey": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(?!aws:).{1,128}$" + } + }, + "com.amazonaws.notificationscontacts#TagKeys": { + "type": "list", + "member": { + "target": "com.amazonaws.notificationscontacts#TagKey" + } + }, + "com.amazonaws.notificationscontacts#TagMap": { + "type": "map", + "key": { + "target": "com.amazonaws.notificationscontacts#TagKey" + }, + "value": { + "target": "com.amazonaws.notificationscontacts#TagValue" + }, + "traits": { + "smithy.api#documentation": "Map of tags assigned to a resource", + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.notificationscontacts#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.notificationscontacts#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.notificationscontacts#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notificationscontacts#AccessDeniedException" + }, + { + "target": "com.amazonaws.notificationscontacts#InternalServerException" + }, + { + "target": "com.amazonaws.notificationscontacts#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notificationscontacts#ThrottlingException" + }, + { + "target": "com.amazonaws.notificationscontacts#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to tag a resource" + }, + "smithy.api#documentation": "

Attaches a key-value pair to a resource, as identified by its Amazon Resource Name (ARN). Taggable resources in AWS User Notifications Contacts include email contacts.

", + "smithy.api#http": { + "method": "POST", + "uri": "/tags/{arn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notificationscontacts#TagResourceRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notificationscontacts#EmailContactArn", + "traits": { + "smithy.api#documentation": "

The ARN of the configuration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.notificationscontacts#TagMap", + "traits": { + "smithy.api#documentation": "

A list of tags to apply to the configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notificationscontacts#TagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notificationscontacts#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, + "com.amazonaws.notificationscontacts#ThrottlingException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notificationscontacts#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "serviceCode": { + "target": "com.amazonaws.notificationscontacts#ServiceCode", + "traits": { + "smithy.api#documentation": "

Identifies the service being throttled.

" + } + }, + "quotaCode": { + "target": "com.amazonaws.notificationscontacts#QuotaCode", + "traits": { + "smithy.api#documentation": "

Identifies the quota that is being throttled.

" + } + }, + "retryAfterSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of seconds a client should wait before retrying the request.

", + "smithy.api#httpHeader": "Retry-After" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request was denied due to request throttling.

", + "smithy.api#error": "client", + "smithy.api#httpError": 429, + "smithy.api#retryable": { + "throttling": true + } + } + }, + "com.amazonaws.notificationscontacts#Token": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 7, + "max": 7 + }, + "smithy.api#pattern": "^[a-z0-9]{7}$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.notificationscontacts#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.notificationscontacts#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.notificationscontacts#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.notificationscontacts#AccessDeniedException" + }, + { + "target": "com.amazonaws.notificationscontacts#InternalServerException" + }, + { + "target": "com.amazonaws.notificationscontacts#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.notificationscontacts#ThrottlingException" + }, + { + "target": "com.amazonaws.notificationscontacts#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.iam#iamAction": { + "documentation": "Grants permission to remove tags from a resource" + }, + "smithy.api#documentation": "

Detaches a key-value pair from a resource, as identified by its Amazon Resource Name (ARN). Taggable resources in AWS User Notifications Contacts include email contacts..

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/tags/{arn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.notificationscontacts#UntagResourceRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.notificationscontacts#EmailContactArn", + "traits": { + "smithy.api#documentation": "

The value of the resource that will have the tag removed. An Amazon Resource Name (ARN) is an identifier for a specific AWS resource, such as a server, user, or role.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tagKeys": { + "target": "com.amazonaws.notificationscontacts#TagKeys", + "traits": { + "smithy.api#documentation": "

Specifies a list of tag keys that you want to remove from the specified resources.

", + "smithy.api#httpQuery": "tagKeys", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.notificationscontacts#UntagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.notificationscontacts#UpdateTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "date-time" + } + }, + "com.amazonaws.notificationscontacts#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.notificationscontacts#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.amazonaws.notificationscontacts#ValidationExceptionReason", + "traits": { + "smithy.api#documentation": "

The reason why your input is considered invalid.

", + "smithy.api#required": {} + } + }, + "fieldList": { + "target": "com.amazonaws.notificationscontacts#ValidationExceptionFieldList", + "traits": { + "smithy.api#documentation": "

The list of input fields that are invalid.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input fails to satisfy the constraints specified by an AWS service.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.notificationscontacts#ValidationExceptionField": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The field name where the invalid entry was detected.

", + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A message with the reason for the validation exception error.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Stores information about a field passed inside a request that resulted in an exception.

" + } + }, + "com.amazonaws.notificationscontacts#ValidationExceptionFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.notificationscontacts#ValidationExceptionField" + } + }, + "com.amazonaws.notificationscontacts#ValidationExceptionReason": { + "type": "enum", + "members": { + "FIELD_VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fieldValidationFailed" + } + }, + "OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "other" + } + } + } + } + } +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/resiliencehub.json b/codegen/sdk-codegen/aws-models/resiliencehub.json index e15e88b48c5..e2fc7be8969 100644 --- a/codegen/sdk-codegen/aws-models/resiliencehub.json +++ b/codegen/sdk-codegen/aws-models/resiliencehub.json @@ -75,7 +75,7 @@ "entries": { "target": "com.amazonaws.resiliencehub#AcceptGroupingRecommendationEntries", "traits": { - "smithy.api#documentation": "

Indicates the list of resource grouping recommendations you want to include in your application.

", + "smithy.api#documentation": "

List of resource grouping recommendations you want to include in your application.

", "smithy.api#required": {} } } @@ -97,7 +97,7 @@ "failedEntries": { "target": "com.amazonaws.resiliencehub#FailedGroupingRecommendationEntries", "traits": { - "smithy.api#documentation": "

Indicates the list of resource grouping recommendations that could not be included in your application.

", + "smithy.api#documentation": "

List of resource grouping recommendations that could not be included in your application.

", "smithy.api#required": {} } } @@ -385,7 +385,7 @@ "creationTime": { "target": "com.amazonaws.resiliencehub#TimeStamp", "traits": { - "smithy.api#documentation": "

Date and time when the app was created.

", + "smithy.api#documentation": "

Date and time when the application was created.

", "smithy.api#required": {} } }, @@ -1300,6 +1300,9 @@ { "target": "com.amazonaws.resiliencehub#DescribeDraftAppVersionResourcesImportStatus" }, + { + "target": "com.amazonaws.resiliencehub#DescribeMetricsExport" + }, { "target": "com.amazonaws.resiliencehub#DescribeResiliencyPolicy" }, @@ -1345,6 +1348,9 @@ { "target": "com.amazonaws.resiliencehub#ListAppVersions" }, + { + "target": "com.amazonaws.resiliencehub#ListMetrics" + }, { "target": "com.amazonaws.resiliencehub#ListRecommendationTemplates" }, @@ -1387,6 +1393,9 @@ { "target": "com.amazonaws.resiliencehub#StartAppAssessment" }, + { + "target": "com.amazonaws.resiliencehub#StartMetricsExport" + }, { "target": "com.amazonaws.resiliencehub#StartResourceGroupingRecommendationTask" }, @@ -2477,7 +2486,7 @@ "min": 1, "max": 63 }, - "smithy.api#pattern": "^[A-za-z0-9_.-]{0,63}$" + "smithy.api#pattern": "^[A-Za-z0-9_.-]{0,63}$" } }, "com.amazonaws.resiliencehub#ComplianceDrift": { @@ -2624,6 +2633,87 @@ "target": "com.amazonaws.resiliencehub#ComponentRecommendation" } }, + "com.amazonaws.resiliencehub#Condition": { + "type": "structure", + "members": { + "field": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

Indicates the field in the metric.

", + "smithy.api#required": {} + } + }, + "operator": { + "target": "com.amazonaws.resiliencehub#ConditionOperatorType", + "traits": { + "smithy.api#documentation": "

Indicates the type of operator or comparison to be used when evaluating a condition against the specified field.

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

Indicates the value or data against which a condition is evaluated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates the condition based on which you want to filter the metrics.

" + } + }, + "com.amazonaws.resiliencehub#ConditionList": { + "type": "list", + "member": { + "target": "com.amazonaws.resiliencehub#Condition" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.resiliencehub#ConditionOperatorType": { + "type": "enum", + "members": { + "EQUALS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Equals" + } + }, + "NOT_EQUALS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NotEquals" + } + }, + "GREATER_THEN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GreaterThen" + } + }, + "GREATER_OR_EQUALS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GreaterOrEquals" + } + }, + "LESS_THEN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LessThen" + } + }, + "LESS_OR_EQUALS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LessOrEquals" + } + } + } + }, "com.amazonaws.resiliencehub#ConfigRecommendation": { "type": "structure", "members": { @@ -3335,14 +3425,14 @@ "policyName": { "target": "com.amazonaws.resiliencehub#EntityName", "traits": { - "smithy.api#documentation": "

The name of the policy

", + "smithy.api#documentation": "

Name of the resiliency policy.

", "smithy.api#required": {} } }, "policyDescription": { "target": "com.amazonaws.resiliencehub#EntityDescription", "traits": { - "smithy.api#documentation": "

The description for the policy.

" + "smithy.api#documentation": "

Description of the resiliency policy.

" } }, "dataLocationConstraint": { @@ -4667,6 +4757,89 @@ } } }, + "com.amazonaws.resiliencehub#DescribeMetricsExport": { + "type": "operation", + "input": { + "target": "com.amazonaws.resiliencehub#DescribeMetricsExportRequest" + }, + "output": { + "target": "com.amazonaws.resiliencehub#DescribeMetricsExportResponse" + }, + "errors": [ + { + "target": "com.amazonaws.resiliencehub#AccessDeniedException" + }, + { + "target": "com.amazonaws.resiliencehub#InternalServerException" + }, + { + "target": "com.amazonaws.resiliencehub#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.resiliencehub#ThrottlingException" + }, + { + "target": "com.amazonaws.resiliencehub#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the metrics of the application configuration being exported.

", + "smithy.api#http": { + "method": "POST", + "uri": "/describe-metrics-export", + "code": 200 + } + } + }, + "com.amazonaws.resiliencehub#DescribeMetricsExportRequest": { + "type": "structure", + "members": { + "metricsExportId": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

Identifier of the metrics export task.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.resiliencehub#DescribeMetricsExportResponse": { + "type": "structure", + "members": { + "metricsExportId": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

Identifier for the metrics export task.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.resiliencehub#MetricsExportStatusType", + "traits": { + "smithy.api#documentation": "

Indicates the status of the metrics export task.

", + "smithy.api#required": {} + } + }, + "exportLocation": { + "target": "com.amazonaws.resiliencehub#S3Location", + "traits": { + "smithy.api#documentation": "

Specifies the name of the Amazon S3 bucket where the exported metrics is stored.

" + } + }, + "errorMessage": { + "target": "com.amazonaws.resiliencehub#String500", + "traits": { + "smithy.api#documentation": "

Explains the error that occurred while exporting the metrics.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.resiliencehub#DescribeResiliencyPolicy": { "type": "operation", "input": { @@ -4772,7 +4945,7 @@ "groupingId": { "target": "com.amazonaws.resiliencehub#String255", "traits": { - "smithy.api#documentation": "

Indicates the identifier of the grouping recommendation task.

" + "smithy.api#documentation": "

Identifier of the grouping recommendation task.

" } } }, @@ -4786,7 +4959,7 @@ "groupingId": { "target": "com.amazonaws.resiliencehub#String255", "traits": { - "smithy.api#documentation": "

Indicates the identifier of the grouping recommendation task.

", + "smithy.api#documentation": "

Identifier of the grouping recommendation task.

", "smithy.api#required": {} } }, @@ -4800,7 +4973,7 @@ "errorMessage": { "target": "com.amazonaws.resiliencehub#String500", "traits": { - "smithy.api#documentation": "

Indicates the error that occurred while generating a grouping recommendation.

" + "smithy.api#documentation": "

Error that occurred while generating a grouping recommendation.

" } } }, @@ -5301,6 +5474,74 @@ "smithy.api#documentation": "

Defines a failure policy.

" } }, + "com.amazonaws.resiliencehub#Field": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

Name of the field.

", + "smithy.api#required": {} + } + }, + "aggregation": { + "target": "com.amazonaws.resiliencehub#FieldAggregationType", + "traits": { + "smithy.api#documentation": "

(Optional) Indicates the type of aggregation or summary operation (such as Sum, Average, and so on) to be performed on a particular field or set of data.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates the field or attribute of a resource or data structure on which a condition is being applied or evaluated.

" + } + }, + "com.amazonaws.resiliencehub#FieldAggregationType": { + "type": "enum", + "members": { + "MIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Min" + } + }, + "MAX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Max" + } + }, + "SUM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Sum" + } + }, + "AVG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Avg" + } + }, + "COUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Count" + } + } + } + }, + "com.amazonaws.resiliencehub#FieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.resiliencehub#Field" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, "com.amazonaws.resiliencehub#GroupingAppComponent": { "type": "structure", "members": { @@ -5830,7 +6071,7 @@ } ], "traits": { - "smithy.api#documentation": "

Indicates the list of compliance drifts that were detected while running an\n assessment.

", + "smithy.api#documentation": "

List of compliance drifts that were detected while running an\n assessment.

", "smithy.api#http": { "method": "POST", "uri": "/list-app-assessment-compliance-drifts", @@ -5862,7 +6103,7 @@ "maxResults": { "target": "com.amazonaws.resiliencehub#MaxResults", "traits": { - "smithy.api#documentation": "

Indicates the maximum number of compliance drifts requested.

" + "smithy.api#documentation": "

Maximum number of compliance drifts requested.

" } } }, @@ -5914,7 +6155,7 @@ } ], "traits": { - "smithy.api#documentation": "

Indicates the list of resource drifts that were detected while running an\n assessment.

", + "smithy.api#documentation": "

List of resource drifts that were detected while running an\n assessment.

", "smithy.api#http": { "method": "POST", "uri": "/list-app-assessment-resource-drifts", @@ -5947,7 +6188,7 @@ "maxResults": { "target": "com.amazonaws.resiliencehub#MaxResults", "traits": { - "smithy.api#documentation": "

Indicates the maximum number of drift results to include in the response. If more results\n exist than the specified MaxResults value, a token is included in the response so\n that the remaining results can be retrieved.

" + "smithy.api#documentation": "

Maximum number of drift results to include in the response. If more results\n exist than the specified MaxResults value, a token is included in the response so\n that the remaining results can be retrieved.

" } } }, @@ -6322,7 +6563,7 @@ "maxResults": { "target": "com.amazonaws.resiliencehub#MaxResults", "traits": { - "smithy.api#documentation": "

Maximum number of input sources to be displayed per Resilience Hub\n application.

" + "smithy.api#documentation": "

Maximum number of input sources to be displayed per Resilience Hub application.

" } } } @@ -6802,14 +7043,14 @@ "fromLastAssessmentTime": { "target": "com.amazonaws.resiliencehub#TimeStamp", "traits": { - "smithy.api#documentation": "

Indicates the lower limit of the range that is used to filter applications based on their\n last assessment times.

", + "smithy.api#documentation": "

Lower limit of the range that is used to filter applications based on their\n last assessment times.

", "smithy.api#httpQuery": "fromLastAssessmentTime" } }, "toLastAssessmentTime": { "target": "com.amazonaws.resiliencehub#TimeStamp", "traits": { - "smithy.api#documentation": "

Indicates the upper limit of the range that is used to filter the applications based on\n their last assessment times.

", + "smithy.api#documentation": "

Upper limit of the range that is used to filter the applications based on\n their last assessment times.

", "smithy.api#httpQuery": "toLastAssessmentTime" } }, @@ -6847,6 +7088,109 @@ } } }, + "com.amazonaws.resiliencehub#ListMetrics": { + "type": "operation", + "input": { + "target": "com.amazonaws.resiliencehub#ListMetricsRequest" + }, + "output": { + "target": "com.amazonaws.resiliencehub#ListMetricsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.resiliencehub#AccessDeniedException" + }, + { + "target": "com.amazonaws.resiliencehub#InternalServerException" + }, + { + "target": "com.amazonaws.resiliencehub#ThrottlingException" + }, + { + "target": "com.amazonaws.resiliencehub#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the metrics that can be exported.

", + "smithy.api#http": { + "method": "POST", + "uri": "/list-metrics", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "rows" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.resiliencehub#ListMetricsRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.resiliencehub#NextToken", + "traits": { + "smithy.api#documentation": "

Null, or the token from a previous call to get the next set of results.

" + } + }, + "maxResults": { + "target": "com.amazonaws.resiliencehub#MaxResults", + "traits": { + "smithy.api#documentation": "

Maximum number of results to include in the response. If more results exist than the specified \nMaxResults value, a token is included in the response so that the remaining results can be retrieved.

" + } + }, + "fields": { + "target": "com.amazonaws.resiliencehub#FieldList", + "traits": { + "smithy.api#documentation": "

Indicates the list of fields in the data source.

" + } + }, + "dataSource": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

Indicates the data source of the metrics.

" + } + }, + "conditions": { + "target": "com.amazonaws.resiliencehub#ConditionList", + "traits": { + "smithy.api#documentation": "

Indicates the list of all the conditions that were applied on the metrics.

" + } + }, + "sorts": { + "target": "com.amazonaws.resiliencehub#SortList", + "traits": { + "smithy.api#documentation": "

(Optional) Indicates the order in which you want to sort the fields in the metrics. By default, the fields are sorted in the ascending order.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.resiliencehub#ListMetricsResponse": { + "type": "structure", + "members": { + "rows": { + "target": "com.amazonaws.resiliencehub#RowList", + "traits": { + "smithy.api#documentation": "

Specifies all the list of metric values for each row of metrics.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.resiliencehub#NextToken", + "traits": { + "smithy.api#documentation": "

Token for the next set of results, or null if there are no more results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.resiliencehub#ListRecommendationTemplates": { "type": "operation", "input": { @@ -7001,7 +7345,7 @@ "policyName": { "target": "com.amazonaws.resiliencehub#EntityName", "traits": { - "smithy.api#documentation": "

The name of the policy

", + "smithy.api#documentation": "

Name of the resiliency policy.

", "smithy.api#httpQuery": "policyName" } }, @@ -7595,6 +7939,35 @@ } } }, + "com.amazonaws.resiliencehub#MetricsExportStatusType": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Pending" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InProgress" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Failed" + } + }, + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Success" + } + } + } + }, "com.amazonaws.resiliencehub#NextToken": { "type": "string", "traits": { @@ -8320,7 +8693,7 @@ "entries": { "target": "com.amazonaws.resiliencehub#RejectGroupingRecommendationEntries", "traits": { - "smithy.api#documentation": "

Indicates the list of resource grouping recommendations you have selected to exclude from your application.

", + "smithy.api#documentation": "

List of resource grouping recommendations you have selected to exclude from your application.

", "smithy.api#required": {} } } @@ -8342,7 +8715,7 @@ "failedEntries": { "target": "com.amazonaws.resiliencehub#FailedGroupingRecommendationEntries", "traits": { - "smithy.api#documentation": "

Indicates the list of resource grouping recommendations that failed to get excluded in your application.

", + "smithy.api#documentation": "

List of resource grouping recommendations that failed to get excluded in your application.

", "smithy.api#required": {} } } @@ -8512,7 +8885,7 @@ "policyDescription": { "target": "com.amazonaws.resiliencehub#EntityDescription", "traits": { - "smithy.api#documentation": "

The description for the policy.

" + "smithy.api#documentation": "

Description of the resiliency policy.

" } }, "dataLocationConstraint": { @@ -9126,6 +9499,18 @@ "com.amazonaws.resiliencehub#RetryAfterSeconds": { "type": "integer" }, + "com.amazonaws.resiliencehub#Row": { + "type": "list", + "member": { + "target": "com.amazonaws.resiliencehub#String255" + } + }, + "com.amazonaws.resiliencehub#RowList": { + "type": "list", + "member": { + "target": "com.amazonaws.resiliencehub#Row" + } + }, "com.amazonaws.resiliencehub#S3Location": { "type": "structure", "members": { @@ -9304,6 +9689,39 @@ } } }, + "com.amazonaws.resiliencehub#Sort": { + "type": "structure", + "members": { + "field": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

Indicates the order in which you want to sort the metrics. By default, the list is sorted in ascending order. To sort the list in descending order, set this field to False.

", + "smithy.api#required": {} + } + }, + "ascending": { + "target": "com.amazonaws.resiliencehub#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates the name or identifier of the field or attribute that should be used as the basis for sorting the metrics.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates the sorting order of the fields in the metrics.

" + } + }, + "com.amazonaws.resiliencehub#SortList": { + "type": "list", + "member": { + "target": "com.amazonaws.resiliencehub#Sort" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, "com.amazonaws.resiliencehub#SpecReferenceId": { "type": "string", "traits": { @@ -9404,6 +9822,86 @@ } } }, + "com.amazonaws.resiliencehub#StartMetricsExport": { + "type": "operation", + "input": { + "target": "com.amazonaws.resiliencehub#StartMetricsExportRequest" + }, + "output": { + "target": "com.amazonaws.resiliencehub#StartMetricsExportResponse" + }, + "errors": [ + { + "target": "com.amazonaws.resiliencehub#AccessDeniedException" + }, + { + "target": "com.amazonaws.resiliencehub#ConflictException" + }, + { + "target": "com.amazonaws.resiliencehub#InternalServerException" + }, + { + "target": "com.amazonaws.resiliencehub#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.resiliencehub#ThrottlingException" + }, + { + "target": "com.amazonaws.resiliencehub#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Initiates the export task of metrics.

", + "smithy.api#http": { + "method": "POST", + "uri": "/start-metrics-export", + "code": 200 + } + } + }, + "com.amazonaws.resiliencehub#StartMetricsExportRequest": { + "type": "structure", + "members": { + "bucketName": { + "target": "com.amazonaws.resiliencehub#EntityName", + "traits": { + "smithy.api#documentation": "

(Optional) Specifies the name of the Amazon Simple Storage Service bucket where the exported metrics will be stored.

" + } + }, + "clientToken": { + "target": "com.amazonaws.resiliencehub#ClientToken", + "traits": { + "smithy.api#documentation": "

Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. \nYou should not reuse the same client token for other API requests.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.resiliencehub#StartMetricsExportResponse": { + "type": "structure", + "members": { + "metricsExportId": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

Identifier of the metrics export task.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.resiliencehub#MetricsExportStatusType", + "traits": { + "smithy.api#documentation": "

Indicates the status of the metrics export task.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.resiliencehub#StartResourceGroupingRecommendationTask": { "type": "operation", "input": { @@ -9469,7 +9967,7 @@ "groupingId": { "target": "com.amazonaws.resiliencehub#String255", "traits": { - "smithy.api#documentation": "

Indicates the identifier of the grouping recommendation task.

", + "smithy.api#documentation": "

Identifier of the grouping recommendation task.

", "smithy.api#required": {} } }, @@ -9483,7 +9981,7 @@ "errorMessage": { "target": "com.amazonaws.resiliencehub#String500", "traits": { - "smithy.api#documentation": "

Indicates the error that occurred while executing a grouping recommendation task.

" + "smithy.api#documentation": "

Error that occurred while executing a grouping recommendation task.

" } } }, @@ -10487,19 +10985,19 @@ "policyName": { "target": "com.amazonaws.resiliencehub#EntityName", "traits": { - "smithy.api#documentation": "

The name of the policy

" + "smithy.api#documentation": "

Name of the resiliency policy.

" } }, "policyDescription": { "target": "com.amazonaws.resiliencehub#EntityDescription", "traits": { - "smithy.api#documentation": "

The description for the policy.

" + "smithy.api#documentation": "

Description of the resiliency policy.

" } }, "dataLocationConstraint": { "target": "com.amazonaws.resiliencehub#DataLocationConstraint", "traits": { - "smithy.api#documentation": "

Specifies a high-level geographical location constraint for where your resilience policy\n data can be stored.

" + "smithy.api#documentation": "

Specifies a high-level geographical location constraint for where your resilience policy data can be stored.

" } }, "tier": { @@ -10511,7 +11009,7 @@ "policy": { "target": "com.amazonaws.resiliencehub#DisruptionPolicy", "traits": { - "smithy.api#documentation": "

The type of resiliency policy to be created, including the recovery time objective (RTO)\n and recovery point objective (RPO) in seconds.

" + "smithy.api#documentation": "

Resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds.

" } } } @@ -10522,7 +11020,7 @@ "policy": { "target": "com.amazonaws.resiliencehub#ResiliencyPolicy", "traits": { - "smithy.api#documentation": "

The type of resiliency policy that was updated, including the recovery time objective\n (RTO) and recovery point objective (RPO) in seconds.

", + "smithy.api#documentation": "

The resiliency policy that was updated, including the recovery time objective\n (RTO) and recovery point objective (RPO) in seconds.

", "smithy.api#required": {} } } diff --git a/codegen/sdk-codegen/aws-models/s3.json b/codegen/sdk-codegen/aws-models/s3.json index d1ebf84cfb9..dbd1d52d435 100644 --- a/codegen/sdk-codegen/aws-models/s3.json +++ b/codegen/sdk-codegen/aws-models/s3.json @@ -60,7 +60,7 @@ } ], "traits": { - "smithy.api#documentation": "

This operation aborts a multipart upload. After a multipart upload is aborted, no\n additional parts can be uploaded using that upload ID. The storage consumed by any\n previously uploaded parts will be freed. However, if any part uploads are currently in\n progress, those part uploads might or might not succeed. As a result, it might be necessary\n to abort a given multipart upload multiple times in order to completely free all storage\n consumed by all parts.

\n

To verify that all parts have been removed and prevent getting charged for the part\n storage, you should call the ListParts API operation and ensure that\n the parts list is empty.

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information about permissions required to use the multipart upload, see Multipart Upload\n and Permissions in the Amazon S3\n User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to AbortMultipartUpload:

\n ", + "smithy.api#documentation": "

This operation aborts a multipart upload. After a multipart upload is aborted, no\n additional parts can be uploaded using that upload ID. The storage consumed by any\n previously uploaded parts will be freed. However, if any part uploads are currently in\n progress, those part uploads might or might not succeed. As a result, it might be necessary\n to abort a given multipart upload multiple times in order to completely free all storage\n consumed by all parts.

\n

To verify that all parts have been removed and prevent getting charged for the part\n storage, you should call the ListParts API operation and ensure\n that the parts list is empty.

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For\n information about permissions required to use the multipart upload, see\n Multipart Upload and\n Permissions in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to AbortMultipartUpload:

\n ", "smithy.api#examples": [ { "title": "To abort a multipart upload", @@ -100,7 +100,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The bucket name to which the upload was taking place.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The bucket name to which the upload was taking place.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -139,6 +139,13 @@ "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } + }, + "IfMatchInitiatedTime": { + "target": "com.amazonaws.s3#IfMatchInitiatedTime", + "traits": { + "smithy.api#documentation": "

If present, this header aborts an in progress multipart upload only if it was initiated on the provided timestamp.\n If the initiated timestamp of the multipart upload does not match the provided value, the operation returns a 412 Precondition Failed error. \n If the initiated timestamp matches or if the multipart upload doesn’t exist, the operation returns a 204 Success (No Content) response. \n

\n \n

This functionality is only supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-if-match-initiated-time" + } } }, "traits": { @@ -17665,12 +17672,12 @@ "BucketRegion": { "target": "com.amazonaws.s3#BucketRegion", "traits": { - "smithy.api#documentation": "

\n BucketRegion indicates the Amazon Web Services region where the bucket is located. If the request contains at least one valid parameter, it is included in the response.

" + "smithy.api#documentation": "

\n BucketRegion indicates the Amazon Web Services region where the bucket is located. If the\n request contains at least one valid parameter, it is included in the response.

" } } }, "traits": { - "smithy.api#documentation": "

In terms of implementation, a Bucket is a resource.

" + "smithy.api#documentation": "

In terms of implementation, a Bucket is a resource.

" } }, "com.amazonaws.s3#BucketAccelerateStatus": { @@ -17754,7 +17761,7 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies the information about the bucket that will be created. For more information about directory buckets, see \n Directory buckets in the Amazon S3 User Guide.

\n \n

This functionality is only supported by directory buckets.

\n
" + "smithy.api#documentation": "

Specifies the information about the bucket that will be created. For more information\n about directory buckets, see Directory buckets in the Amazon S3 User Guide.

\n \n

This functionality is only supported by directory buckets.

\n
" } }, "com.amazonaws.s3#BucketKeyEnabled": { @@ -18335,7 +18342,7 @@ "target": "com.amazonaws.s3#CompleteMultipartUploadOutput" }, "traits": { - "smithy.api#documentation": "

Completes a multipart upload by assembling previously uploaded parts.

\n

You first initiate the multipart upload and then upload all parts using the UploadPart\n operation or the UploadPartCopy\n operation. After successfully uploading all relevant parts of an upload, you call this\n CompleteMultipartUpload operation to complete the upload. Upon receiving this request, Amazon S3 concatenates all the parts\n in ascending order by part number to create a new object. In the CompleteMultipartUpload \n request, you must provide the parts list and ensure that the parts list is complete.\n The CompleteMultipartUpload API operation concatenates the parts that you provide in the list. For each part in the list,\n you must provide the PartNumber value and the ETag value that are returned after that part\n was uploaded.

\n

The processing of a CompleteMultipartUpload request could take several minutes to\n finalize. After Amazon S3 begins processing the request, it sends an HTTP response header that\n specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white\n space characters to keep the connection from timing out. A request could fail after the\n initial 200 OK response has been sent. This means that a 200 OK response can\n contain either a success or an error. The error response might be embedded in the 200 OK response. \n If you call this API operation directly, make sure to design\n your application to parse the contents of the response and handle it appropriately. If you\n use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the embedded error and apply\n error handling per your configuration settings (including automatically retrying the\n request as appropriate). If the condition persists, the SDKs throw an exception (or, for\n the SDKs that don't use exceptions, they return an error).

\n

Note that if CompleteMultipartUpload fails, applications should be prepared\n to retry any failed requests (including 500 error responses). For more information, see Amazon S3 Error Best\n Practices.

\n \n

You can't use Content-Type: application/x-www-form-urlencoded for the \n CompleteMultipartUpload requests. Also, if you don't provide a\n Content-Type header, CompleteMultipartUpload can still return a 200\n OK response.

\n
\n

For more information about multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3\n User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For\n information about permissions required to use the multipart upload API, see\n Multipart Upload and\n Permissions in the Amazon S3 User Guide.

    \n

    If you provide an additional checksum\n value in your MultipartUpload requests and the\n object is encrypted with Key Management Service, you must have permission to use the\n kms:Decrypt action for the\n CompleteMultipartUpload request to succeed.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with\n SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key.

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: EntityTooSmall\n

    \n
      \n
    • \n

      Description: Your proposed upload is smaller than the minimum allowed object\n size. Each part must be at least 5 MB in size, except the last part.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidPart\n

    \n
      \n
    • \n

      Description: One or more of the specified parts could not be found. The part\n might not have been uploaded, or the specified ETag might not have\n matched the uploaded part's ETag.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidPartOrder\n

    \n
      \n
    • \n

      Description: The list of parts was not in ascending order. The parts list\n must be specified in order by part number.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The upload ID\n might be invalid, or the multipart upload might have been aborted or\n completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to CompleteMultipartUpload:

\n ", + "smithy.api#documentation": "

Completes a multipart upload by assembling previously uploaded parts.

\n

You first initiate the multipart upload and then upload all parts using the UploadPart\n operation or the UploadPartCopy operation.\n After successfully uploading all relevant parts of an upload, you call this\n CompleteMultipartUpload operation to complete the upload. Upon receiving\n this request, Amazon S3 concatenates all the parts in ascending order by part number to create a\n new object. In the CompleteMultipartUpload request, you must provide the parts list and\n ensure that the parts list is complete. The CompleteMultipartUpload API operation\n concatenates the parts that you provide in the list. For each part in the list, you must\n provide the PartNumber value and the ETag value that are returned\n after that part was uploaded.

\n

The processing of a CompleteMultipartUpload request could take several minutes to\n finalize. After Amazon S3 begins processing the request, it sends an HTTP response header that\n specifies a 200 OK response. While processing is in progress, Amazon S3\n periodically sends white space characters to keep the connection from timing out. A request\n could fail after the initial 200 OK response has been sent. This means that a\n 200 OK response can contain either a success or an error. The error\n response might be embedded in the 200 OK response. If you call this API\n operation directly, make sure to design your application to parse the contents of the\n response and handle it appropriately. If you use Amazon Web Services SDKs, SDKs handle this condition.\n The SDKs detect the embedded error and apply error handling per your configuration settings\n (including automatically retrying the request as appropriate). If the condition persists,\n the SDKs throw an exception (or, for the SDKs that don't use exceptions, they return an\n error).

\n

Note that if CompleteMultipartUpload fails, applications should be prepared\n to retry any failed requests (including 500 error responses). For more information, see\n Amazon S3 Error\n Best Practices.

\n \n

You can't use Content-Type: application/x-www-form-urlencoded for the\n CompleteMultipartUpload requests. Also, if you don't provide a Content-Type\n header, CompleteMultipartUpload can still return a 200 OK\n response.

\n
\n

For more information about multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3 User Guide.

\n \n

\n Directory buckets -\n For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For\n information about permissions required to use the multipart upload API, see\n Multipart Upload and\n Permissions in the Amazon S3 User Guide.

    \n

    If you provide an additional checksum\n value in your MultipartUpload requests and the\n object is encrypted with Key Management Service, you must have permission to use the\n kms:Decrypt action for the\n CompleteMultipartUpload request to succeed.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions\n in IAM identity-based policies and KMS key policies for the KMS\n key.

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: EntityTooSmall\n

    \n
      \n
    • \n

      Description: Your proposed upload is smaller than the minimum\n allowed object size. Each part must be at least 5 MB in size, except\n the last part.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidPart\n

    \n
      \n
    • \n

      Description: One or more of the specified parts could not be found.\n The part might not have been uploaded, or the specified ETag might not\n have matched the uploaded part's ETag.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidPartOrder\n

    \n
      \n
    • \n

      Description: The list of parts was not in ascending order. The\n parts list must be specified in order by part number.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The\n upload ID might be invalid, or the multipart upload might have been\n aborted or completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to CompleteMultipartUpload:

\n ", "smithy.api#examples": [ { "title": "To complete multipart upload", @@ -18476,7 +18483,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

Name of the bucket to which the multipart upload was initiated.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

Name of the bucket to which the multipart upload was initiated.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -18555,14 +18562,14 @@ "IfNoneMatch": { "target": "com.amazonaws.s3#IfNoneMatch", "traits": { - "smithy.api#documentation": "

Uploads the object only if the object key name does not already exist in the bucket specified. Otherwise, Amazon S3 returns a 412 Precondition Failed error.

\n

If a conflicting operation occurs during the upload S3 returns a 409 ConditionalRequestConflict response. On a 409 failure you should re-initiate the multipart upload with CreateMultipartUpload and re-upload each part.

\n

Expects the '*' (asterisk) character.

\n

For more information about conditional requests, see RFC 7232, or Conditional requests in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

Uploads the object only if the object key name does not already exist in the bucket\n specified. Otherwise, Amazon S3 returns a 412 Precondition Failed error.

\n

If a conflicting operation occurs during the upload S3 returns a 409\n ConditionalRequestConflict response. On a 409 failure you should re-initiate the\n multipart upload with CreateMultipartUpload and re-upload each part.

\n

Expects the '*' (asterisk) character.

\n

For more information about conditional requests, see RFC 7232, or Conditional requests in the Amazon S3 User Guide.

", "smithy.api#httpHeader": "If-None-Match" } }, "SSECustomerAlgorithm": { "target": "com.amazonaws.s3#SSECustomerAlgorithm", "traits": { - "smithy.api#documentation": "

The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is\n required only when the object was created using a checksum algorithm or if\n your bucket policy requires the use of SSE-C. For more information, see Protecting data\n using SSE-C keys in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is\n required only when the object was created using a checksum algorithm or if your bucket\n policy requires the use of SSE-C. For more information, see Protecting data using SSE-C keys in the Amazon S3 User\n Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" } }, @@ -18637,7 +18644,7 @@ "PartNumber": { "target": "com.amazonaws.s3#PartNumber", "traits": { - "smithy.api#documentation": "

Part number that identifies the part. This is a positive integer between 1 and\n 10,000.

\n \n \n " + "smithy.api#documentation": "

Part number that identifies the part. This is a positive integer between 1 and\n 10,000.

\n \n \n " } } }, @@ -18739,7 +18746,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a copy of an object that is already stored in Amazon S3.

\n \n

You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your\n object up to 5 GB in size in a single atomic action using this API. However, to copy an\n object greater than 5 GB, you must use the multipart upload Upload Part - Copy\n (UploadPartCopy) API. For more information, see Copy Object Using the\n REST Multipart Upload API.

\n
\n

You can copy individual objects between general purpose buckets, between directory buckets, and \n between general purpose buckets and directory buckets.

\n \n \n \n

Both the\n Region that you want to copy the object from and the Region that you want to copy the\n object to must be enabled for your account. For more information about how to enable a Region for your account, see Enable \n or disable a Region for standalone accounts in the\n Amazon Web Services Account Management Guide.

\n \n

Amazon S3 transfer acceleration does not support cross-Region copies. If you request a\n cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad\n Request error. For more information, see Transfer\n Acceleration.

\n
\n
\n
Authentication and authorization
\n
\n

All CopyObject requests must be authenticated and signed by using IAM credentials (access key ID and secret access key for the IAM identities). All headers with the x-amz- prefix, including\n x-amz-copy-source, must be signed. For more information, see REST Authentication.

\n

\n Directory buckets - You must use the IAM credentials to authenticate and authorize your access to the CopyObject API operation, instead of using the \n temporary security credentials through the CreateSession API operation.

\n

Amazon Web Services CLI or SDKs handles authentication and authorization on your behalf.

\n
\n
Permissions
\n
\n

You must have\n read access to the source object and write\n access to the destination bucket.

\n
    \n
  • \n

    \n General purpose bucket permissions -\n You must have permissions in an IAM policy based on the source and destination\n bucket types in a CopyObject operation.

    \n
      \n
    • \n

      If the source object is in a general purpose bucket, you must have\n \n s3:GetObject\n \n permission to read the source object that is being copied.

      \n
    • \n
    • \n

      If the destination bucket is a general purpose bucket, you must have\n \n s3:PutObject\n \n permission to write the object copy to the destination bucket.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions -\n You must have permissions in a bucket policy or an IAM identity-based policy based on the source and destination\n bucket types in a CopyObject operation.

    \n
      \n
    • \n

      If the source object that you want to copy is in a\n directory bucket, you must have the \n s3express:CreateSession\n permission in\n the Action element of a policy to read the object. By default, the session is in the ReadWrite mode. If you want to restrict the access, you can explicitly set the s3express:SessionMode condition key to ReadOnly on the copy source bucket.

      \n
    • \n
    • \n

      If the copy destination is a directory bucket, you must have the \n s3express:CreateSession\n permission in the\n Action element of a policy to write the object\n to the destination. The s3express:SessionMode condition\n key can't be set to ReadOnly on the copy destination bucket.

      \n
    • \n
    \n

    If the object is encrypted with\n SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key.

    \n

    For example policies, see Example bucket policies for S3 Express One Zone and Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
Response and special errors
\n
\n

When the request is an HTTP 1.1 request, the response is chunk encoded. When\n the request is not an HTTP 1.1 request, the response would not contain the\n Content-Length. You always need to read the entire response body\n to check if the copy succeeds.

\n
    \n
  • \n

    If the copy is successful, you receive a response with information about the copied\n object.

    \n
  • \n
  • \n

    A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3\n is copying the files. A 200 OK response can contain either a success or an error.

    \n
      \n
    • \n

      If the error occurs before the copy action starts, you receive a\n standard Amazon S3 error.

      \n
    • \n
    • \n

      If the error occurs during the copy operation, the error response is\n embedded in the 200 OK response. For example, in a cross-region copy, you \n may encounter throttling and receive a 200 OK response. \n For more information, see Resolve \n the Error 200 response when copying objects to Amazon S3. \n The 200 OK status code means the copy was accepted, but \n it doesn't mean the copy is complete. Another example is \n when you disconnect from Amazon S3 before the copy is complete, Amazon S3 might cancel the copy and you may receive a 200 OK response. \n You must stay connected to Amazon S3 until the entire response is successfully received and processed.

      \n

      If you call this API operation directly, make\n sure to design your application to parse the content of the response and handle it\n appropriately. If you use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the\n embedded error and apply error handling per your configuration settings (including\n automatically retrying the request as appropriate). If the condition persists, the SDKs\n throw an exception (or, for the SDKs that don't use exceptions, they return an \n error).

      \n
    • \n
    \n
  • \n
\n
\n
Charge
\n
\n

The copy request charge is based on the storage class and Region that you specify for\n the destination object. The request can also result in a data retrieval charge for the\n source if the source storage class bills for data retrieval. If the copy source is in a different region, the data transfer is billed to the copy source account. For pricing information, see\n Amazon S3 pricing.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to CopyObject:

\n ", + "smithy.api#documentation": "

Creates a copy of an object that is already stored in Amazon S3.

\n \n

You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your\n object up to 5 GB in size in a single atomic action using this API. However, to copy an\n object greater than 5 GB, you must use the multipart upload Upload Part - Copy\n (UploadPartCopy) API. For more information, see Copy Object Using the\n REST Multipart Upload API.

\n
\n

You can copy individual objects between general purpose buckets, between directory buckets,\n and between general purpose buckets and directory buckets.

\n \n \n \n

Both the Region that you want to copy the object from and the Region that you want to\n copy the object to must be enabled for your account. For more information about how to\n enable a Region for your account, see Enable or disable a Region for standalone accounts in the Amazon Web Services\n Account Management Guide.

\n \n

Amazon S3 transfer acceleration does not support cross-Region copies. If you request a\n cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad\n Request error. For more information, see Transfer\n Acceleration.

\n
\n
\n
Authentication and authorization
\n
\n

All CopyObject requests must be authenticated and signed by using\n IAM credentials (access key ID and secret access key for the IAM identities).\n All headers with the x-amz- prefix, including\n x-amz-copy-source, must be signed. For more information, see\n REST Authentication.

\n

\n Directory buckets - You must use the\n IAM credentials to authenticate and authorize your access to the\n CopyObject API operation, instead of using the temporary security\n credentials through the CreateSession API operation.

\n

Amazon Web Services CLI or SDKs handles authentication and authorization on your\n behalf.

\n
\n
Permissions
\n
\n

You must have read access to the source object and\n write access to the destination bucket.

\n
    \n
  • \n

    \n General purpose bucket permissions - You\n must have permissions in an IAM policy based on the source and destination\n bucket types in a CopyObject operation.

    \n
      \n
    • \n

      If the source object is in a general purpose bucket, you must have\n \n s3:GetObject\n \n permission to read the source object that is being copied.

      \n
    • \n
    • \n

      If the destination bucket is a general purpose bucket, you must have\n \n s3:PutObject\n \n permission to write the object copy to the destination bucket.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions -\n You must have permissions in a bucket policy or an IAM identity-based policy based on the\n source and destination bucket types in a CopyObject\n operation.

    \n
      \n
    • \n

      If the source object that you want to copy is in a\n directory bucket, you must have the \n s3express:CreateSession\n permission in\n the Action element of a policy to read the object. By\n default, the session is in the ReadWrite mode. If you\n want to restrict the access, you can explicitly set the\n s3express:SessionMode condition key to\n ReadOnly on the copy source bucket.

      \n
    • \n
    • \n

      If the copy destination is a directory bucket, you must have the\n \n s3express:CreateSession\n permission in the\n Action element of a policy to write the object to the\n destination. The s3express:SessionMode condition key\n can't be set to ReadOnly on the copy destination bucket.\n

      \n
    • \n
    \n

    If the object is encrypted with SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions\n in IAM identity-based policies and KMS key policies for the KMS\n key.

    \n

    For example policies, see Example bucket policies for S3 Express One Zone and Amazon Web Services Identity and Access Management (IAM) identity-based policies for\n S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
Response and special errors
\n
\n

When the request is an HTTP 1.1 request, the response is chunk encoded. When\n the request is not an HTTP 1.1 request, the response would not contain the\n Content-Length. You always need to read the entire response body\n to check if the copy succeeds.

\n
    \n
  • \n

    If the copy is successful, you receive a response with information about\n the copied object.

    \n
  • \n
  • \n

    A copy request might return an error when Amazon S3 receives the copy request\n or while Amazon S3 is copying the files. A 200 OK response can\n contain either a success or an error.

    \n
      \n
    • \n

      If the error occurs before the copy action starts, you receive a\n standard Amazon S3 error.

      \n
    • \n
    • \n

      If the error occurs during the copy operation, the error response\n is embedded in the 200 OK response. For example, in a\n cross-region copy, you may encounter throttling and receive a\n 200 OK response. For more information, see Resolve the Error 200 response when copying objects to\n Amazon S3. The 200 OK status code means the copy\n was accepted, but it doesn't mean the copy is complete. Another\n example is when you disconnect from Amazon S3 before the copy is complete,\n Amazon S3 might cancel the copy and you may receive a 200 OK\n response. You must stay connected to Amazon S3 until the entire response is\n successfully received and processed.

      \n

      If you call this API operation directly, make sure to design your\n application to parse the content of the response and handle it\n appropriately. If you use Amazon Web Services SDKs, SDKs handle this condition. The\n SDKs detect the embedded error and apply error handling per your\n configuration settings (including automatically retrying the request\n as appropriate). If the condition persists, the SDKs throw an\n exception (or, for the SDKs that don't use exceptions, they return an\n error).

      \n
    • \n
    \n
  • \n
\n
\n
Charge
\n
\n

The copy request charge is based on the storage class and Region that you\n specify for the destination object. The request can also result in a data\n retrieval charge for the source if the source storage class bills for data\n retrieval. If the copy source is in a different region, the data transfer is\n billed to the copy source account. For pricing information, see Amazon S3 pricing.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to CopyObject:

\n ", "smithy.api#examples": [ { "title": "To copy an object", @@ -18803,7 +18810,7 @@ "ServerSideEncryption": { "target": "com.amazonaws.s3#ServerSideEncryption", "traits": { - "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example,\n AES256, aws:kms, aws:kms:dsse).

", + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for\n example, AES256, aws:kms, aws:kms:dsse).

", "smithy.api#httpHeader": "x-amz-server-side-encryption" } }, @@ -18817,7 +18824,7 @@ "SSECustomerKeyMD5": { "target": "com.amazonaws.s3#SSECustomerKeyMD5", "traits": { - "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification of\n the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification\n of the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" } }, @@ -18859,14 +18866,14 @@ "ACL": { "target": "com.amazonaws.s3#ObjectCannedACL", "traits": { - "smithy.api#documentation": "

The canned access control list (ACL) to apply to the object.

\n

When you copy an object, the ACL metadata is not preserved and is set\n to private by default. Only the owner has full access\n control. To override the default ACL setting,\n specify a new ACL when you generate a copy request. For more information, see Using\n ACLs.

\n

If the destination bucket that you're copying objects to uses the bucket owner enforced\n setting for S3 Object Ownership, ACLs are disabled and no longer affect\n permissions. Buckets that use this setting only accept PUT requests\n that don't specify an ACL or PUT requests that specify bucket owner\n full control ACLs, such as the bucket-owner-full-control canned ACL\n or an equivalent form of this ACL expressed in the XML format. For more information, see Controlling\n ownership of objects and disabling ACLs in the\n Amazon S3 User Guide.

\n \n \n ", + "smithy.api#documentation": "

The canned access control list (ACL) to apply to the object.

\n

When you copy an object, the ACL metadata is not preserved and is set to\n private by default. Only the owner has full access control. To override the\n default ACL setting, specify a new ACL when you generate a copy request. For more\n information, see Using ACLs.

\n

If the destination bucket that you're copying objects to uses the bucket owner enforced\n setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions.\n Buckets that use this setting only accept PUT requests that don't specify an\n ACL or PUT requests that specify bucket owner full control ACLs, such as the\n bucket-owner-full-control canned ACL or an equivalent form of this ACL\n expressed in the XML format. For more information, see Controlling ownership of\n objects and disabling ACLs in the Amazon S3 User Guide.

\n \n \n ", "smithy.api#httpHeader": "x-amz-acl" } }, "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The name of the destination bucket.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The name of the destination bucket.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -18884,14 +18891,14 @@ "ChecksumAlgorithm": { "target": "com.amazonaws.s3#ChecksumAlgorithm", "traits": { - "smithy.api#documentation": "

Indicates the algorithm that you want Amazon S3 to use to create the checksum for the object. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

\n

When you copy an object, if the source object has a checksum, that checksum value will be copied to\n the new object by default. If the CopyObject request does not include this x-amz-checksum-algorithm header, the checksum algorithm will be copied from the source object to the destination object (if it's present on the source object). You can optionally\n specify a different checksum algorithm to use with the\n x-amz-checksum-algorithm header. Unrecognized or unsupported values will respond with the HTTP status code 400 Bad Request.

\n \n

For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance.

\n
", + "smithy.api#documentation": "

Indicates the algorithm that you want Amazon S3 to use to create the checksum for the object. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

\n

When you copy an object, if the source object has a checksum, that checksum value will\n be copied to the new object by default. If the CopyObject request does not\n include this x-amz-checksum-algorithm header, the checksum algorithm will be\n copied from the source object to the destination object (if it's present on the source\n object). You can optionally specify a different checksum algorithm to use with the\n x-amz-checksum-algorithm header. Unrecognized or unsupported values will\n respond with the HTTP status code 400 Bad Request.

\n \n

For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance.

\n
", "smithy.api#httpHeader": "x-amz-checksum-algorithm" } }, "ContentDisposition": { "target": "com.amazonaws.s3#ContentDisposition", "traits": { - "smithy.api#documentation": "

Specifies presentational information for the object. Indicates whether an object should be displayed in a web browser or downloaded as a file. It allows specifying the desired filename for the downloaded file.

", + "smithy.api#documentation": "

Specifies presentational information for the object. Indicates whether an object should\n be displayed in a web browser or downloaded as a file. It allows specifying the desired\n filename for the downloaded file.

", "smithy.api#httpHeader": "Content-Disposition" } }, @@ -18919,7 +18926,7 @@ "CopySource": { "target": "com.amazonaws.s3#CopySource", "traits": { - "smithy.api#documentation": "

Specifies the source object for the copy operation. The source object \n can be up to 5 GB. If the source object is an object that was uploaded by using a multipart upload, the object copy will be a single part object after the source object is copied to the destination bucket.

\n

You specify the value of the copy source in one of two\n formats, depending on whether you want to access the source object through an access point:

\n \n

If your source bucket versioning is enabled, the x-amz-copy-source header by default identifies the current\n version of an object to copy. If the current version is a delete marker, Amazon S3\n behaves as if the object was deleted. To copy a different version, use the\n versionId query parameter. Specifically, append ?versionId=\n to the value (for example,\n awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893).\n If you don't specify a version ID, Amazon S3 copies the latest version of the source\n object.

\n

If you enable versioning on the destination bucket, Amazon S3 generates a unique version\n ID for the copied object. This version ID is different from the version ID\n of the source object. Amazon S3 returns the version ID of the copied object in the\n x-amz-version-id response header in the response.

\n

If you do not enable versioning or suspend it on the destination bucket, the version\n ID that Amazon S3 generates in the\n x-amz-version-id response header is always null.

\n \n

\n Directory buckets - S3 Versioning isn't enabled and supported for directory buckets.

\n
", + "smithy.api#documentation": "

Specifies the source object for the copy operation. The source object can be up to 5 GB.\n If the source object is an object that was uploaded by using a multipart upload, the object\n copy will be a single part object after the source object is copied to the destination\n bucket.

\n

You specify the value of the copy source in one of two formats, depending on whether you\n want to access the source object through an access point:

\n \n

If your source bucket versioning is enabled, the x-amz-copy-source header\n by default identifies the current version of an object to copy. If the current version is a\n delete marker, Amazon S3 behaves as if the object was deleted. To copy a different version, use\n the versionId query parameter. Specifically, append\n ?versionId= to the value (for example,\n awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893).\n If you don't specify a version ID, Amazon S3 copies the latest version of the source\n object.

\n

If you enable versioning on the destination bucket, Amazon S3 generates a unique version ID\n for the copied object. This version ID is different from the version ID of the source\n object. Amazon S3 returns the version ID of the copied object in the\n x-amz-version-id response header in the response.

\n

If you do not enable versioning or suspend it on the destination bucket, the version ID\n that Amazon S3 generates in the x-amz-version-id response header is always\n null.

\n \n

\n Directory buckets -\n S3 Versioning isn't enabled and supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-copy-source", "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -18930,28 +18937,28 @@ "CopySourceIfMatch": { "target": "com.amazonaws.s3#CopySourceIfMatch", "traits": { - "smithy.api#documentation": "

Copies the object if its entity tag (ETag) matches the specified tag.

\n

If both the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the\n request and evaluate as follows, Amazon S3 returns 200 OK and copies the\n data:

\n ", + "smithy.api#documentation": "

Copies the object if its entity tag (ETag) matches the specified tag.

\n

If both the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the request\n and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

\n ", "smithy.api#httpHeader": "x-amz-copy-source-if-match" } }, "CopySourceIfModifiedSince": { "target": "com.amazonaws.s3#CopySourceIfModifiedSince", "traits": { - "smithy.api#documentation": "

Copies the object if it has been modified since the specified time.

\n

If both the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the\n request and evaluate as follows, Amazon S3 returns the 412 Precondition\n Failed response code:

\n ", + "smithy.api#documentation": "

Copies the object if it has been modified since the specified time.

\n

If both the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the request and\n evaluate as follows, Amazon S3 returns the 412 Precondition Failed response\n code:

\n ", "smithy.api#httpHeader": "x-amz-copy-source-if-modified-since" } }, "CopySourceIfNoneMatch": { "target": "com.amazonaws.s3#CopySourceIfNoneMatch", "traits": { - "smithy.api#documentation": "

Copies the object if its entity tag (ETag) is different than the specified ETag.

\n

If both the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the\n request and evaluate as follows, Amazon S3 returns the 412 Precondition\n Failed response code:

\n ", + "smithy.api#documentation": "

Copies the object if its entity tag (ETag) is different than the specified ETag.

\n

If both the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the request and\n evaluate as follows, Amazon S3 returns the 412 Precondition Failed response\n code:

\n ", "smithy.api#httpHeader": "x-amz-copy-source-if-none-match" } }, "CopySourceIfUnmodifiedSince": { "target": "com.amazonaws.s3#CopySourceIfUnmodifiedSince", "traits": { - "smithy.api#documentation": "

Copies the object if it hasn't been modified since the specified time.

\n

If both the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the\n request and evaluate as follows, Amazon S3 returns 200 OK and copies the\n data:

\n ", + "smithy.api#documentation": "

Copies the object if it hasn't been modified since the specified time.

\n

If both the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the request\n and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

\n ", "smithy.api#httpHeader": "x-amz-copy-source-if-unmodified-since" } }, @@ -19011,7 +19018,7 @@ "MetadataDirective": { "target": "com.amazonaws.s3#MetadataDirective", "traits": { - "smithy.api#documentation": "

Specifies whether the metadata is copied from the source object or replaced with\n metadata that's provided in the request. \n When copying an object, you can preserve all metadata (the default) or specify\n new metadata. If this header isn’t specified, COPY is the default behavior. \n

\n

\n General purpose bucket - For general purpose buckets, when you grant permissions, you\n can use the s3:x-amz-metadata-directive condition key to enforce\n certain metadata behavior when objects are uploaded. For more information, see\n Amazon S3 condition key examples in the Amazon S3 User Guide.

\n \n

\n x-amz-website-redirect-location is unique to each object and is not copied when using the\n x-amz-metadata-directive header. To copy the value, you \n must specify x-amz-website-redirect-location in the request header.

\n
", + "smithy.api#documentation": "

Specifies whether the metadata is copied from the source object or replaced with\n metadata that's provided in the request. When copying an object, you can preserve all\n metadata (the default) or specify new metadata. If this header isn’t specified,\n COPY is the default behavior.

\n

\n General purpose bucket - For general purpose buckets, when you\n grant permissions, you can use the s3:x-amz-metadata-directive condition key\n to enforce certain metadata behavior when objects are uploaded. For more information, see\n Amazon S3\n condition key examples in the Amazon S3 User Guide.

\n \n

\n x-amz-website-redirect-location is unique to each object and is not\n copied when using the x-amz-metadata-directive header. To copy the value,\n you must specify x-amz-website-redirect-location in the request\n header.

\n
", "smithy.api#httpHeader": "x-amz-metadata-directive" } }, @@ -19025,28 +19032,28 @@ "ServerSideEncryption": { "target": "com.amazonaws.s3#ServerSideEncryption", "traits": { - "smithy.api#documentation": "

The server-side encryption algorithm used when storing this object in Amazon S3. Unrecognized or unsupported values won’t write a destination object and will receive a 400 Bad Request response.

\n

Amazon S3 automatically encrypts all new objects that are copied to an S3 bucket.\n When copying an object, if you don't specify encryption information in your copy\n request, the encryption setting of the target object is set to the default\n encryption configuration of the destination bucket. By default, all buckets have a\n base level of encryption configuration that uses server-side encryption with Amazon S3\n managed keys (SSE-S3). If the destination bucket has a different default encryption\n configuration, Amazon S3 uses\n the corresponding encryption key to encrypt the target\n object copy.

\n

With server-side\n encryption, Amazon S3 encrypts your data as it writes your data to disks in its data\n centers and decrypts the data when you access it. For more information about server-side encryption, see Using\n Server-Side Encryption in the\n Amazon S3 User Guide.

\n

\n General purpose buckets \n

\n \n

\n Directory buckets \n

\n ", + "smithy.api#documentation": "

The server-side encryption algorithm used when storing this object in Amazon S3. Unrecognized\n or unsupported values won’t write a destination object and will receive a 400 Bad\n Request response.

\n

Amazon S3 automatically encrypts all new objects that are copied to an S3 bucket. When\n copying an object, if you don't specify encryption information in your copy request, the\n encryption setting of the target object is set to the default encryption configuration of\n the destination bucket. By default, all buckets have a base level of encryption\n configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the\n destination bucket has a different default encryption configuration, Amazon S3 uses the\n corresponding encryption key to encrypt the target object copy.

\n

With server-side encryption, Amazon S3 encrypts your data as it writes your data to disks in\n its data centers and decrypts the data when you access it. For more information about\n server-side encryption, see Using Server-Side Encryption\n in the Amazon S3 User Guide.

\n

\n General purpose buckets \n

\n \n

\n Directory buckets \n

\n ", "smithy.api#httpHeader": "x-amz-server-side-encryption" } }, "StorageClass": { "target": "com.amazonaws.s3#StorageClass", "traits": { - "smithy.api#documentation": "

If the x-amz-storage-class header is not used, the copied object will be stored in the\n STANDARD Storage Class by default. The STANDARD storage class provides high durability and\n high availability. Depending on performance needs, you can specify a different Storage\n Class.\n

\n \n \n \n

You can use the CopyObject action to change the storage class of\n an object that is already stored in Amazon S3 by using the x-amz-storage-class \n header. For more information, see Storage Classes in\n the Amazon S3 User Guide.

\n

Before using an object as a source object for the copy operation, you must restore a copy of it if it meets any of the following conditions:

\n \n

For more\n information, see RestoreObject and Copying\n Objects in\n the Amazon S3 User Guide.

", + "smithy.api#documentation": "

If the x-amz-storage-class header is not used, the copied object will be\n stored in the STANDARD Storage Class by default. The STANDARD\n storage class provides high durability and high availability. Depending on performance\n needs, you can specify a different Storage Class.

\n \n \n \n

You can use the CopyObject action to change the storage class of an object\n that is already stored in Amazon S3 by using the x-amz-storage-class header. For\n more information, see Storage Classes in the\n Amazon S3 User Guide.

\n

Before using an object as a source object for the copy operation, you must restore a\n copy of it if it meets any of the following conditions:

\n \n

For more information, see RestoreObject and Copying\n Objects in the Amazon S3 User Guide.

", "smithy.api#httpHeader": "x-amz-storage-class" } }, "WebsiteRedirectLocation": { "target": "com.amazonaws.s3#WebsiteRedirectLocation", "traits": { - "smithy.api#documentation": "

If the destination bucket is configured as a website, redirects requests for this object copy to another\n object in the same bucket or to an external URL. Amazon S3 stores the value of this header in\n the object metadata. This value is unique to each object and is not copied when using the\n x-amz-metadata-directive header. Instead, you may opt to provide this\n header in combination with the x-amz-metadata-directive header.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If the destination bucket is configured as a website, redirects requests for this object\n copy to another object in the same bucket or to an external URL. Amazon S3 stores the value of\n this header in the object metadata. This value is unique to each object and is not copied\n when using the x-amz-metadata-directive header. Instead, you may opt to\n provide this header in combination with the x-amz-metadata-directive\n header.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-website-redirect-location" } }, "SSECustomerAlgorithm": { "target": "com.amazonaws.s3#SSECustomerAlgorithm", "traits": { - "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example,\n AES256).

\n

When you perform a CopyObject operation, if you want to use a\n different type of encryption setting for the target object, you can specify \n appropriate encryption-related headers to encrypt the target object with an Amazon S3 managed key, a\n KMS key, or a customer-provided key. If the encryption setting in\n your request is different from the default encryption configuration of the\n destination bucket, the encryption setting in your request takes precedence.

\n \n

This functionality is not supported when the destination bucket is a directory bucket.

\n
", + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example,\n AES256).

\n

When you perform a CopyObject operation, if you want to use a different\n type of encryption setting for the target object, you can specify appropriate\n encryption-related headers to encrypt the target object with an Amazon S3 managed key, a\n KMS key, or a customer-provided key. If the encryption setting in your request is\n different from the default encryption configuration of the destination bucket, the\n encryption setting in your request takes precedence.

\n \n

This functionality is not supported when the destination bucket is a directory bucket.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" } }, @@ -19067,42 +19074,42 @@ "SSEKMSKeyId": { "target": "com.amazonaws.s3#SSEKMSKeyId", "traits": { - "smithy.api#documentation": "

Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. All GET and PUT requests for an\n object protected by KMS will fail if they're not made via SSL or using SigV4. For\n information about configuring any of the officially supported Amazon Web Services SDKs and Amazon Web Services CLI, see\n Specifying the\n Signature Version in Request Authentication in the\n Amazon S3 User Guide.

\n

\n Directory buckets - If you specify x-amz-server-side-encryption with aws:kms, the \n x-amz-server-side-encryption-aws-kms-key-id header is implicitly assigned the ID of the KMS \n symmetric encryption customer managed key that's configured for your directory bucket's default encryption setting. \n If you want to specify the \n x-amz-server-side-encryption-aws-kms-key-id header explicitly, you can only specify it with the ID (Key ID or Key ARN) of the KMS \n customer managed key that's configured for your directory bucket's default encryption setting. Otherwise, you get an HTTP 400 Bad Request error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Your SSE-KMS configuration can only support 1 customer managed key per directory bucket for the lifetime of the bucket. \nThe Amazon Web Services managed key (aws/s3) isn't supported. \n

", + "smithy.api#documentation": "

Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption.\n All GET and PUT requests for an object protected by KMS will fail if they're not made via\n SSL or using SigV4. For information about configuring any of the officially supported Amazon Web Services\n SDKs and Amazon Web Services CLI, see Specifying the\n Signature Version in Request Authentication in the\n Amazon S3 User Guide.

\n

\n Directory buckets -\n If you specify x-amz-server-side-encryption with aws:kms, the \n x-amz-server-side-encryption-aws-kms-key-id header is implicitly assigned the ID of the KMS \n symmetric encryption customer managed key that's configured for your directory bucket's default encryption setting. \n If you want to specify the \n x-amz-server-side-encryption-aws-kms-key-id header explicitly, you can only specify it with the ID (Key ID or Key ARN) of the KMS \n customer managed key that's configured for your directory bucket's default encryption setting. Otherwise, you get an HTTP 400 Bad Request error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Your SSE-KMS configuration can only support 1 customer managed key per directory bucket for the lifetime of the bucket. \nThe Amazon Web Services managed key (aws/s3) isn't supported. \n

", "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" } }, "SSEKMSEncryptionContext": { "target": "com.amazonaws.s3#SSEKMSEncryptionContext", "traits": { - "smithy.api#documentation": "

Specifies the Amazon Web Services KMS Encryption Context as an additional encryption context to use for the destination object encryption. The value of\n this header is a base64-encoded UTF-8 string holding JSON with the encryption context\n key-value pairs.

\n

\n General purpose buckets - This value must be explicitly added to specify encryption context for \n CopyObject requests if you want an additional encryption context for your destination object. The additional encryption context of the source object won't be copied to the destination object. For more information, see Encryption context in the Amazon S3 User Guide.

\n

\n Directory buckets - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.

", + "smithy.api#documentation": "

Specifies the Amazon Web Services KMS Encryption Context as an additional encryption context to use\n for the destination object encryption. The value of this header is a base64-encoded UTF-8\n string holding JSON with the encryption context key-value pairs.

\n

\n General purpose buckets - This value must be explicitly\n added to specify encryption context for CopyObject requests if you want an\n additional encryption context for your destination object. The additional encryption\n context of the source object won't be copied to the destination object. For more\n information, see Encryption\n context in the Amazon S3 User Guide.

\n

\n Directory buckets - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.

", "smithy.api#httpHeader": "x-amz-server-side-encryption-context" } }, "BucketKeyEnabled": { "target": "com.amazonaws.s3#BucketKeyEnabled", "traits": { - "smithy.api#documentation": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with\n server-side encryption using Key Management Service (KMS) keys (SSE-KMS). If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the\n object.

\n

Setting this header to\n true causes Amazon S3 to use an S3 Bucket Key for object encryption with\n SSE-KMS. Specifying this header with a COPY action doesn’t affect bucket-level settings for S3\n Bucket Key.

\n

For more information, see Amazon S3 Bucket Keys in the\n Amazon S3 User Guide.

\n \n

\n Directory buckets - S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through CopyObject. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

\n
", + "smithy.api#documentation": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with\n server-side encryption using Key Management Service (KMS) keys (SSE-KMS). If a target object uses\n SSE-KMS, you can enable an S3 Bucket Key for the object.

\n

Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object\n encryption with SSE-KMS. Specifying this header with a COPY action doesn’t affect\n bucket-level settings for S3 Bucket Key.

\n

For more information, see Amazon S3 Bucket Keys in the\n Amazon S3 User Guide.

\n \n

\n Directory buckets -\n S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through CopyObject. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" } }, "CopySourceSSECustomerAlgorithm": { "target": "com.amazonaws.s3#CopySourceSSECustomerAlgorithm", "traits": { - "smithy.api#documentation": "

Specifies the algorithm to use when decrypting the source object (for example,\n AES256).

\n

If\n the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the\n necessary encryption information in your request so that Amazon S3 can decrypt the\n object for copying.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#documentation": "

Specifies the algorithm to use when decrypting the source object (for example,\n AES256).

\n

If the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the\n necessary encryption information in your request so that Amazon S3 can decrypt the object for\n copying.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", "smithy.api#httpHeader": "x-amz-copy-source-server-side-encryption-customer-algorithm" } }, "CopySourceSSECustomerKey": { "target": "com.amazonaws.s3#CopySourceSSECustomerKey", "traits": { - "smithy.api#documentation": "

Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source\n object. The encryption key provided in this header must be the same one that was used when the\n source object was created.

\n

If\n the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the\n necessary encryption information in your request so that Amazon S3 can decrypt the\n object for copying.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#documentation": "

Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source\n object. The encryption key provided in this header must be the same one that was used when\n the source object was created.

\n

If the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the\n necessary encryption information in your request so that Amazon S3 can decrypt the object for\n copying.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", "smithy.api#httpHeader": "x-amz-copy-source-server-side-encryption-customer-key" } }, "CopySourceSSECustomerKeyMD5": { "target": "com.amazonaws.s3#CopySourceSSECustomerKeyMD5", "traits": { - "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses\n this header for a message integrity check to ensure that the encryption key was transmitted\n without error.

\n

If\n the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the\n necessary encryption information in your request so that Amazon S3 can decrypt the\n object for copying.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses\n this header for a message integrity check to ensure that the encryption key was transmitted\n without error.

\n

If the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the\n necessary encryption information in your request so that Amazon S3 can decrypt the object for\n copying.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", "smithy.api#httpHeader": "x-amz-copy-source-server-side-encryption-customer-key-MD5" } }, @@ -19115,7 +19122,7 @@ "Tagging": { "target": "com.amazonaws.s3#TaggingHeader", "traits": { - "smithy.api#documentation": "

The tag-set for the object copy in the destination bucket. This value must be used in conjunction\n with the x-amz-tagging-directive if you choose REPLACE for the x-amz-tagging-directive. If you choose COPY for the x-amz-tagging-directive, you don't need to set \n the x-amz-tagging header, because the tag-set will be copied from the source object directly. The tag-set must be encoded as URL Query\n parameters.

\n

The default value is the empty value.

\n \n

\n Directory buckets - For directory buckets in a CopyObject operation, only the empty tag-set is supported. Any requests that attempt to write non-empty tags into directory buckets will receive a 501 Not Implemented status code. \nWhen the destination bucket is a directory bucket, you will receive a 501 Not Implemented response in any of the following situations:

\n \n

Because only the empty tag-set is supported for directory buckets in a CopyObject operation, the following situations are allowed:

\n \n
", + "smithy.api#documentation": "

The tag-set for the object copy in the destination bucket. This value must be used in\n conjunction with the x-amz-tagging-directive if you choose\n REPLACE for the x-amz-tagging-directive. If you choose\n COPY for the x-amz-tagging-directive, you don't need to set\n the x-amz-tagging header, because the tag-set will be copied from the source\n object directly. The tag-set must be encoded as URL Query parameters.

\n

The default value is the empty value.

\n \n

\n Directory buckets - For directory buckets in a CopyObject operation, only the empty tag-set is supported. Any requests that attempt to write non-empty tags into directory buckets will receive a 501 Not Implemented status code. \nWhen the destination bucket is a directory bucket, you will receive a 501 Not Implemented response in any of the following situations:

\n \n

Because only the empty tag-set is supported for directory buckets in a CopyObject operation, the following situations are allowed:

\n \n
", "smithy.api#httpHeader": "x-amz-tagging" } }, @@ -19300,7 +19307,7 @@ } ], "traits": { - "smithy.api#documentation": "\n

This action creates an Amazon S3 bucket. To create an Amazon S3 on Outposts bucket, see \n CreateBucket\n .

\n
\n

Creates a new S3 bucket. To create a bucket, you must set up Amazon S3 and have a\n valid Amazon Web Services Access Key ID to authenticate requests. Anonymous requests are never allowed to\n create buckets. By creating the bucket, you become the bucket owner.

\n

There are two types of buckets: general purpose buckets and directory buckets. For more\n information about these bucket types, see Creating, configuring, and\n working with Amazon S3 buckets in the Amazon S3 User Guide.

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - In addition to the s3:CreateBucket permission, the following permissions are\n required in a policy when your CreateBucket request includes specific\n headers:

    \n
      \n
    • \n

      \n Access control lists (ACLs) - In your CreateBucket request, if you specify an access control list (ACL) \n and set it to public-read, public-read-write,\n authenticated-read, or if you explicitly specify any other custom ACLs, both s3:CreateBucket and\n s3:PutBucketAcl permissions are required. In your CreateBucket request, if you set the ACL to private, \n or if you don't specify any ACLs, only the s3:CreateBucket permission is required.\n

      \n
    • \n
    • \n

      \n Object Lock - In your\n CreateBucket request, if you set \n x-amz-bucket-object-lock-enabled to true, the \n s3:PutBucketObjectLockConfiguration and\n s3:PutBucketVersioning permissions are required.

      \n
    • \n
    • \n

      \n S3 Object Ownership - If your\n CreateBucket request includes the\n x-amz-object-ownership header, then the\n s3:PutBucketOwnershipControls permission is required.

      \n \n

      To set an ACL on a bucket as part of a\n CreateBucket request, you must explicitly set S3\n Object Ownership for the bucket to a different value than the\n default, BucketOwnerEnforced. Additionally, if your\n desired bucket ACL grants public access, you must first create the\n bucket (without the bucket ACL) and then explicitly disable Block\n Public Access on the bucket before using PutBucketAcl\n to set the ACL. If you try to create a bucket with a public ACL,\n the request will fail.

      \n

      For the majority of modern use cases in S3, we recommend\n that you keep all Block Public Access settings enabled and keep\n ACLs disabled. If you would like to share data with users outside\n of your account, you can use bucket policies as needed. For more\n information, see Controlling ownership of objects and disabling ACLs for your\n bucket and Blocking public access to your Amazon S3 storage in\n the Amazon S3 User Guide.

      \n
      \n
    • \n
    • \n

      \n S3 Block Public Access - If your\n specific use case requires granting public access to your S3 resources, you\n can disable Block Public Access. Specifically, you can create a new bucket with Block\n Public Access enabled, then separately call the \n DeletePublicAccessBlock\n API. To use this operation, you must have the\n s3:PutBucketPublicAccessBlock permission. For more information about S3 Block Public\n Access, see Blocking\n public access to your Amazon S3 storage in the\n Amazon S3 User Guide.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - You must have the s3express:CreateBucket permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n \n

    The permissions for ACLs, Object Lock, S3 Object Ownership, and S3 Block Public Access are not supported for directory buckets. \n For directory buckets, all Block Public Access settings are enabled at the bucket level and S3 \n Object Ownership is set to Bucket owner enforced (ACLs disabled). These settings can't be modified.\n

    \n

    For more information about permissions for creating and working with \n directory buckets, see Directory buckets in the Amazon S3 User Guide. \n For more information about supported S3 features for directory buckets, see Features of S3 Express One Zone in the Amazon S3 User Guide.

    \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to CreateBucket:

\n ", + "smithy.api#documentation": "\n

This action creates an Amazon S3 bucket. To create an Amazon S3 on Outposts bucket, see \n CreateBucket\n .

\n
\n

Creates a new S3 bucket. To create a bucket, you must set up Amazon S3 and have a valid Amazon Web Services\n Access Key ID to authenticate requests. Anonymous requests are never allowed to create\n buckets. By creating the bucket, you become the bucket owner.

\n

There are two types of buckets: general purpose buckets and directory buckets. For more\n information about these bucket types, see Creating, configuring, and\n working with Amazon S3 buckets in the Amazon S3 User Guide.

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - In\n addition to the s3:CreateBucket permission, the following\n permissions are required in a policy when your CreateBucket\n request includes specific headers:

    \n
      \n
    • \n

      \n Access control lists (ACLs)\n - In your CreateBucket request, if you specify an\n access control list (ACL) and set it to public-read,\n public-read-write, authenticated-read, or\n if you explicitly specify any other custom ACLs, both\n s3:CreateBucket and s3:PutBucketAcl\n permissions are required. In your CreateBucket request,\n if you set the ACL to private, or if you don't specify\n any ACLs, only the s3:CreateBucket permission is\n required.

      \n
    • \n
    • \n

      \n Object Lock - In your\n CreateBucket request, if you set\n x-amz-bucket-object-lock-enabled to true, the\n s3:PutBucketObjectLockConfiguration and\n s3:PutBucketVersioning permissions are\n required.

      \n
    • \n
    • \n

      \n S3 Object Ownership - If\n your CreateBucket request includes the\n x-amz-object-ownership header, then the\n s3:PutBucketOwnershipControls permission is\n required.

      \n \n

      To set an ACL on a bucket as part of a\n CreateBucket request, you must explicitly set S3\n Object Ownership for the bucket to a different value than the\n default, BucketOwnerEnforced. Additionally, if your\n desired bucket ACL grants public access, you must first create the\n bucket (without the bucket ACL) and then explicitly disable Block\n Public Access on the bucket before using PutBucketAcl\n to set the ACL. If you try to create a bucket with a public ACL,\n the request will fail.

      \n

      For the majority of modern use cases in S3, we recommend that\n you keep all Block Public Access settings enabled and keep ACLs\n disabled. If you would like to share data with users outside of\n your account, you can use bucket policies as needed. For more\n information, see Controlling ownership of objects and disabling ACLs for your\n bucket and Blocking public access to your Amazon S3 storage in\n the Amazon S3 User Guide.

      \n
      \n
    • \n
    • \n

      \n S3 Block Public Access - If\n your specific use case requires granting public access to your S3\n resources, you can disable Block Public Access. Specifically, you can\n create a new bucket with Block Public Access enabled, then separately\n call the \n DeletePublicAccessBlock\n API. To use this operation, you must have the\n s3:PutBucketPublicAccessBlock permission. For more\n information about S3 Block Public Access, see Blocking public access to your Amazon S3 storage in the\n Amazon S3 User Guide.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions -\n You must have the s3express:CreateBucket permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n \n

    The permissions for ACLs, Object Lock, S3 Object Ownership, and S3\n Block Public Access are not supported for directory buckets. For\n directory buckets, all Block Public Access settings are enabled at the\n bucket level and S3 Object Ownership is set to Bucket owner enforced\n (ACLs disabled). These settings can't be modified.

    \n

    For more information about permissions for creating and working with\n directory buckets, see Directory buckets in the\n Amazon S3 User Guide. For more information about\n supported S3 features for directory buckets, see Features of S3 Express One Zone in the\n Amazon S3 User Guide.

    \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to CreateBucket:

\n ", "smithy.api#examples": [ { "title": "To create a bucket in a specific region", @@ -19347,7 +19354,7 @@ "LocationConstraint": { "target": "com.amazonaws.s3#BucketLocationConstraint", "traits": { - "smithy.api#documentation": "

Specifies the Region where the bucket will be created. You might choose a Region to\n optimize latency, minimize costs, or address regulatory requirements. For example, if you\n reside in Europe, you will probably find it advantageous to create buckets in the Europe\n (Ireland) Region. For more information, see Accessing a\n bucket in the Amazon S3 User Guide.

\n

If you don't specify a Region,\n the bucket is created in the US East (N. Virginia) Region (us-east-1) by default.

\n \n

This functionality is not supported for directory buckets.

\n
" + "smithy.api#documentation": "

Specifies the Region where the bucket will be created. You might choose a Region to\n optimize latency, minimize costs, or address regulatory requirements. For example, if you\n reside in Europe, you will probably find it advantageous to create buckets in the Europe\n (Ireland) Region. For more information, see Accessing a\n bucket in the Amazon S3 User Guide.

\n

If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region\n (us-east-1) by default.

\n \n

This functionality is not supported for directory buckets.

\n
" } }, "Location": { @@ -19473,7 +19480,7 @@ "target": "com.amazonaws.s3#CreateMultipartUploadOutput" }, "traits": { - "smithy.api#documentation": "

This action initiates a multipart upload and returns an upload ID. This upload ID is\n used to associate all of the parts in the specific multipart upload. You specify this\n upload ID in each of your subsequent upload part requests (see UploadPart). You also include this\n upload ID in the final request to either complete or abort the multipart upload\n request. For more information about multipart uploads, see Multipart Upload Overview in the Amazon S3 User Guide.

\n \n

After you initiate a multipart upload and upload one or more parts, to stop being\n charged for storing the uploaded parts, you must either complete or abort the multipart\n upload. Amazon S3 frees up the space used to store the parts and stops charging you for\n storing them only after you either complete or abort a multipart upload.

\n
\n

If you have configured a lifecycle rule to abort incomplete multipart uploads, the created multipart \n upload must be completed within the number of days specified in the bucket lifecycle\n configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort\n action and Amazon S3 aborts the multipart upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle\n Configuration.

\n \n \n \n
\n
Request signing
\n
\n

For request signing, multipart upload is just a series of regular requests. You initiate\n a multipart upload, send one or more requests to upload parts, and then complete the\n multipart upload process. You sign each request individually. There is nothing special\n about signing multipart upload requests. For more information about signing, see Authenticating Requests (Amazon Web Services Signature Version 4) in the Amazon S3 User Guide.

\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To\n perform a multipart upload with encryption using an Key Management Service (KMS)\n KMS key, the requester must have permission to the\n kms:Decrypt and kms:GenerateDataKey actions on\n the key. The requester must also have permissions for the\n kms:GenerateDataKey action for the\n CreateMultipartUpload API. Then, the requester needs\n permissions for the kms:Decrypt action on the\n UploadPart and UploadPartCopy APIs. These\n permissions are required because Amazon S3 must decrypt and read data from the\n encrypted file parts before it completes the multipart upload. For more\n information, see Multipart upload API and permissions and Protecting data\n using server-side encryption with Amazon Web Services KMS in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Encryption
\n
\n
    \n
  • \n

    \n General purpose buckets - Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it\n writes it to disks in its data centers and decrypts it when you access it. Amazon S3\n automatically encrypts all new objects that are uploaded to an S3 bucket. When doing a\n multipart upload, if you don't specify encryption information in your request, the\n encryption setting of the uploaded parts is set to the default encryption configuration of\n the destination bucket. By default, all buckets have a base level of encryption\n configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the\n destination bucket has a default encryption configuration that uses server-side encryption\n with an Key Management Service (KMS) key (SSE-KMS), or a customer-provided encryption key (SSE-C),\n Amazon S3 uses the corresponding KMS key, or a customer-provided key to encrypt the uploaded\n parts. When you perform a CreateMultipartUpload operation, if you want to use a different\n type of encryption setting for the uploaded parts, you can request that Amazon S3 encrypts the\n object with a different encryption key (such as an Amazon S3 managed key, a KMS key, or a customer-provided key). When the encryption\n setting in your request is different from the default encryption configuration of the\n destination bucket, the encryption setting in your request takes precedence. If you choose\n to provide your own encryption key, the request headers you provide in UploadPart\n and UploadPartCopy requests must match the headers you used in the CreateMultipartUpload request.

    \n
      \n
    • \n

      Use KMS keys (SSE-KMS) that include the Amazon Web Services managed key\n (aws/s3) and KMS customer managed keys stored in Key Management Service (KMS) –\n If you want Amazon Web Services to manage the keys used to encrypt data, specify the\n following headers in the request.

      \n
        \n
      • \n

        \n x-amz-server-side-encryption\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-aws-kms-key-id\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-context\n

        \n
      • \n
      \n \n
        \n
      • \n

        If you specify x-amz-server-side-encryption:aws:kms, but\n don't provide x-amz-server-side-encryption-aws-kms-key-id,\n Amazon S3 uses the Amazon Web Services managed key (aws/s3 key) in KMS to\n protect the data.

        \n
      • \n
      • \n

        To perform a multipart upload with encryption by using an Amazon Web Services KMS key, the requester\n must have permission to the kms:Decrypt and kms:GenerateDataKey*\n actions on the key. These permissions are required because Amazon S3 must decrypt and read data\n from the encrypted file parts before it completes the multipart upload. For more\n information, see Multipart upload API\n and permissions and Protecting data using\n server-side encryption with Amazon Web Services KMS in the\n Amazon S3 User Guide.

        \n
      • \n
      • \n

        If your Identity and Access Management (IAM) user or role is in the same Amazon Web Services account as the KMS key,\n then you must have these permissions on the key policy. If your IAM user or role is in a different account from the key, then you must have the permissions on both the key\n policy and your IAM user or role.

        \n
      • \n
      • \n

        All GET and PUT requests for an object\n protected by KMS fail if you don't make them by using Secure Sockets\n Layer (SSL), Transport Layer Security (TLS), or Signature Version\n 4. For information about configuring any of the officially supported Amazon Web Services\n SDKs and Amazon Web Services CLI, see Specifying the Signature Version in Request Authentication\n in the Amazon S3 User Guide.

        \n
      • \n
      \n
      \n

      For more information about server-side encryption with KMS keys\n (SSE-KMS), see Protecting Data\n Using Server-Side Encryption with KMS keys in the Amazon S3 User Guide.

      \n
    • \n
    • \n

      Use customer-provided encryption keys (SSE-C) – If you want to manage\n your own encryption keys, provide all the following headers in the\n request.

      \n
        \n
      • \n

        \n x-amz-server-side-encryption-customer-algorithm\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-customer-key\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-customer-key-MD5\n

        \n
      • \n
      \n

      For more information about server-side encryption with customer-provided\n encryption keys (SSE-C), see \n Protecting data using server-side encryption with customer-provided\n encryption keys (SSE-C) in the Amazon S3 User Guide.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

    \n

    In the Zonal endpoint API calls (except CopyObject and UploadPartCopy) using the REST API, the encryption request headers must match the encryption settings that are specified in the CreateSession request. \n You can't override the values of the encryption settings (x-amz-server-side-encryption, x-amz-server-side-encryption-aws-kms-key-id, x-amz-server-side-encryption-context, and x-amz-server-side-encryption-bucket-key-enabled) that are specified in the CreateSession request. \n You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and \n Amazon S3 will use the encryption settings values from the CreateSession request to protect new objects in the directory bucket. \n

    \n \n

    When you use the CLI or the Amazon Web Services SDKs, for CreateSession, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the \n CreateSession request. It's not supported to override the encryption settings values in the CreateSession request. \n So in the Zonal endpoint API calls (except CopyObject and UploadPartCopy), \n the encryption request headers must match the default encryption configuration of the directory bucket.\n\n

    \n
    \n \n

    For directory buckets, when you perform a CreateMultipartUpload operation and an UploadPartCopy operation, \n the request headers you provide in the CreateMultipartUpload request must match the default encryption configuration of the destination bucket.

    \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to CreateMultipartUpload:

\n ", + "smithy.api#documentation": "

This action initiates a multipart upload and returns an upload ID. This upload ID is\n used to associate all of the parts in the specific multipart upload. You specify this\n upload ID in each of your subsequent upload part requests (see UploadPart). You also include this\n upload ID in the final request to either complete or abort the multipart upload request.\n For more information about multipart uploads, see Multipart Upload Overview in the\n Amazon S3 User Guide.

\n \n

After you initiate a multipart upload and upload one or more parts, to stop being\n charged for storing the uploaded parts, you must either complete or abort the multipart\n upload. Amazon S3 frees up the space used to store the parts and stops charging you for\n storing them only after you either complete or abort a multipart upload.

\n
\n

If you have configured a lifecycle rule to abort incomplete multipart uploads, the\n created multipart upload must be completed within the number of days specified in the\n bucket lifecycle configuration. Otherwise, the incomplete multipart upload becomes eligible\n for an abort action and Amazon S3 aborts the multipart upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle\n Configuration.

\n \n \n \n
\n
Request signing
\n
\n

For request signing, multipart upload is just a series of regular requests. You\n initiate a multipart upload, send one or more requests to upload parts, and then\n complete the multipart upload process. You sign each request individually. There\n is nothing special about signing multipart upload requests. For more information\n about signing, see Authenticating\n Requests (Amazon Web Services Signature Version 4) in the\n Amazon S3 User Guide.

\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To\n perform a multipart upload with encryption using an Key Management Service (KMS)\n KMS key, the requester must have permission to the\n kms:Decrypt and kms:GenerateDataKey actions on\n the key. The requester must also have permissions for the\n kms:GenerateDataKey action for the\n CreateMultipartUpload API. Then, the requester needs\n permissions for the kms:Decrypt action on the\n UploadPart and UploadPartCopy APIs. These\n permissions are required because Amazon S3 must decrypt and read data from the\n encrypted file parts before it completes the multipart upload. For more\n information, see Multipart upload API and permissions and Protecting data\n using server-side encryption with Amazon Web Services KMS in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Encryption
\n
\n
    \n
  • \n

    \n General purpose buckets - Server-side\n encryption is for data encryption at rest. Amazon S3 encrypts your data as it\n writes it to disks in its data centers and decrypts it when you access it.\n Amazon S3 automatically encrypts all new objects that are uploaded to an S3\n bucket. When doing a multipart upload, if you don't specify encryption\n information in your request, the encryption setting of the uploaded parts is\n set to the default encryption configuration of the destination bucket. By\n default, all buckets have a base level of encryption configuration that uses\n server-side encryption with Amazon S3 managed keys (SSE-S3). If the destination\n bucket has a default encryption configuration that uses server-side\n encryption with an Key Management Service (KMS) key (SSE-KMS), or a customer-provided\n encryption key (SSE-C), Amazon S3 uses the corresponding KMS key, or a\n customer-provided key to encrypt the uploaded parts. When you perform a\n CreateMultipartUpload operation, if you want to use a different type of\n encryption setting for the uploaded parts, you can request that Amazon S3\n encrypts the object with a different encryption key (such as an Amazon S3 managed\n key, a KMS key, or a customer-provided key). When the encryption setting\n in your request is different from the default encryption configuration of\n the destination bucket, the encryption setting in your request takes\n precedence. If you choose to provide your own encryption key, the request\n headers you provide in UploadPart and\n UploadPartCopy\n requests must match the headers you used in the\n CreateMultipartUpload request.

    \n
      \n
    • \n

      Use KMS keys (SSE-KMS) that include the Amazon Web Services managed key\n (aws/s3) and KMS customer managed keys stored in Key Management Service\n (KMS) – If you want Amazon Web Services to manage the keys used to encrypt data,\n specify the following headers in the request.

      \n
        \n
      • \n

        \n x-amz-server-side-encryption\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-aws-kms-key-id\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-context\n

        \n
      • \n
      \n \n
        \n
      • \n

        If you specify\n x-amz-server-side-encryption:aws:kms, but\n don't provide\n x-amz-server-side-encryption-aws-kms-key-id,\n Amazon S3 uses the Amazon Web Services managed key (aws/s3 key) in\n KMS to protect the data.

        \n
      • \n
      • \n

        To perform a multipart upload with encryption by using an\n Amazon Web Services KMS key, the requester must have permission to the\n kms:Decrypt and\n kms:GenerateDataKey* actions on the key.\n These permissions are required because Amazon S3 must decrypt and\n read data from the encrypted file parts before it completes\n the multipart upload. For more information, see Multipart upload API and permissions and Protecting data using server-side encryption with Amazon Web Services\n KMS in the\n Amazon S3 User Guide.

        \n
      • \n
      • \n

        If your Identity and Access Management (IAM) user or role is in the same\n Amazon Web Services account as the KMS key, then you must have these\n permissions on the key policy. If your IAM user or role is\n in a different account from the key, then you must have the\n permissions on both the key policy and your IAM user or\n role.

        \n
      • \n
      • \n

        All GET and PUT requests for an\n object protected by KMS fail if you don't make them by\n using Secure Sockets Layer (SSL), Transport Layer Security\n (TLS), or Signature Version 4. For information about\n configuring any of the officially supported Amazon Web Services SDKs and\n Amazon Web Services CLI, see Specifying the Signature Version in\n Request Authentication in the\n Amazon S3 User Guide.

        \n
      • \n
      \n
      \n

      For more information about server-side encryption with KMS keys\n (SSE-KMS), see Protecting\n Data Using Server-Side Encryption with KMS keys in the\n Amazon S3 User Guide.

      \n
    • \n
    • \n

      Use customer-provided encryption keys (SSE-C) – If you want to\n manage your own encryption keys, provide all the following headers in\n the request.

      \n
        \n
      • \n

        \n x-amz-server-side-encryption-customer-algorithm\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-customer-key\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-customer-key-MD5\n

        \n
      • \n
      \n

      For more information about server-side encryption with\n customer-provided encryption keys (SSE-C), see Protecting data using server-side encryption with\n customer-provided encryption keys (SSE-C) in the\n Amazon S3 User Guide.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory buckets -\n For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

    \n

    In the Zonal endpoint API calls (except CopyObject and UploadPartCopy) using the REST API, the encryption request headers must match the encryption settings that are specified in the CreateSession request. \n You can't override the values of the encryption settings (x-amz-server-side-encryption, x-amz-server-side-encryption-aws-kms-key-id, x-amz-server-side-encryption-context, and x-amz-server-side-encryption-bucket-key-enabled) that are specified in the CreateSession request. \n You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and \n Amazon S3 will use the encryption settings values from the CreateSession request to protect new objects in the directory bucket. \n

    \n \n

    When you use the CLI or the Amazon Web Services SDKs, for CreateSession, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the \n CreateSession request. It's not supported to override the encryption settings values in the CreateSession request. \n So in the Zonal endpoint API calls (except CopyObject and UploadPartCopy), \n the encryption request headers must match the default encryption configuration of the directory bucket.\n\n

    \n
    \n \n

    For directory buckets, when you perform a\n CreateMultipartUpload operation and an\n UploadPartCopy operation, the request headers you provide\n in the CreateMultipartUpload request must match the default\n encryption configuration of the destination bucket.

    \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to CreateMultipartUpload:

\n ", "smithy.api#examples": [ { "title": "To initiate a multipart upload", @@ -19502,7 +19509,7 @@ "AbortDate": { "target": "com.amazonaws.s3#AbortDate", "traits": { - "smithy.api#documentation": "

If the bucket has a lifecycle rule configured with an action to abort incomplete\n multipart uploads and the prefix in the lifecycle rule matches the object name in the\n request, the response includes this header. The header indicates when the initiated\n multipart upload becomes eligible for an abort operation. For more information, see \n Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle\n Configuration in the Amazon S3 User Guide.

\n

The response also includes the x-amz-abort-rule-id header that provides the\n ID of the lifecycle configuration rule that defines the abort action.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If the bucket has a lifecycle rule configured with an action to abort incomplete\n multipart uploads and the prefix in the lifecycle rule matches the object name in the\n request, the response includes this header. The header indicates when the initiated\n multipart upload becomes eligible for an abort operation. For more information, see \n Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration in\n the Amazon S3 User Guide.

\n

The response also includes the x-amz-abort-rule-id header that provides the\n ID of the lifecycle configuration rule that defines the abort action.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-abort-date" } }, @@ -19535,7 +19542,7 @@ "ServerSideEncryption": { "target": "com.amazonaws.s3#ServerSideEncryption", "traits": { - "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example,\n AES256, aws:kms).

", + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for\n example, AES256, aws:kms).

", "smithy.api#httpHeader": "x-amz-server-side-encryption" } }, @@ -19549,7 +19556,7 @@ "SSECustomerKeyMD5": { "target": "com.amazonaws.s3#SSECustomerKeyMD5", "traits": { - "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification of\n the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification\n of the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" } }, @@ -19599,14 +19606,14 @@ "ACL": { "target": "com.amazonaws.s3#ObjectCannedACL", "traits": { - "smithy.api#documentation": "

The canned ACL to apply to the object. Amazon S3 supports a set of\n predefined ACLs, known as canned ACLs. Each canned ACL\n has a predefined set of grantees and permissions. For more information, see\n Canned\n ACL in the Amazon S3 User Guide.

\n

By default, all objects are private. Only the owner has full access\n control. When uploading an object, you can grant access permissions to individual\n Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then\n added to the access control list (ACL) on the new object. For more information, see\n Using ACLs. One way to\n grant the permissions using the request headers is to specify a canned ACL with the x-amz-acl request header.

\n \n \n ", + "smithy.api#documentation": "

The canned ACL to apply to the object. Amazon S3 supports a set of predefined ACLs, known as\n canned ACLs. Each canned ACL has a predefined set of grantees and\n permissions. For more information, see Canned ACL in the\n Amazon S3 User Guide.

\n

By default, all objects are private. Only the owner has full access control. When\n uploading an object, you can grant access permissions to individual Amazon Web Services accounts or to\n predefined groups defined by Amazon S3. These permissions are then added to the access control\n list (ACL) on the new object. For more information, see Using ACLs. One way to grant\n the permissions using the request headers is to specify a canned ACL with the\n x-amz-acl request header.

\n \n \n ", "smithy.api#httpHeader": "x-amz-acl" } }, "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The name of the bucket where the multipart upload is initiated and where the object is uploaded.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The name of the bucket where the multipart upload is initiated and where the object is\n uploaded.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -19659,28 +19666,28 @@ "GrantFullControl": { "target": "com.amazonaws.s3#GrantFullControl", "traits": { - "smithy.api#documentation": "

Specify access permissions explicitly to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

\n

By default, all objects are private. Only the owner has full access\n control. When uploading an object, you can use this header to explicitly grant access\n permissions to specific Amazon Web Services accounts or groups.\n This header maps to specific permissions that Amazon S3 supports in an ACL. For\n more information, see Access Control List (ACL)\n Overview in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of\n the following:

\n \n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n \n ", + "smithy.api#documentation": "

Specify access permissions explicitly to give the grantee READ, READ_ACP, and WRITE_ACP\n permissions on the object.

\n

By default, all objects are private. Only the owner has full access control. When\n uploading an object, you can use this header to explicitly grant access permissions to\n specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3\n supports in an ACL. For more information, see Access Control List (ACL) Overview\n in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of the\n following:

\n \n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n \n ", "smithy.api#httpHeader": "x-amz-grant-full-control" } }, "GrantRead": { "target": "com.amazonaws.s3#GrantRead", "traits": { - "smithy.api#documentation": "

Specify access permissions explicitly to allow grantee to read the object data and its metadata.

\n

By default, all objects are private. Only the owner has full access\n control. When uploading an object, you can use this header to explicitly grant access\n permissions to specific Amazon Web Services accounts or groups.\n This header maps to specific permissions that Amazon S3 supports in an ACL. For\n more information, see Access Control List (ACL)\n Overview in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of\n the following:

\n \n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n \n ", + "smithy.api#documentation": "

Specify access permissions explicitly to allow grantee to read the object data and its\n metadata.

\n

By default, all objects are private. Only the owner has full access control. When\n uploading an object, you can use this header to explicitly grant access permissions to\n specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3\n supports in an ACL. For more information, see Access Control List (ACL) Overview\n in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of the\n following:

\n \n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n \n ", "smithy.api#httpHeader": "x-amz-grant-read" } }, "GrantReadACP": { "target": "com.amazonaws.s3#GrantReadACP", "traits": { - "smithy.api#documentation": "

Specify access permissions explicitly to allows grantee to read the object ACL.

\n

By default, all objects are private. Only the owner has full access\n control. When uploading an object, you can use this header to explicitly grant access\n permissions to specific Amazon Web Services accounts or groups.\n This header maps to specific permissions that Amazon S3 supports in an ACL. For\n more information, see Access Control List (ACL)\n Overview in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of\n the following:

\n \n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n \n ", + "smithy.api#documentation": "

Specify access permissions explicitly to allows grantee to read the object ACL.

\n

By default, all objects are private. Only the owner has full access control. When\n uploading an object, you can use this header to explicitly grant access permissions to\n specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3\n supports in an ACL. For more information, see Access Control List (ACL) Overview\n in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of the\n following:

\n \n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n \n ", "smithy.api#httpHeader": "x-amz-grant-read-acp" } }, "GrantWriteACP": { "target": "com.amazonaws.s3#GrantWriteACP", "traits": { - "smithy.api#documentation": "

Specify access permissions explicitly to allows grantee to allow grantee to write the ACL for the applicable object.

\n

By default, all objects are private. Only the owner has full access\n control. When uploading an object, you can use this header to explicitly grant access\n permissions to specific Amazon Web Services accounts or groups.\n This header maps to specific permissions that Amazon S3 supports in an ACL. For\n more information, see Access Control List (ACL)\n Overview in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of\n the following:

\n \n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n \n ", + "smithy.api#documentation": "

Specify access permissions explicitly to allows grantee to allow grantee to write the\n ACL for the applicable object.

\n

By default, all objects are private. Only the owner has full access control. When\n uploading an object, you can use this header to explicitly grant access permissions to\n specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3\n supports in an ACL. For more information, see Access Control List (ACL) Overview\n in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of the\n following:

\n \n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n \n ", "smithy.api#httpHeader": "x-amz-grant-write-acp" } }, @@ -19705,14 +19712,14 @@ "ServerSideEncryption": { "target": "com.amazonaws.s3#ServerSideEncryption", "traits": { - "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example,\n AES256, aws:kms).

\n ", + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for\n example, AES256, aws:kms).

\n ", "smithy.api#httpHeader": "x-amz-server-side-encryption" } }, "StorageClass": { "target": "com.amazonaws.s3#StorageClass", "traits": { - "smithy.api#documentation": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The\n STANDARD storage class provides high durability and high availability. Depending on\n performance needs, you can specify a different Storage Class. For more information, see Storage Classes in the\n Amazon S3 User Guide.

\n \n \n ", + "smithy.api#documentation": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The\n STANDARD storage class provides high durability and high availability. Depending on\n performance needs, you can specify a different Storage Class. For more information, see\n Storage\n Classes in the Amazon S3 User Guide.

\n \n \n ", "smithy.api#httpHeader": "x-amz-storage-class" } }, @@ -19726,7 +19733,7 @@ "SSECustomerAlgorithm": { "target": "com.amazonaws.s3#SSECustomerAlgorithm", "traits": { - "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example,\n AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" } }, @@ -19740,7 +19747,7 @@ "SSECustomerKeyMD5": { "target": "com.amazonaws.s3#SSECustomerKeyMD5", "traits": { - "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the customer-provided encryption key according to RFC 1321. Amazon S3 uses\n this header for a message integrity check to ensure that the encryption key was transmitted\n without error.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the customer-provided encryption key according to\n RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption\n key was transmitted without error.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" } }, @@ -19832,7 +19839,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a session that establishes temporary security credentials to support fast authentication and authorization for the Zonal endpoint API operations on directory buckets. \n For more information about Zonal endpoint API operations that include the Availability Zone in the request endpoint, see \n S3 Express One Zone APIs in the Amazon S3 User Guide. \n

\n

To make Zonal endpoint API requests on a directory bucket, use the CreateSession\n API operation. Specifically, you grant s3express:CreateSession permission to a\n bucket in a bucket policy or an IAM identity-based policy. Then, you use IAM credentials to make the\n CreateSession API request on the bucket, which returns temporary security\n credentials that include the access key ID, secret access key, session token, and\n expiration. These credentials have associated permissions to access the Zonal endpoint API operations. After\n the session is created, you don’t need to use other policies to grant permissions to each\n Zonal endpoint API individually. Instead, in your Zonal endpoint API requests, you sign your requests by\n applying the temporary security credentials of the session to the request headers and\n following the SigV4 protocol for authentication. You also apply the session token to the\n x-amz-s3session-token request header for authorization. Temporary security\n credentials are scoped to the bucket and expire after 5 minutes. After the expiration time,\n any calls that you make with those credentials will fail. You must use IAM credentials\n again to make a CreateSession API request that generates a new set of\n temporary credentials for use. Temporary credentials cannot be extended or refreshed beyond\n the original specified interval.

\n

If you use Amazon Web Services SDKs, SDKs handle the session token refreshes automatically to avoid\n service interruptions when a session expires. We recommend that you use the Amazon Web Services SDKs to\n initiate and manage requests to the CreateSession API. For more information, see Performance guidelines and design patterns in the\n Amazon S3 User Guide.

\n \n \n \n
\n
Permissions
\n
\n

To obtain temporary security credentials, you must create a bucket policy or an IAM identity-based policy that\n grants s3express:CreateSession permission to the bucket. In a\n policy, you can have the s3express:SessionMode condition key to\n control who can create a ReadWrite or ReadOnly session.\n For more information about ReadWrite or ReadOnly\n sessions, see \n x-amz-create-session-mode\n . For example policies, see\n Example bucket policies for S3 Express One Zone and Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone in the\n Amazon S3 User Guide.

\n

To grant cross-account access to Zonal endpoint API operations, the bucket policy should also grant both accounts the s3express:CreateSession permission.

\n

If you want to encrypt objects with SSE-KMS, you must also have the kms:GenerateDataKey and the kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the target KMS key.

\n
\n
Encryption
\n
\n

For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

\n

For Zonal endpoint (object-level) API operations except CopyObject and UploadPartCopy, \nyou authenticate and authorize requests through CreateSession for low latency. \n To encrypt new objects in a directory bucket with SSE-KMS, you must specify SSE-KMS as the directory bucket's default encryption configuration with a KMS key (specifically, a customer managed key). Then, when a session is created for Zonal endpoint API operations, new objects are automatically encrypted and decrypted with SSE-KMS and S3 Bucket Keys during the session.

\n \n

\n Only 1 customer managed key is supported per directory bucket for the lifetime of the bucket. The Amazon Web Services managed key (aws/s3) isn't supported. \n After you specify SSE-KMS as your bucket's default encryption configuration with a customer managed key, you can't change the customer managed key for the bucket's SSE-KMS configuration.\n

\n
\n

In the Zonal endpoint API calls (except CopyObject and UploadPartCopy) using the REST API, \n you can't override the values of the encryption settings (x-amz-server-side-encryption, x-amz-server-side-encryption-aws-kms-key-id, x-amz-server-side-encryption-context, and x-amz-server-side-encryption-bucket-key-enabled) from the CreateSession request. \n You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and \n Amazon S3 will use the encryption settings values from the CreateSession request to protect new objects in the directory bucket. \n

\n \n

When you use the CLI or the Amazon Web Services SDKs, for CreateSession, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the \n CreateSession request. It's not supported to override the encryption settings values in the CreateSession request. \n Also, in the Zonal endpoint API calls (except CopyObject and UploadPartCopy), \n it's not supported to override the values of the encryption settings from the CreateSession request. \n\n

\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
", + "smithy.api#documentation": "

Creates a session that establishes temporary security credentials to support fast\n authentication and authorization for the Zonal endpoint API operations on directory buckets. For more\n information about Zonal endpoint API operations that include the Availability Zone in the request endpoint, see S3 Express One Zone\n APIs in the Amazon S3 User Guide.

\n

To make Zonal endpoint API requests on a directory bucket, use the CreateSession\n API operation. Specifically, you grant s3express:CreateSession permission to a\n bucket in a bucket policy or an IAM identity-based policy. Then, you use IAM credentials to make the\n CreateSession API request on the bucket, which returns temporary security\n credentials that include the access key ID, secret access key, session token, and\n expiration. These credentials have associated permissions to access the Zonal endpoint API operations. After\n the session is created, you don’t need to use other policies to grant permissions to each\n Zonal endpoint API individually. Instead, in your Zonal endpoint API requests, you sign your requests by\n applying the temporary security credentials of the session to the request headers and\n following the SigV4 protocol for authentication. You also apply the session token to the\n x-amz-s3session-token request header for authorization. Temporary security\n credentials are scoped to the bucket and expire after 5 minutes. After the expiration time,\n any calls that you make with those credentials will fail. You must use IAM credentials\n again to make a CreateSession API request that generates a new set of\n temporary credentials for use. Temporary credentials cannot be extended or refreshed beyond\n the original specified interval.

\n

If you use Amazon Web Services SDKs, SDKs handle the session token refreshes automatically to avoid\n service interruptions when a session expires. We recommend that you use the Amazon Web Services SDKs to\n initiate and manage requests to the CreateSession API. For more information, see Performance guidelines and design patterns in the\n Amazon S3 User Guide.

\n \n \n \n
\n
Permissions
\n
\n

To obtain temporary security credentials, you must create\n a bucket policy or an IAM identity-based policy that grants s3express:CreateSession\n permission to the bucket. In a policy, you can have the\n s3express:SessionMode condition key to control who can create a\n ReadWrite or ReadOnly session. For more information\n about ReadWrite or ReadOnly sessions, see \n x-amz-create-session-mode\n . For example policies, see\n Example bucket policies for S3 Express One Zone and Amazon Web Services Identity and Access Management (IAM) identity-based policies for\n S3 Express One Zone in the Amazon S3 User Guide.

\n

To grant cross-account access to Zonal endpoint API operations, the bucket policy should also\n grant both accounts the s3express:CreateSession permission.

\n

If you want to encrypt objects with SSE-KMS, you must also have the\n kms:GenerateDataKey and the kms:Decrypt permissions\n in IAM identity-based policies and KMS key policies for the target KMS\n key.

\n
\n
Encryption
\n
\n

For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

\n

For Zonal endpoint (object-level) API operations except CopyObject and UploadPartCopy, \nyou authenticate and authorize requests through CreateSession for low latency. \n To encrypt new objects in a directory bucket with SSE-KMS, you must specify SSE-KMS as the directory bucket's default encryption configuration with a KMS key (specifically, a customer managed key). Then, when a session is created for Zonal endpoint API operations, new objects are automatically encrypted and decrypted with SSE-KMS and S3 Bucket Keys during the session.

\n \n

\n Only 1 customer managed key is supported per directory bucket for the lifetime of the bucket. The Amazon Web Services managed key (aws/s3) isn't supported. \n After you specify SSE-KMS as your bucket's default encryption configuration with a customer managed key, you can't change the customer managed key for the bucket's SSE-KMS configuration.\n

\n
\n

In the Zonal endpoint API calls (except CopyObject and UploadPartCopy) using the REST API, \n you can't override the values of the encryption settings (x-amz-server-side-encryption, x-amz-server-side-encryption-aws-kms-key-id, x-amz-server-side-encryption-context, and x-amz-server-side-encryption-bucket-key-enabled) from the CreateSession request. \n You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and \n Amazon S3 will use the encryption settings values from the CreateSession request to protect new objects in the directory bucket. \n

\n \n

When you use the CLI or the Amazon Web Services SDKs, for CreateSession, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the \n CreateSession request. It's not supported to override the encryption settings values in the CreateSession request. \n Also, in the Zonal endpoint API calls (except CopyObject and UploadPartCopy), \n it's not supported to override the values of the encryption settings from the CreateSession request. \n\n

\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?session", @@ -19993,7 +20000,7 @@ } }, "traits": { - "smithy.api#documentation": "

The container element for optionally specifying the default Object Lock retention settings for new\n objects placed in the specified bucket.

\n \n \n " + "smithy.api#documentation": "

The container element for optionally specifying the default Object Lock retention\n settings for new objects placed in the specified bucket.

\n \n \n " } }, "com.amazonaws.s3#Delete": { @@ -20002,7 +20009,7 @@ "Objects": { "target": "com.amazonaws.s3#ObjectIdentifierList", "traits": { - "smithy.api#documentation": "

The object to delete.

\n \n

\n Directory buckets - For directory buckets, an object that's composed entirely of \n whitespace characters is not supported by the DeleteObjects API operation. The request will receive a 400 Bad Request error \n and none of the objects in the request will be deleted.

\n
", + "smithy.api#documentation": "

The object to delete.

\n \n

\n Directory buckets - For directory buckets,\n an object that's composed entirely of whitespace characters is not supported by the\n DeleteObjects API operation. The request will receive a 400 Bad\n Request error and none of the objects in the request will be deleted.

\n
", "smithy.api#required": {}, "smithy.api#xmlFlattened": {}, "smithy.api#xmlName": "Object" @@ -20028,7 +20035,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "

Deletes the S3 bucket. All objects (including all object versions and delete markers) in\n the bucket must be deleted before the bucket itself can be deleted.

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - You must have the s3:DeleteBucket permission on the specified bucket in a policy.

    \n
  • \n
  • \n

    \n Directory bucket permissions - You must have the s3express:DeleteBucket permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteBucket:

\n ", + "smithy.api#documentation": "

Deletes the S3 bucket. All objects (including all object versions and delete markers) in\n the bucket must be deleted before the bucket itself can be deleted.

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - You\n must have the s3:DeleteBucket permission on the specified\n bucket in a policy.

    \n
  • \n
  • \n

    \n Directory bucket permissions -\n You must have the s3express:DeleteBucket permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteBucket:

\n ", "smithy.api#examples": [ { "title": "To delete a bucket", @@ -20059,7 +20066,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Deletes an analytics configuration for the bucket (specified by the analytics\n configuration ID).

\n

To use this operation, you must have permissions to perform the\n s3:PutAnalyticsConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about the Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class\n Analysis.

\n

The following operations are related to\n DeleteBucketAnalyticsConfiguration:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes an analytics configuration for the bucket (specified by the analytics\n configuration ID).

\n

To use this operation, you must have permissions to perform the\n s3:PutAnalyticsConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about the Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class\n Analysis.

\n

The following operations are related to\n DeleteBucketAnalyticsConfiguration:

\n ", "smithy.api#http": { "method": "DELETE", "uri": "/{Bucket}?analytics", @@ -20115,7 +20122,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Deletes the cors configuration information set for the bucket.

\n

To use this operation, you must have permission to perform the\n s3:PutBucketCORS action. The bucket owner has this permission by default\n and can grant this permission to others.

\n

For information about cors, see Enabling Cross-Origin Resource Sharing in\n the Amazon S3 User Guide.

\n

\n Related Resources\n

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes the cors configuration information set for the bucket.

\n

To use this operation, you must have permission to perform the\n s3:PutBucketCORS action. The bucket owner has this permission by default\n and can grant this permission to others.

\n

For information about cors, see Enabling Cross-Origin Resource Sharing in\n the Amazon S3 User Guide.

\n

\n Related Resources\n

\n ", "smithy.api#examples": [ { "title": "To delete cors configuration on a bucket.", @@ -20172,7 +20179,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "

This implementation of the DELETE action resets the default encryption for the bucket as\n server-side encryption with Amazon S3 managed keys (SSE-S3).

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The s3:PutEncryptionConfiguration permission is required in a policy. \n The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation, you must have the s3express:PutEncryptionConfiguration permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteBucketEncryption:

\n ", + "smithy.api#documentation": "

This implementation of the DELETE action resets the default encryption for the bucket as\n server-side encryption with Amazon S3 managed keys (SSE-S3).

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:PutEncryptionConfiguration permission is required in a\n policy. The bucket owner has this permission by default. The bucket owner\n can grant this permission to others. For more information about permissions,\n see Permissions Related to Bucket Operations and Managing Access\n Permissions to Your Amazon S3 Resources.

    \n
  • \n
  • \n

    \n Directory bucket permissions -\n To grant access to this API operation, you must have the\n s3express:PutEncryptionConfiguration permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteBucketEncryption:

\n ", "smithy.api#http": { "method": "DELETE", "uri": "/{Bucket}?encryption", @@ -20220,7 +20227,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Deletes the S3 Intelligent-Tiering configuration from the specified bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to DeleteBucketIntelligentTieringConfiguration include:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes the S3 Intelligent-Tiering configuration from the specified bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to DeleteBucketIntelligentTieringConfiguration include:

\n ", "smithy.api#http": { "method": "DELETE", "uri": "/{Bucket}?intelligent-tiering", @@ -20269,7 +20276,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Deletes an inventory configuration (identified by the inventory ID) from the\n bucket.

\n

To use this operation, you must have permissions to perform the\n s3:PutInventoryConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

\n

Operations related to DeleteBucketInventoryConfiguration include:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes an inventory configuration (identified by the inventory ID) from the\n bucket.

\n

To use this operation, you must have permissions to perform the\n s3:PutInventoryConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

\n

Operations related to DeleteBucketInventoryConfiguration include:

\n ", "smithy.api#http": { "method": "DELETE", "uri": "/{Bucket}?inventory", @@ -20325,7 +20332,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes all the\n lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your\n objects never expire, and Amazon S3 no longer automatically deletes any objects on the basis of\n rules contained in the deleted lifecycle configuration.

\n

To use this operation, you must have permission to perform the\n s3:PutLifecycleConfiguration action. By default, the bucket owner has this\n permission and the bucket owner can grant this permission to others.

\n

There is usually some time lag before lifecycle configuration deletion is fully\n propagated to all the Amazon S3 systems.

\n

For more information about the object expiration, see Elements to Describe Lifecycle Actions.

\n

Related actions include:

\n ", + "smithy.api#documentation": "

Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes all the\n lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your\n objects never expire, and Amazon S3 no longer automatically deletes any objects on the basis of\n rules contained in the deleted lifecycle configuration.

\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - By\n default, all Amazon S3 resources are private, including buckets, objects, and\n related subresources (for example, lifecycle configuration and website\n configuration). Only the resource owner (that is, the Amazon Web Services account that\n created it) can access the resource. The resource owner can optionally grant\n access permissions to others by writing an access policy. For this\n operation, a user must have the s3:PutLifecycleConfiguration\n permission.

    \n

    For more information about permissions, see Managing Access\n Permissions to Your Amazon S3 Resources.

    \n
  • \n
\n
    \n
  • \n

    \n Directory bucket permissions -\n You must have the s3express:PutLifecycleConfiguration\n permission in an IAM identity-based policy to use this operation.\n Cross-account access to this API operation isn't supported. The resource\n owner can optionally grant access permissions to others by creating a role\n or user for them as long as they are within the same account as the owner\n and resource.

    \n

    For more information about directory bucket policies and permissions, see\n Authorizing Regional endpoint APIs with IAM in the\n Amazon S3 User Guide.

    \n \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

    \n
    \n
  • \n
\n
\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host\n header syntax is\n s3express-control.region.amazonaws.com.

\n
\n
\n

For more information about the object expiration, see Elements to Describe Lifecycle Actions.

\n

Related actions include:

\n ", "smithy.api#examples": [ { "title": "To delete lifecycle configuration on a bucket.", @@ -20364,7 +20371,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -20382,7 +20389,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Deletes a metrics configuration for the Amazon CloudWatch request metrics (specified by the\n metrics configuration ID) from the bucket. Note that this doesn't include the daily storage\n metrics.

\n

To use this operation, you must have permissions to perform the\n s3:PutMetricsConfiguration action. The bucket owner has this permission by\n default. The bucket owner can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with\n Amazon CloudWatch.

\n

The following operations are related to\n DeleteBucketMetricsConfiguration:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes a metrics configuration for the Amazon CloudWatch request metrics (specified by the\n metrics configuration ID) from the bucket. Note that this doesn't include the daily storage\n metrics.

\n

To use this operation, you must have permissions to perform the\n s3:PutMetricsConfiguration action. The bucket owner has this permission by\n default. The bucket owner can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with\n Amazon CloudWatch.

\n

The following operations are related to\n DeleteBucketMetricsConfiguration:

\n ", "smithy.api#http": { "method": "DELETE", "uri": "/{Bucket}?metrics", @@ -20438,7 +20445,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Removes OwnershipControls for an Amazon S3 bucket. To use this operation, you\n must have the s3:PutBucketOwnershipControls permission. For more information\n about Amazon S3 permissions, see Specifying Permissions in a\n Policy.

\n

For information about Amazon S3 Object Ownership, see Using Object Ownership.

\n

The following operations are related to\n DeleteBucketOwnershipControls:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Removes OwnershipControls for an Amazon S3 bucket. To use this operation, you\n must have the s3:PutBucketOwnershipControls permission. For more information\n about Amazon S3 permissions, see Specifying Permissions in a\n Policy.

\n

For information about Amazon S3 Object Ownership, see Using Object Ownership.

\n

The following operations are related to\n DeleteBucketOwnershipControls:

\n ", "smithy.api#http": { "method": "DELETE", "uri": "/{Bucket}?ownershipControls", @@ -20486,7 +20493,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "

Deletes the\n policy of a specified bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

If you are using an identity other than the\n root user of the Amazon Web Services account that owns the bucket, the calling identity must both have the\n DeleteBucketPolicy permissions on the specified bucket and belong to the\n bucket owner's account in order to use this operation.

\n

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403\n Access Denied error. If you have the correct permissions, but you're not using an\n identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not\n Allowed error.

\n \n

To ensure that bucket owners don't inadvertently lock themselves out of their own\n buckets, the root principal in a bucket owner's Amazon Web Services account can perform the\n GetBucketPolicy, PutBucketPolicy, and\n DeleteBucketPolicy API actions, even if their bucket policy explicitly\n denies the root principal's access. Bucket owner root principals can only be blocked\n from performing these API actions by VPC endpoint policies and Amazon Web Services Organizations\n policies.

\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The s3:DeleteBucketPolicy permission is required in a policy. \n For more information about general purpose buckets bucket policies, see Using Bucket Policies and User\n Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation, you must have the s3express:DeleteBucketPolicy permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteBucketPolicy\n

\n ", + "smithy.api#documentation": "

Deletes the policy of a specified bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

If you are using an identity other than the root user of the Amazon Web Services account that\n owns the bucket, the calling identity must both have the\n DeleteBucketPolicy permissions on the specified bucket and belong\n to the bucket owner's account in order to use this operation.

\n

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a\n 403 Access Denied error. If you have the correct permissions, but\n you're not using an identity that belongs to the bucket owner's account, Amazon S3\n returns a 405 Method Not Allowed error.

\n \n

To ensure that bucket owners don't inadvertently lock themselves out of\n their own buckets, the root principal in a bucket owner's Amazon Web Services account can\n perform the GetBucketPolicy, PutBucketPolicy, and\n DeleteBucketPolicy API actions, even if their bucket policy\n explicitly denies the root principal's access. Bucket owner root principals can\n only be blocked from performing these API actions by VPC endpoint policies and\n Amazon Web Services Organizations policies.

\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:DeleteBucketPolicy permission is required in a policy.\n For more information about general purpose buckets bucket policies, see Using Bucket Policies and User Policies in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions -\n To grant access to this API operation, you must have the\n s3express:DeleteBucketPolicy permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteBucketPolicy\n

\n ", "smithy.api#examples": [ { "title": "To delete bucket policy", @@ -20543,7 +20550,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Deletes the replication configuration from the bucket.

\n

To use this operation, you must have permissions to perform the\n s3:PutReplicationConfiguration action. The bucket owner has these\n permissions by default and can grant it to others. For more information about permissions,\n see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n \n

It can take a while for the deletion of a replication configuration to fully\n propagate.

\n
\n

For information about replication configuration, see Replication in the\n Amazon S3 User Guide.

\n

The following operations are related to DeleteBucketReplication:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes the replication configuration from the bucket.

\n

To use this operation, you must have permissions to perform the\n s3:PutReplicationConfiguration action. The bucket owner has these\n permissions by default and can grant it to others. For more information about permissions,\n see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n \n

It can take a while for the deletion of a replication configuration to fully\n propagate.

\n
\n

For information about replication configuration, see Replication in the\n Amazon S3 User Guide.

\n

The following operations are related to DeleteBucketReplication:

\n ", "smithy.api#examples": [ { "title": "To delete bucket replication configuration", @@ -20626,7 +20633,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Deletes the tags from the bucket.

\n

To use this operation, you must have permission to perform the\n s3:PutBucketTagging action. By default, the bucket owner has this\n permission and can grant this permission to others.

\n

The following operations are related to DeleteBucketTagging:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes the tags from the bucket.

\n

To use this operation, you must have permission to perform the\n s3:PutBucketTagging action. By default, the bucket owner has this\n permission and can grant this permission to others.

\n

The following operations are related to DeleteBucketTagging:

\n ", "smithy.api#examples": [ { "title": "To delete bucket tags", @@ -20683,7 +20690,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

This action removes the website configuration for a bucket. Amazon S3 returns a 200\n OK response upon successfully deleting a website configuration on the specified\n bucket. You will get a 200 OK response if the website configuration you are\n trying to delete does not exist on the bucket. Amazon S3 returns a 404 response if\n the bucket specified in the request does not exist.

\n

This DELETE action requires the S3:DeleteBucketWebsite permission. By\n default, only the bucket owner can delete the website configuration attached to a bucket.\n However, bucket owners can grant other users permission to delete the website configuration\n by writing a bucket policy granting them the S3:DeleteBucketWebsite\n permission.

\n

For more information about hosting websites, see Hosting Websites on Amazon S3.

\n

The following operations are related to DeleteBucketWebsite:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

This action removes the website configuration for a bucket. Amazon S3 returns a 200\n OK response upon successfully deleting a website configuration on the specified\n bucket. You will get a 200 OK response if the website configuration you are\n trying to delete does not exist on the bucket. Amazon S3 returns a 404 response if\n the bucket specified in the request does not exist.

\n

This DELETE action requires the S3:DeleteBucketWebsite permission. By\n default, only the bucket owner can delete the website configuration attached to a bucket.\n However, bucket owners can grant other users permission to delete the website configuration\n by writing a bucket policy granting them the S3:DeleteBucketWebsite\n permission.

\n

For more information about hosting websites, see Hosting Websites on Amazon S3.

\n

The following operations are related to DeleteBucketWebsite:

\n ", "smithy.api#examples": [ { "title": "To delete bucket website configuration", @@ -20854,7 +20861,7 @@ "DeleteMarker": { "target": "com.amazonaws.s3#DeleteMarker", "traits": { - "smithy.api#documentation": "

Indicates whether the specified object version that was permanently deleted was (true) or was\n not (false) a delete marker before deletion. In a simple DELETE, this header indicates whether (true) or\n not (false) the current version of the object is a delete marker.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

Indicates whether the specified object version that was permanently deleted was (true)\n or was not (false) a delete marker before deletion. In a simple DELETE, this header\n indicates whether (true) or not (false) the current version of the object is a delete\n marker.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-delete-marker" } }, @@ -20882,7 +20889,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The bucket name of the bucket containing the object.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The bucket name of the bucket containing the object.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -20934,6 +20941,27 @@ "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } + }, + "IfMatch": { + "target": "com.amazonaws.s3#IfMatch", + "traits": { + "smithy.api#documentation": "

The If-Match header field makes the request method conditional on ETags. If the ETag value does not match, the operation returns\n a 412 Precondition Failed error. If the ETag matches or if the object doesn't exist, the operation will return a 204 Success (No \n Content) response.

\n

For more information about conditional requests, see RFC 7232.

\n \n

This functionality is only supported for directory buckets.

\n
", + "smithy.api#httpHeader": "If-Match" + } + }, + "IfMatchLastModifiedTime": { + "target": "com.amazonaws.s3#IfMatchLastModifiedTime", + "traits": { + "smithy.api#documentation": "

If present, the object is deleted only if its modification times matches the provided\n Timestamp. If the Timestamp values do not match, the operation\n returns a 412 Precondition Failed error. If the Timestamp matches\n or if the object doesn’t exist, the operation returns a 204 Success (No\n Content) response.

\n \n

This functionality is only supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-if-match-last-modified-time" + } + }, + "IfMatchSize": { + "target": "com.amazonaws.s3#IfMatchSize", + "traits": { + "smithy.api#documentation": "

If present, the object is deleted only if its size matches the provided size in bytes. If the Size value does not match, the operation returns a 412 Precondition Failed error. If the Size matches or if the object doesn’t exist, \n the operation returns a 204 Success (No Content) response.

\n \n

This functionality is only supported for directory buckets.

\n
\n \n

You can use the If-Match, x-amz-if-match-last-modified-time and x-amz-if-match-size \n conditional headers in conjunction with each-other or individually.

\n
", + "smithy.api#httpHeader": "x-amz-if-match-size" + } } }, "traits": { @@ -20949,7 +20977,7 @@ "target": "com.amazonaws.s3#DeleteObjectTaggingOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Removes the entire tag set from the specified object. For more information about\n managing object tags, see Object Tagging.

\n

To use this operation, you must have permission to perform the\n s3:DeleteObjectTagging action.

\n

To delete tags of a specific object version, add the versionId query\n parameter in the request. You will need permission for the\n s3:DeleteObjectVersionTagging action.

\n

The following operations are related to DeleteObjectTagging:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Removes the entire tag set from the specified object. For more information about\n managing object tags, see Object Tagging.

\n

To use this operation, you must have permission to perform the\n s3:DeleteObjectTagging action.

\n

To delete tags of a specific object version, add the versionId query\n parameter in the request. You will need permission for the\n s3:DeleteObjectVersionTagging action.

\n

The following operations are related to DeleteObjectTagging:

\n ", "smithy.api#examples": [ { "title": "To remove tag set from an object", @@ -21051,7 +21079,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "

This operation enables you to delete multiple objects from a bucket using a single HTTP\n request. If you know the object keys that you want to delete, then this operation provides a\n suitable alternative to sending individual delete requests, reducing per-request\n overhead.

\n

The request can contain a list of up to 1000 keys that you want to delete. In the XML, you\n provide the object key names, and optionally, version IDs if you want to delete a specific\n version of the object from a versioning-enabled bucket. For each key, Amazon S3 performs a\n delete operation and returns the result of that delete, success or failure, in the response.\n Note that if the object specified in the request is not found, Amazon S3 returns the result as\n deleted.

\n \n \n \n

The operation supports two modes for the response: verbose and quiet. By default, the\n operation uses verbose mode in which the response includes the result of deletion of each key\n in your request. In quiet mode the response includes only keys where the delete operation \n encountered an error. For a successful deletion in a quiet mode, the operation does not return any information\n about the delete in the response body.

\n

When performing this action on an MFA Delete enabled bucket, that attempts to delete any\n versioned objects, you must include an MFA token. If you do not provide one, the entire\n request will fail, even if there are non-versioned objects you are trying to delete. If you\n provide an invalid token, whether there are versioned keys in the request or not, the\n entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA\n Delete in the Amazon S3\n User Guide.

\n \n

\n Directory buckets - MFA delete is not supported by directory buckets.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The following permissions are required in your policies when your \n DeleteObjects request includes specific headers.

    \n
      \n
    • \n

      \n \n s3:DeleteObject\n - To delete an object from a bucket, you must always specify the s3:DeleteObject permission.

      \n
    • \n
    • \n

      \n \n s3:DeleteObjectVersion\n - To delete a specific version of an object from a versioning-enabled bucket, you must specify the s3:DeleteObjectVersion permission.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Content-MD5 request header
\n
\n
    \n
  • \n

    \n General purpose bucket - The Content-MD5 request header is required for all Multi-Object Delete requests. Amazon S3\n uses the header value to ensure that your request body has not been altered in\n transit.

    \n
  • \n
  • \n

    \n Directory bucket - The Content-MD5 request header or a additional checksum request header \n (including x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-sha1, or \n x-amz-checksum-sha256) is required for all Multi-Object Delete requests.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteObjects:

\n ", + "smithy.api#documentation": "

This operation enables you to delete multiple objects from a bucket using a single HTTP\n request. If you know the object keys that you want to delete, then this operation provides\n a suitable alternative to sending individual delete requests, reducing per-request\n overhead.

\n

The request can contain a list of up to 1000 keys that you want to delete. In the XML,\n you provide the object key names, and optionally, version IDs if you want to delete a\n specific version of the object from a versioning-enabled bucket. For each key, Amazon S3\n performs a delete operation and returns the result of that delete, success or failure, in\n the response. Note that if the object specified in the request is not found, Amazon S3 returns\n the result as deleted.

\n \n \n \n

The operation supports two modes for the response: verbose and quiet. By default, the\n operation uses verbose mode in which the response includes the result of deletion of each\n key in your request. In quiet mode the response includes only keys where the delete\n operation encountered an error. For a successful deletion in a quiet mode, the operation\n does not return any information about the delete in the response body.

\n

When performing this action on an MFA Delete enabled bucket, that attempts to delete any\n versioned objects, you must include an MFA token. If you do not provide one, the entire\n request will fail, even if there are non-versioned objects you are trying to delete. If you\n provide an invalid token, whether there are versioned keys in the request or not, the\n entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA\n Delete in the Amazon S3 User Guide.

\n \n

\n Directory buckets -\n MFA delete is not supported by directory buckets.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n following permissions are required in your policies when your\n DeleteObjects request includes specific headers.

    \n
      \n
    • \n

      \n \n s3:DeleteObject\n \n - To delete an object from a bucket, you must always specify\n the s3:DeleteObject permission.

      \n
    • \n
    • \n

      \n \n s3:DeleteObjectVersion\n - To delete a specific version of an object from a\n versioning-enabled bucket, you must specify the\n s3:DeleteObjectVersion permission.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Content-MD5 request header
\n
\n
    \n
  • \n

    \n General purpose bucket - The Content-MD5\n request header is required for all Multi-Object Delete requests. Amazon S3 uses\n the header value to ensure that your request body has not been altered in\n transit.

    \n
  • \n
  • \n

    \n Directory bucket - The\n Content-MD5 request header or a additional checksum request header\n (including x-amz-checksum-crc32,\n x-amz-checksum-crc32c, x-amz-checksum-sha1, or\n x-amz-checksum-sha256) is required for all Multi-Object\n Delete requests.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteObjects:

\n ", "smithy.api#examples": [ { "title": "To delete multiple object versions from a versioned bucket", @@ -21161,7 +21189,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The bucket name containing the objects to delete.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The bucket name containing the objects to delete.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -21181,7 +21209,7 @@ "MFA": { "target": "com.amazonaws.s3#MFA", "traits": { - "smithy.api#documentation": "

The concatenation of the authentication device's serial number, a space, and the value\n that is displayed on your authentication device. Required to permanently delete a versioned\n object if versioning is configured with MFA delete enabled.

\n

When performing the DeleteObjects operation on an MFA delete enabled bucket, which attempts to delete the specified \n versioned objects, you must include an MFA token. If you don't provide an MFA token, the entire\n request will fail, even if there are non-versioned objects that you are trying to delete. If you\n provide an invalid token, whether there are versioned object keys in the request or not, the\n entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA\n Delete in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

The concatenation of the authentication device's serial number, a space, and the value\n that is displayed on your authentication device. Required to permanently delete a versioned\n object if versioning is configured with MFA delete enabled.

\n

When performing the DeleteObjects operation on an MFA delete enabled\n bucket, which attempts to delete the specified versioned objects, you must include an MFA\n token. If you don't provide an MFA token, the entire request will fail, even if there are\n non-versioned objects that you are trying to delete. If you provide an invalid token,\n whether there are versioned object keys in the request or not, the entire Multi-Object\n Delete request will fail. For information about MFA Delete, see MFA\n Delete in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-mfa" } }, @@ -21226,7 +21254,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use this\n operation, you must have the s3:PutBucketPublicAccessBlock permission. For\n more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

The following operations are related to DeletePublicAccessBlock:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use this\n operation, you must have the s3:PutBucketPublicAccessBlock permission. For\n more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

The following operations are related to DeletePublicAccessBlock:

\n ", "smithy.api#http": { "method": "DELETE", "uri": "/{Bucket}?publicAccessBlock", @@ -21283,7 +21311,7 @@ "DeleteMarker": { "target": "com.amazonaws.s3#DeleteMarker", "traits": { - "smithy.api#documentation": "

Indicates whether the specified object version that was permanently deleted was (true) or was\n not (false) a delete marker before deletion. In a simple DELETE, this header indicates whether (true) or\n not (false) the current version of the object is a delete marker.

\n \n

This functionality is not supported for directory buckets.

\n
" + "smithy.api#documentation": "

Indicates whether the specified object version that was permanently deleted was (true)\n or was not (false) a delete marker before deletion. In a simple DELETE, this header\n indicates whether (true) or not (false) the current version of the object is a delete\n marker.

\n \n

This functionality is not supported for directory buckets.

\n
" } }, "DeleteMarkerVersionId": { @@ -21392,7 +21420,7 @@ } }, "traits": { - "smithy.api#documentation": "

Encoding type used by Amazon S3 to encode the object keys in the response.\n Responses are encoded only in UTF-8. An object key can contain any Unicode character.\n However, the XML 1.0 parser can't parse certain characters, such as characters with an\n ASCII value from 0 to 10. For characters that aren't supported in XML 1.0, you can add this\n parameter to request that Amazon S3 encode the keys in the response. For more information about\n characters to avoid in object key names, see Object key naming\n guidelines.

\n \n

When using the URL encoding type, non-ASCII characters that are used in an object's\n key name will be percent-encoded according to UTF-8 code values. For example, the object\n test_file(3).png will appear as\n test_file%283%29.png.

\n
" + "smithy.api#documentation": "

Encoding type used by Amazon S3 to encode the object keys in the response.\n Responses are encoded only in UTF-8. An object key can contain any Unicode character.\n However, the XML 1.0 parser can't parse certain characters, such as characters with an\n ASCII value from 0 to 10. For characters that aren't supported in XML 1.0, you can add this\n parameter to request that Amazon S3 encode the keys in the response. For more information about\n characters to avoid in object key names, see Object key naming\n guidelines.

\n \n

When using the URL encoding type, non-ASCII characters that are used in an object's\n key name will be percent-encoded according to UTF-8 code values. For example, the object\n test_file(3).png will appear as\n test_file%283%29.png.

\n
" } }, "com.amazonaws.s3#Encryption": { @@ -21433,7 +21461,16 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies encryption-related information for an Amazon S3 bucket that is a destination for\n replicated objects.

\n \n

If you're specifying a customer managed KMS key, we recommend using a fully qualified\n KMS key ARN. If you use a KMS key alias instead, then KMS resolves the key within the\n requester’s account. This behavior can result in data that's encrypted with a KMS key\n that belongs to the requester, and not the bucket owner.

\n
" + "smithy.api#documentation": "

Specifies encryption-related information for an Amazon S3 bucket that is a destination for\n replicated objects.

\n \n

If you're specifying a customer managed KMS key, we recommend using a fully\n qualified KMS key ARN. If you use a KMS key alias instead, then KMS resolves the\n key within the requester’s account. This behavior can result in data that's encrypted\n with a KMS key that belongs to the requester, and not the bucket owner.

\n
" + } + }, + "com.amazonaws.s3#EncryptionTypeMismatch": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

\n The existing object was created with a different encryption type. \n Subsequent write requests must include the appropriate encryption \n parameters in the request or while creating the session.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 } }, "com.amazonaws.s3#End": { @@ -21700,7 +21737,7 @@ } }, "traits": { - "smithy.api#documentation": "

Optional configuration to replicate existing source bucket objects. \n

\n \n

This parameter is no longer supported. To replicate existing objects, see Replicating existing objects with S3 Batch Replication in the Amazon S3 User Guide.

\n
" + "smithy.api#documentation": "

Optional configuration to replicate existing source bucket objects.

\n \n

This parameter is no longer supported. To replicate existing objects, see Replicating existing objects with S3 Batch Replication in the\n Amazon S3 User Guide.

\n
" } }, "com.amazonaws.s3#ExistingObjectReplicationStatus": { @@ -21815,7 +21852,7 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies the Amazon S3 object key name to filter on. An object key name is the name assigned to an object in your Amazon S3 bucket. You specify whether to filter on the suffix or prefix of the object key name. A prefix is a specific string of characters at the beginning of an object key name, which you can use to organize objects. For example, you can start the key names of related objects with a prefix, such as 2023- or engineering/. Then, you can use FilterRule to find objects in a bucket with key names that have the same prefix. A suffix is similar to a prefix, but it is at the end of the object key name instead of at the beginning.

" + "smithy.api#documentation": "

Specifies the Amazon S3 object key name to filter on. An object key name is the name assigned\n to an object in your Amazon S3 bucket. You specify whether to filter on the suffix or prefix of\n the object key name. A prefix is a specific string of characters at the beginning of an\n object key name, which you can use to organize objects. For example, you can start the key\n names of related objects with a prefix, such as 2023- or\n engineering/. Then, you can use FilterRule to find objects in\n a bucket with key names that have the same prefix. A suffix is similar to a prefix, but it\n is at the end of the object key name instead of at the beginning.

" } }, "com.amazonaws.s3#FilterRuleList": { @@ -21856,7 +21893,7 @@ "target": "com.amazonaws.s3#GetBucketAccelerateConfigurationOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

This implementation of the GET action uses the accelerate subresource to\n return the Transfer Acceleration state of a bucket, which is either Enabled or\n Suspended. Amazon S3 Transfer Acceleration is a bucket-level feature that\n enables you to perform faster data transfers to and from Amazon S3.

\n

To use this operation, you must have permission to perform the\n s3:GetAccelerateConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to your Amazon S3 Resources in the\n Amazon S3 User Guide.

\n

You set the Transfer Acceleration state of an existing bucket to Enabled or\n Suspended by using the PutBucketAccelerateConfiguration operation.

\n

A GET accelerate request does not return a state value for a bucket that\n has no transfer acceleration state. A bucket has no Transfer Acceleration state if a state\n has never been set on the bucket.

\n

For more information about transfer acceleration, see Transfer Acceleration in\n the Amazon S3 User Guide.

\n

The following operations are related to\n GetBucketAccelerateConfiguration:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

This implementation of the GET action uses the accelerate subresource to\n return the Transfer Acceleration state of a bucket, which is either Enabled or\n Suspended. Amazon S3 Transfer Acceleration is a bucket-level feature that\n enables you to perform faster data transfers to and from Amazon S3.

\n

To use this operation, you must have permission to perform the\n s3:GetAccelerateConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to your Amazon S3 Resources in the\n Amazon S3 User Guide.

\n

You set the Transfer Acceleration state of an existing bucket to Enabled or\n Suspended by using the PutBucketAccelerateConfiguration operation.

\n

A GET accelerate request does not return a state value for a bucket that\n has no transfer acceleration state. A bucket has no Transfer Acceleration state if a state\n has never been set on the bucket.

\n

For more information about transfer acceleration, see Transfer Acceleration in\n the Amazon S3 User Guide.

\n

The following operations are related to\n GetBucketAccelerateConfiguration:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?accelerate", @@ -21931,7 +21968,7 @@ "target": "com.amazonaws.s3#GetBucketAclOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

This implementation of the GET action uses the acl subresource\n to return the access control list (ACL) of a bucket. To use GET to return the\n ACL of the bucket, you must have the READ_ACP access to the bucket. If\n READ_ACP permission is granted to the anonymous user, you can return the\n ACL of the bucket without using an authorization header.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership,\n requests to read ACLs are still supported and return the\n bucket-owner-full-control ACL with the owner being the account that\n created the bucket. For more information, see Controlling object\n ownership and disabling ACLs in the\n Amazon S3 User Guide.

\n
\n

The following operations are related to GetBucketAcl:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

This implementation of the GET action uses the acl subresource\n to return the access control list (ACL) of a bucket. To use GET to return the\n ACL of the bucket, you must have the READ_ACP access to the bucket. If\n READ_ACP permission is granted to the anonymous user, you can return the\n ACL of the bucket without using an authorization header.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership,\n requests to read ACLs are still supported and return the\n bucket-owner-full-control ACL with the owner being the account that\n created the bucket. For more information, see Controlling object\n ownership and disabling ACLs in the\n Amazon S3 User Guide.

\n
\n

The following operations are related to GetBucketAcl:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?acl", @@ -22001,7 +22038,7 @@ "target": "com.amazonaws.s3#GetBucketAnalyticsConfigurationOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

This implementation of the GET action returns an analytics configuration (identified by\n the analytics configuration ID) from the bucket.

\n

To use this operation, you must have permissions to perform the\n s3:GetAnalyticsConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources in the\n Amazon S3 User Guide.

\n

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class\n Analysis in the Amazon S3 User Guide.

\n

The following operations are related to\n GetBucketAnalyticsConfiguration:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

This implementation of the GET action returns an analytics configuration (identified by\n the analytics configuration ID) from the bucket.

\n

To use this operation, you must have permissions to perform the\n s3:GetAnalyticsConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources in the\n Amazon S3 User Guide.

\n

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class\n Analysis in the Amazon S3 User Guide.

\n

The following operations are related to\n GetBucketAnalyticsConfiguration:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?analytics&x-id=GetBucketAnalyticsConfiguration", @@ -22072,7 +22109,7 @@ "target": "com.amazonaws.s3#GetBucketCorsOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the\n bucket.

\n

To use this operation, you must have permission to perform the\n s3:GetBucketCORS action. By default, the bucket owner has this permission\n and can grant it to others.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n

For more information about CORS, see Enabling Cross-Origin Resource\n Sharing.

\n

The following operations are related to GetBucketCors:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the\n bucket.

\n

To use this operation, you must have permission to perform the\n s3:GetBucketCORS action. By default, the bucket owner has this permission\n and can grant it to others.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n

For more information about CORS, see Enabling Cross-Origin Resource\n Sharing.

\n

The following operations are related to GetBucketCors:

\n ", "smithy.api#examples": [ { "title": "To get cors configuration set on a bucket", @@ -22162,7 +22199,7 @@ "target": "com.amazonaws.s3#GetBucketEncryptionOutput" }, "traits": { - "smithy.api#documentation": "

Returns the default encryption configuration for an Amazon S3 bucket. By default, all buckets\n have a default encryption configuration that uses server-side encryption with Amazon S3 managed\n keys (SSE-S3).

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The s3:GetEncryptionConfiguration permission is required in a policy. \n The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation, you must have the s3express:GetEncryptionConfiguration permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to GetBucketEncryption:

\n ", + "smithy.api#documentation": "

Returns the default encryption configuration for an Amazon S3 bucket. By default, all buckets\n have a default encryption configuration that uses server-side encryption with Amazon S3 managed\n keys (SSE-S3).

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:GetEncryptionConfiguration permission is required in a\n policy. The bucket owner has this permission by default. The bucket owner\n can grant this permission to others. For more information about permissions,\n see Permissions Related to Bucket Operations and Managing Access\n Permissions to Your Amazon S3 Resources.

    \n
  • \n
  • \n

    \n Directory bucket permissions -\n To grant access to this API operation, you must have the\n s3express:GetEncryptionConfiguration permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to GetBucketEncryption:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?encryption", @@ -22224,7 +22261,7 @@ "target": "com.amazonaws.s3#GetBucketIntelligentTieringConfigurationOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Gets the S3 Intelligent-Tiering configuration from the specified bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to GetBucketIntelligentTieringConfiguration include:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Gets the S3 Intelligent-Tiering configuration from the specified bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to GetBucketIntelligentTieringConfiguration include:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?intelligent-tiering&x-id=GetBucketIntelligentTieringConfiguration", @@ -22288,7 +22325,7 @@ "target": "com.amazonaws.s3#GetBucketInventoryConfigurationOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns an inventory configuration (identified by the inventory configuration ID) from\n the bucket.

\n

To use this operation, you must have permissions to perform the\n s3:GetInventoryConfiguration action. The bucket owner has this permission\n by default and can grant this permission to others. For more information about permissions,\n see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

\n

The following operations are related to\n GetBucketInventoryConfiguration:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns an inventory configuration (identified by the inventory configuration ID) from\n the bucket.

\n

To use this operation, you must have permissions to perform the\n s3:GetInventoryConfiguration action. The bucket owner has this permission\n by default and can grant this permission to others. For more information about permissions,\n see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

\n

The following operations are related to\n GetBucketInventoryConfiguration:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?inventory&x-id=GetBucketInventoryConfiguration", @@ -22359,7 +22396,7 @@ "target": "com.amazonaws.s3#GetBucketLifecycleConfigurationOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n \n

Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, object size, or any combination of these. Accordingly, this section describes the latest API. The previous version of the API supported filtering based only on an object key name prefix, which is supported for backward compatibility.\n For the related API description, see GetBucketLifecycle. Accordingly,\n this section describes the latest API. The response describes the new filter element\n that you can use to specify a filter to select a subset of objects to which the rule\n applies. If you are using a previous version of the lifecycle configuration, it still\n works. For the earlier action,

\n
\n

Returns the lifecycle configuration information set on the bucket. For information about\n lifecycle configuration, see Object Lifecycle\n Management.

\n

To use this operation, you must have permission to perform the\n s3:GetLifecycleConfiguration action. The bucket owner has this permission,\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

\n GetBucketLifecycleConfiguration has the following special error:

\n \n

The following operations are related to\n GetBucketLifecycleConfiguration:

\n ", + "smithy.api#documentation": "

Returns the lifecycle configuration information set on the bucket. For information about\n lifecycle configuration, see Object Lifecycle\n Management.

\n

Bucket lifecycle configuration now supports specifying a lifecycle rule using an object\n key name prefix, one or more object tags, object size, or any combination of these.\n Accordingly, this section describes the latest API, which is compatible with the new\n functionality. The previous version of the API supported filtering based only on an object\n key name prefix, which is supported for general purpose buckets for backward compatibility.\n For the related API description, see GetBucketLifecycle.

\n \n

Lifecyle configurations for directory buckets only support expiring objects and\n cancelling multipart uploads. Expiring of versioned objects, transitions and tag filters\n are not supported.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - By\n default, all Amazon S3 resources are private, including buckets, objects, and\n related subresources (for example, lifecycle configuration and website\n configuration). Only the resource owner (that is, the Amazon Web Services account that\n created it) can access the resource. The resource owner can optionally grant\n access permissions to others by writing an access policy. For this\n operation, a user must have the s3:GetLifecycleConfiguration\n permission.

    \n

    For more information about permissions, see Managing Access\n Permissions to Your Amazon S3 Resources.

    \n
  • \n
\n
    \n
  • \n

    \n Directory bucket permissions -\n You must have the s3express:GetLifecycleConfiguration\n permission in an IAM identity-based policy to use this operation.\n Cross-account access to this API operation isn't supported. The resource\n owner can optionally grant access permissions to others by creating a role\n or user for them as long as they are within the same account as the owner\n and resource.

    \n

    For more information about directory bucket policies and permissions, see\n Authorizing Regional endpoint APIs with IAM in the\n Amazon S3 User Guide.

    \n \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

    \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host\n header syntax is\n s3express-control.region.amazonaws.com.

\n
\n
\n

\n GetBucketLifecycleConfiguration has the following special error:

\n \n

The following operations are related to\n GetBucketLifecycleConfiguration:

\n ", "smithy.api#examples": [ { "title": "To get lifecycle configuration on a bucket", @@ -22410,7 +22447,7 @@ "TransitionDefaultMinimumObjectSize": { "target": "com.amazonaws.s3#TransitionDefaultMinimumObjectSize", "traits": { - "smithy.api#documentation": "

Indicates which default minimum object size behavior is applied to the lifecycle configuration.

\n \n

To customize the minimum object size for any transition you can add a filter that specifies a custom ObjectSizeGreaterThan or ObjectSizeLessThan in the body of your transition rule. Custom filters always take precedence over the default transition behavior.

", + "smithy.api#documentation": "

Indicates which default minimum object size behavior is applied to the lifecycle\n configuration.

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
\n \n

To customize the minimum object size for any transition you can add a filter that\n specifies a custom ObjectSizeGreaterThan or ObjectSizeLessThan in\n the body of your transition rule. Custom filters always take precedence over the default\n transition behavior.

", "smithy.api#httpHeader": "x-amz-transition-default-minimum-object-size" } } @@ -22437,7 +22474,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -22456,7 +22493,7 @@ }, "traits": { "aws.customizations#s3UnwrappedXmlOutput": {}, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the Region the bucket resides in. You set the bucket's Region using the\n LocationConstraint request parameter in a CreateBucket\n request. For more information, see CreateBucket.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n \n

We recommend that you use HeadBucket to return the Region\n that a bucket resides in. For backward compatibility, Amazon S3 continues to support\n GetBucketLocation.

\n
\n

The following operations are related to GetBucketLocation:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the Region the bucket resides in. You set the bucket's Region using the\n LocationConstraint request parameter in a CreateBucket\n request. For more information, see CreateBucket.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n \n

We recommend that you use HeadBucket to return the Region\n that a bucket resides in. For backward compatibility, Amazon S3 continues to support\n GetBucketLocation.

\n
\n

The following operations are related to GetBucketLocation:

\n ", "smithy.api#examples": [ { "title": "To get bucket location", @@ -22531,7 +22568,7 @@ "target": "com.amazonaws.s3#GetBucketLoggingOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the logging status of a bucket and the permissions users have to view and modify\n that status.

\n

The following operations are related to GetBucketLogging:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the logging status of a bucket and the permissions users have to view and modify\n that status.

\n

The following operations are related to GetBucketLogging:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?logging", @@ -22591,7 +22628,7 @@ "target": "com.amazonaws.s3#GetBucketMetricsConfigurationOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Gets a metrics configuration (specified by the metrics configuration ID) from the\n bucket. Note that this doesn't include the daily storage metrics.

\n

To use this operation, you must have permissions to perform the\n s3:GetMetricsConfiguration action. The bucket owner has this permission by\n default. The bucket owner can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about CloudWatch request metrics for Amazon S3, see Monitoring\n Metrics with Amazon CloudWatch.

\n

The following operations are related to\n GetBucketMetricsConfiguration:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Gets a metrics configuration (specified by the metrics configuration ID) from the\n bucket. Note that this doesn't include the daily storage metrics.

\n

To use this operation, you must have permissions to perform the\n s3:GetMetricsConfiguration action. The bucket owner has this permission by\n default. The bucket owner can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about CloudWatch request metrics for Amazon S3, see Monitoring\n Metrics with Amazon CloudWatch.

\n

The following operations are related to\n GetBucketMetricsConfiguration:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?metrics&x-id=GetBucketMetricsConfiguration", @@ -22662,7 +22699,7 @@ "target": "com.amazonaws.s3#NotificationConfiguration" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the notification configuration of a bucket.

\n

If notifications are not enabled on the bucket, the action returns an empty\n NotificationConfiguration element.

\n

By default, you must be the bucket owner to read the notification configuration of a\n bucket. However, the bucket owner can use a bucket policy to grant permission to other\n users to read this configuration with the s3:GetBucketNotification\n permission.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n

For more information about setting and reading the notification configuration on a\n bucket, see Setting Up Notification of Bucket Events. For more information about bucket\n policies, see Using Bucket Policies.

\n

The following action is related to GetBucketNotification:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the notification configuration of a bucket.

\n

If notifications are not enabled on the bucket, the action returns an empty\n NotificationConfiguration element.

\n

By default, you must be the bucket owner to read the notification configuration of a\n bucket. However, the bucket owner can use a bucket policy to grant permission to other\n users to read this configuration with the s3:GetBucketNotification\n permission.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n

For more information about setting and reading the notification configuration on a\n bucket, see Setting Up Notification of Bucket Events. For more information about bucket\n policies, see Using Bucket Policies.

\n

The following action is related to GetBucketNotification:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?notification", @@ -22710,7 +22747,7 @@ "target": "com.amazonaws.s3#GetBucketOwnershipControlsOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you\n must have the s3:GetBucketOwnershipControls permission. For more information\n about Amazon S3 permissions, see Specifying permissions in a\n policy.

\n

For information about Amazon S3 Object Ownership, see Using Object\n Ownership.

\n

The following operations are related to GetBucketOwnershipControls:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you\n must have the s3:GetBucketOwnershipControls permission. For more information\n about Amazon S3 permissions, see Specifying permissions in a\n policy.

\n

For information about Amazon S3 Object Ownership, see Using Object\n Ownership.

\n

The following operations are related to GetBucketOwnershipControls:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?ownershipControls", @@ -22773,7 +22810,7 @@ "target": "com.amazonaws.s3#GetBucketPolicyOutput" }, "traits": { - "smithy.api#documentation": "

Returns the policy of a specified bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

If you are using an identity other than the\n root user of the Amazon Web Services account that owns the bucket, the calling identity must both have the\n GetBucketPolicy permissions on the specified bucket and belong to the\n bucket owner's account in order to use this operation.

\n

If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403\n Access Denied error. If you have the correct permissions, but you're not using an\n identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not\n Allowed error.

\n \n

To ensure that bucket owners don't inadvertently lock themselves out of their own\n buckets, the root principal in a bucket owner's Amazon Web Services account can perform the\n GetBucketPolicy, PutBucketPolicy, and\n DeleteBucketPolicy API actions, even if their bucket policy explicitly\n denies the root principal's access. Bucket owner root principals can only be blocked\n from performing these API actions by VPC endpoint policies and Amazon Web Services Organizations\n policies.

\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The s3:GetBucketPolicy permission is required in a policy. \n For more information about general purpose buckets bucket policies, see Using Bucket Policies and User\n Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation, you must have the s3express:GetBucketPolicy permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
Example bucket policies
\n
\n

\n General purpose buckets example bucket policies - See Bucket policy examples in the Amazon S3 User Guide.

\n

\n Directory bucket example bucket policies - See Example bucket policies for S3 Express One Zone in the Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following action is related to GetBucketPolicy:

\n ", + "smithy.api#documentation": "

Returns the policy of a specified bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

If you are using an identity other than the root user of the Amazon Web Services account that\n owns the bucket, the calling identity must both have the\n GetBucketPolicy permissions on the specified bucket and belong to\n the bucket owner's account in order to use this operation.

\n

If you don't have GetBucketPolicy permissions, Amazon S3 returns a\n 403 Access Denied error. If you have the correct permissions, but\n you're not using an identity that belongs to the bucket owner's account, Amazon S3\n returns a 405 Method Not Allowed error.

\n \n

To ensure that bucket owners don't inadvertently lock themselves out of\n their own buckets, the root principal in a bucket owner's Amazon Web Services account can\n perform the GetBucketPolicy, PutBucketPolicy, and\n DeleteBucketPolicy API actions, even if their bucket policy\n explicitly denies the root principal's access. Bucket owner root principals can\n only be blocked from performing these API actions by VPC endpoint policies and\n Amazon Web Services Organizations policies.

\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:GetBucketPolicy permission is required in a policy. For\n more information about general purpose buckets bucket policies, see Using Bucket Policies and User Policies in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions -\n To grant access to this API operation, you must have the\n s3express:GetBucketPolicy permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
Example bucket policies
\n
\n

\n General purpose buckets example bucket policies\n - See Bucket policy\n examples in the Amazon S3 User Guide.

\n

\n Directory bucket example bucket policies\n - See Example bucket policies for S3 Express One Zone in the\n Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following action is related to GetBucketPolicy:

\n ", "smithy.api#examples": [ { "title": "To get bucket policy", @@ -22848,7 +22885,7 @@ "target": "com.amazonaws.s3#GetBucketPolicyStatusOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Retrieves the policy status for an Amazon S3 bucket, indicating whether the bucket is public.\n In order to use this operation, you must have the s3:GetBucketPolicyStatus\n permission. For more information about Amazon S3 permissions, see Specifying Permissions in a\n Policy.

\n

For more information about when Amazon S3 considers a bucket public, see The Meaning of \"Public\".

\n

The following operations are related to GetBucketPolicyStatus:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Retrieves the policy status for an Amazon S3 bucket, indicating whether the bucket is public.\n In order to use this operation, you must have the s3:GetBucketPolicyStatus\n permission. For more information about Amazon S3 permissions, see Specifying Permissions in a\n Policy.

\n

For more information about when Amazon S3 considers a bucket public, see The Meaning of \"Public\".

\n

The following operations are related to GetBucketPolicyStatus:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?policyStatus", @@ -22911,7 +22948,7 @@ "target": "com.amazonaws.s3#GetBucketReplicationOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the replication configuration of a bucket.

\n \n

It can take a while to propagate the put or delete a replication configuration to\n all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong\n result.

\n
\n

For information about replication configuration, see Replication in the\n Amazon S3 User Guide.

\n

This action requires permissions for the s3:GetReplicationConfiguration\n action. For more information about permissions, see Using Bucket Policies and User\n Policies.

\n

If you include the Filter element in a replication configuration, you must\n also include the DeleteMarkerReplication and Priority elements.\n The response also returns those elements.

\n

For information about GetBucketReplication errors, see List of\n replication-related error codes\n

\n

The following operations are related to GetBucketReplication:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the replication configuration of a bucket.

\n \n

It can take a while to propagate the put or delete a replication configuration to\n all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong\n result.

\n
\n

For information about replication configuration, see Replication in the\n Amazon S3 User Guide.

\n

This action requires permissions for the s3:GetReplicationConfiguration\n action. For more information about permissions, see Using Bucket Policies and User\n Policies.

\n

If you include the Filter element in a replication configuration, you must\n also include the DeleteMarkerReplication and Priority elements.\n The response also returns those elements.

\n

For information about GetBucketReplication errors, see List of\n replication-related error codes\n

\n

The following operations are related to GetBucketReplication:

\n ", "smithy.api#examples": [ { "title": "To get replication configuration set on a bucket", @@ -22997,7 +23034,7 @@ "target": "com.amazonaws.s3#GetBucketRequestPaymentOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the request payment configuration of a bucket. To use this version of the\n operation, you must be the bucket owner. For more information, see Requester Pays\n Buckets.

\n

The following operations are related to GetBucketRequestPayment:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the request payment configuration of a bucket. To use this version of the\n operation, you must be the bucket owner. For more information, see Requester Pays\n Buckets.

\n

The following operations are related to GetBucketRequestPayment:

\n ", "smithy.api#examples": [ { "title": "To get bucket versioning configuration", @@ -23072,7 +23109,7 @@ "target": "com.amazonaws.s3#GetBucketTaggingOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the tag set associated with the bucket.

\n

To use this operation, you must have permission to perform the\n s3:GetBucketTagging action. By default, the bucket owner has this\n permission and can grant this permission to others.

\n

\n GetBucketTagging has the following special error:

\n \n

The following operations are related to GetBucketTagging:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the tag set associated with the bucket.

\n

To use this operation, you must have permission to perform the\n s3:GetBucketTagging action. By default, the bucket owner has this\n permission and can grant this permission to others.

\n

\n GetBucketTagging has the following special error:

\n \n

The following operations are related to GetBucketTagging:

\n ", "smithy.api#examples": [ { "title": "To get tag set associated with a bucket", @@ -23157,7 +23194,7 @@ "target": "com.amazonaws.s3#GetBucketVersioningOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the versioning state of a bucket.

\n

To retrieve the versioning state of a bucket, you must be the bucket owner.

\n

This implementation also returns the MFA Delete status of the versioning state. If the\n MFA Delete status is enabled, the bucket owner must use an authentication\n device to change the versioning state of the bucket.

\n

The following operations are related to GetBucketVersioning:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the versioning state of a bucket.

\n

To retrieve the versioning state of a bucket, you must be the bucket owner.

\n

This implementation also returns the MFA Delete status of the versioning state. If the\n MFA Delete status is enabled, the bucket owner must use an authentication\n device to change the versioning state of the bucket.

\n

The following operations are related to GetBucketVersioning:

\n ", "smithy.api#examples": [ { "title": "To get bucket versioning configuration", @@ -23240,7 +23277,7 @@ "target": "com.amazonaws.s3#GetBucketWebsiteOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the website configuration for a bucket. To host website on Amazon S3, you can\n configure a bucket as website by adding a website configuration. For more information about\n hosting websites, see Hosting Websites on Amazon S3.

\n

This GET action requires the S3:GetBucketWebsite permission. By default,\n only the bucket owner can read the bucket website configuration. However, bucket owners can\n allow other users to read the website configuration by writing a bucket policy granting\n them the S3:GetBucketWebsite permission.

\n

The following operations are related to GetBucketWebsite:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the website configuration for a bucket. To host website on Amazon S3, you can\n configure a bucket as website by adding a website configuration. For more information about\n hosting websites, see Hosting Websites on Amazon S3.

\n

This GET action requires the S3:GetBucketWebsite permission. By default,\n only the bucket owner can read the bucket website configuration. However, bucket owners can\n allow other users to read the website configuration by writing a bucket policy granting\n them the S3:GetBucketWebsite permission.

\n

The following operations are related to GetBucketWebsite:

\n ", "smithy.api#examples": [ { "title": "To get bucket website configuration", @@ -23355,7 +23392,7 @@ "SHA1" ] }, - "smithy.api#documentation": "

Retrieves an object from Amazon S3.

\n

In the GetObject request, specify the full key name for the object.

\n

\n General purpose buckets - Both the virtual-hosted-style requests and the path-style requests are supported. For a virtual hosted-style request example, if you have\n the object photos/2006/February/sample.jpg, specify the object key name as\n /photos/2006/February/sample.jpg. For a path-style request example, if you\n have the object photos/2006/February/sample.jpg in the bucket named\n examplebucket, specify the object key name as\n /examplebucket/photos/2006/February/sample.jpg. For more information about\n request types, see HTTP Host\n Header Bucket Specification in the Amazon S3 User Guide.

\n

\n Directory buckets - Only virtual-hosted-style requests are supported. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named examplebucket--use1-az5--x-s3, specify the object key name as /photos/2006/February/sample.jpg. Also, when you make requests to this API operation, your requests are sent to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - You must have the required permissions in a policy. To use GetObject, you must have the READ\n access to the object (or version). If you grant READ access to the anonymous user, the GetObject operation \n returns the object without using an authorization header. For more information, see Specifying permissions in\n a policy in the Amazon S3 User Guide.

    \n

    If you include a versionId in your request header, you must have the\n s3:GetObjectVersion permission to access a specific\n version of an object. The s3:GetObject permission is not required in this scenario.

    \n

    If you request the\n current version of an object without a specific versionId in the request header, only\n the s3:GetObject permission is required. The s3:GetObjectVersion permission is not required in this scenario.\n

    \n

    If the object that you request doesn’t exist, the error that\n Amazon S3 returns depends on whether you also have the s3:ListBucket\n permission.

    \n
      \n
    • \n

      If you have the s3:ListBucket permission on the bucket, Amazon S3\n returns an HTTP status code 404 Not Found error.

      \n
    • \n
    • \n

      If you don’t have the s3:ListBucket permission, Amazon S3 returns an\n HTTP status code 403 Access Denied error.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted using \n SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key.

    \n
  • \n
\n
\n
Storage classes
\n
\n

If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval storage class, the \n S3 Glacier Deep Archive storage class, the S3 Intelligent-Tiering Archive Access tier, or the \n S3 Intelligent-Tiering Deep Archive Access tier, before you can retrieve the object you must first restore a\n copy using RestoreObject. Otherwise, this operation returns an\n InvalidObjectState error. For information about restoring archived objects,\n see Restoring\n Archived Objects in the Amazon S3 User Guide.

\n

\n Directory buckets - For directory buckets, only the S3 Express One Zone storage class is supported to store newly created objects. \nUnsupported storage class values won't write a destination object and will respond with the HTTP status code 400 Bad Request.

\n
\n
Encryption
\n
\n

Encryption request headers, like x-amz-server-side-encryption, should not\n be sent for the GetObject requests, if your object uses server-side encryption with Amazon S3 managed encryption keys (SSE-S3), server-side encryption with Key Management Service (KMS)\n keys (SSE-KMS), or dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS). If you include the header in your GetObject requests for the object that uses \n these types of keys, you’ll get an HTTP 400 Bad Request error.

\n

\n Directory buckets - For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS. SSE-C isn't supported. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

\n
\n
Overriding response header values through the request
\n
\n

There are times when you want to override certain response header values of a\n GetObject response. For example, you might override the\n Content-Disposition response header value through your GetObject\n request.

\n

You can override values for a set of response headers. These modified response header values are included only in a successful response, that is, when the HTTP status code 200 OK is returned. \n The headers you can override using the following query parameters in the request are a subset of the headers that Amazon S3 accepts when you create an object. \n

\n

The response headers that you can override for the\n GetObject response are Cache-Control, Content-Disposition, \n Content-Encoding, Content-Language, Content-Type, and Expires.

\n

To override values for a set of response headers in the\n GetObject response, you can use the following query\n parameters in the request.

\n
    \n
  • \n

    \n response-cache-control\n

    \n
  • \n
  • \n

    \n response-content-disposition\n

    \n
  • \n
  • \n

    \n response-content-encoding\n

    \n
  • \n
  • \n

    \n response-content-language\n

    \n
  • \n
  • \n

    \n response-content-type\n

    \n
  • \n
  • \n

    \n response-expires\n

    \n
  • \n
\n \n

When you use these parameters, you must sign the request by using either an Authorization header or a\n presigned URL. These parameters cannot be used with an\n unsigned (anonymous) request.

\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to GetObject:

\n ", + "smithy.api#documentation": "

Retrieves an object from Amazon S3.

\n

In the GetObject request, specify the full key name for the object.

\n

\n General purpose buckets - Both the virtual-hosted-style\n requests and the path-style requests are supported. For a virtual hosted-style request\n example, if you have the object photos/2006/February/sample.jpg, specify the\n object key name as /photos/2006/February/sample.jpg. For a path-style request\n example, if you have the object photos/2006/February/sample.jpg in the bucket\n named examplebucket, specify the object key name as\n /examplebucket/photos/2006/February/sample.jpg. For more information about\n request types, see HTTP Host\n Header Bucket Specification in the Amazon S3 User Guide.

\n

\n Directory buckets -\n Only virtual-hosted-style requests are supported. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named examplebucket--use1-az5--x-s3, specify the object key name as /photos/2006/February/sample.jpg. Also, when you make requests to this API operation, your requests are sent to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - You\n must have the required permissions in a policy. To use\n GetObject, you must have the READ access to the\n object (or version). If you grant READ access to the anonymous\n user, the GetObject operation returns the object without using\n an authorization header. For more information, see Specifying permissions in a policy in the\n Amazon S3 User Guide.

    \n

    If you include a versionId in your request header, you must\n have the s3:GetObjectVersion permission to access a specific\n version of an object. The s3:GetObject permission is not\n required in this scenario.

    \n

    If you request the current version of an object without a specific\n versionId in the request header, only the\n s3:GetObject permission is required. The\n s3:GetObjectVersion permission is not required in this\n scenario.

    \n

    If the object that you request doesn’t exist, the error that Amazon S3 returns\n depends on whether you also have the s3:ListBucket\n permission.

    \n
      \n
    • \n

      If you have the s3:ListBucket permission on the\n bucket, Amazon S3 returns an HTTP status code 404 Not Found\n error.

      \n
    • \n
    • \n

      If you don’t have the s3:ListBucket permission, Amazon S3\n returns an HTTP status code 403 Access Denied\n error.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If\n the\n object is encrypted using SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions\n in IAM identity-based policies and KMS key policies for the KMS\n key.

    \n
  • \n
\n
\n
Storage classes
\n
\n

If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval\n storage class, the S3 Glacier Deep Archive storage class, the\n S3 Intelligent-Tiering Archive Access tier, or the S3 Intelligent-Tiering Deep Archive Access tier,\n before you can retrieve the object you must first restore a copy using RestoreObject. Otherwise, this operation returns an\n InvalidObjectState error. For information about restoring archived\n objects, see Restoring Archived\n Objects in the Amazon S3 User Guide.

\n

\n Directory buckets -\n For directory buckets, only the S3 Express One Zone storage class is supported to store newly created objects. \nUnsupported storage class values won't write a destination object and will respond with the HTTP status code 400 Bad Request.

\n
\n
Encryption
\n
\n

Encryption request headers, like x-amz-server-side-encryption,\n should not be sent for the GetObject requests, if your object uses\n server-side encryption with Amazon S3 managed encryption keys (SSE-S3), server-side\n encryption with Key Management Service (KMS) keys (SSE-KMS), or dual-layer server-side\n encryption with Amazon Web Services KMS keys (DSSE-KMS). If you include the header in your\n GetObject requests for the object that uses these types of keys,\n you’ll get an HTTP 400 Bad Request error.

\n

\n Directory buckets -\n For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS. SSE-C isn't supported. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

\n
\n
Overriding response header values through the request
\n
\n

There are times when you want to override certain response header values of a\n GetObject response. For example, you might override the\n Content-Disposition response header value through your\n GetObject request.

\n

You can override values for a set of response headers. These modified response\n header values are included only in a successful response, that is, when the HTTP\n status code 200 OK is returned. The headers you can override using\n the following query parameters in the request are a subset of the headers that\n Amazon S3 accepts when you create an object.

\n

The response headers that you can override for the GetObject\n response are Cache-Control, Content-Disposition,\n Content-Encoding, Content-Language,\n Content-Type, and Expires.

\n

To override values for a set of response headers in the GetObject\n response, you can use the following query parameters in the request.

\n
    \n
  • \n

    \n response-cache-control\n

    \n
  • \n
  • \n

    \n response-content-disposition\n

    \n
  • \n
  • \n

    \n response-content-encoding\n

    \n
  • \n
  • \n

    \n response-content-language\n

    \n
  • \n
  • \n

    \n response-content-type\n

    \n
  • \n
  • \n

    \n response-expires\n

    \n
  • \n
\n \n

When you use these parameters, you must sign the request by using either an\n Authorization header or a presigned URL. These parameters cannot be used with\n an unsigned (anonymous) request.

\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to GetObject:

\n ", "smithy.api#examples": [ { "title": "To retrieve a byte range of an object ", @@ -23416,7 +23453,7 @@ } ], "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the access control list (ACL) of an object. To use this operation, you must have\n s3:GetObjectAcl permissions or READ_ACP access to the object.\n For more information, see Mapping of ACL permissions and access policy permissions in the Amazon S3\n User Guide\n

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

By default, GET returns ACL information about the current version of an object. To\n return ACL information about a different version, use the versionId subresource.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership,\n requests to read ACLs are still supported and return the\n bucket-owner-full-control ACL with the owner being the account that\n created the bucket. For more information, see Controlling object\n ownership and disabling ACLs in the\n Amazon S3 User Guide.

\n
\n

The following operations are related to GetObjectAcl:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the access control list (ACL) of an object. To use this operation, you must have\n s3:GetObjectAcl permissions or READ_ACP access to the object.\n For more information, see Mapping of ACL permissions and access policy permissions in the Amazon S3\n User Guide\n

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

By default, GET returns ACL information about the current version of an object. To\n return ACL information about a different version, use the versionId subresource.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership,\n requests to read ACLs are still supported and return the\n bucket-owner-full-control ACL with the owner being the account that\n created the bucket. For more information, see Controlling object\n ownership and disabling ACLs in the\n Amazon S3 User Guide.

\n
\n

The following operations are related to GetObjectAcl:

\n ", "smithy.api#examples": [ { "title": "To retrieve object ACL", @@ -23566,7 +23603,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves all the metadata from an object without returning the object itself. This\n operation is useful if you're interested only in an object's metadata.

\n

\n GetObjectAttributes combines the functionality of HeadObject\n and ListParts. All of the data returned with each of those individual calls\n can be returned with a single call to GetObjectAttributes.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To use\n GetObjectAttributes, you must have READ access to the object. The permissions that you need to use this operation depend on whether the\n bucket is versioned. If the bucket is versioned, you need both the\n s3:GetObjectVersion and s3:GetObjectVersionAttributes\n permissions for this operation. If the bucket is not versioned, you need the\n s3:GetObject and s3:GetObjectAttributes permissions.\n For more information, see Specifying Permissions in\n a Policy in the Amazon S3 User Guide. If the object\n that you request does not exist, the error Amazon S3 returns depends on whether you\n also have the s3:ListBucket permission.

    \n
      \n
    • \n

      If you have the s3:ListBucket permission on the bucket, Amazon S3\n returns an HTTP status code 404 Not Found (\"no such key\")\n error.

      \n
    • \n
    • \n

      If you don't have the s3:ListBucket permission, Amazon S3 returns\n an HTTP status code 403 Forbidden (\"access denied\")\n error.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with\n SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key.

    \n
  • \n
\n
\n
Encryption
\n
\n \n

Encryption request headers, like x-amz-server-side-encryption,\n should not be sent for HEAD requests if your object uses server-side\n encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side\n encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with Amazon S3\n managed encryption keys (SSE-S3). The x-amz-server-side-encryption header is used when you PUT an object to S3 and want to specify the encryption method. \n If you include this header in a GET request for an object that uses these types of keys, \n you’ll get an HTTP 400 Bad Request error. It's because the encryption method can't be changed when you retrieve the object.

\n
\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the\n metadata from the object, you must use the following headers to provide the encryption key for the server to be able to retrieve the object's metadata. The headers are:

\n
    \n
  • \n

    \n x-amz-server-side-encryption-customer-algorithm\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key-MD5\n

    \n
  • \n
\n

For more information about SSE-C, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys) in the Amazon S3\n User Guide.

\n \n

\n Directory bucket permissions - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

\n
\n
\n
Versioning
\n
\n

\n Directory buckets - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null \n to the versionId query parameter in the request.

\n
\n
Conditional request headers
\n
\n

Consider the following when using request headers:

\n
    \n
  • \n

    If both of the If-Match and If-Unmodified-Since headers\n are present in the request as follows, then Amazon S3 returns the HTTP status code\n 200 OK and the data requested:

    \n
      \n
    • \n

      \n If-Match condition evaluates to true.

      \n
    • \n
    • \n

      \n If-Unmodified-Since condition evaluates to\n false.

      \n
    • \n
    \n

    For more information about conditional requests, see RFC 7232.

    \n
  • \n
  • \n

    If both of the If-None-Match and If-Modified-Since\n headers are present in the request as follows, then Amazon S3 returns the HTTP status code\n 304 Not Modified:

    \n
      \n
    • \n

      \n If-None-Match condition evaluates to false.

      \n
    • \n
    • \n

      \n If-Modified-Since condition evaluates to\n true.

      \n
    • \n
    \n

    For more information about conditional requests, see RFC 7232.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following actions are related to GetObjectAttributes:

\n ", + "smithy.api#documentation": "

Retrieves all the metadata from an object without returning the object itself. This\n operation is useful if you're interested only in an object's metadata.

\n

\n GetObjectAttributes combines the functionality of HeadObject\n and ListParts. All of the data returned with each of those individual calls\n can be returned with a single call to GetObjectAttributes.

\n \n

\n Directory buckets -\n For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To\n use GetObjectAttributes, you must have READ access to the\n object. The permissions that you need to use this operation depend on\n whether the bucket is versioned. If the bucket is versioned, you need both\n the s3:GetObjectVersion and\n s3:GetObjectVersionAttributes permissions for this\n operation. If the bucket is not versioned, you need the\n s3:GetObject and s3:GetObjectAttributes\n permissions. For more information, see Specifying\n Permissions in a Policy in the\n Amazon S3 User Guide. If the object that you request does\n not exist, the error Amazon S3 returns depends on whether you also have the\n s3:ListBucket permission.

    \n
      \n
    • \n

      If you have the s3:ListBucket permission on the\n bucket, Amazon S3 returns an HTTP status code 404 Not Found\n (\"no such key\") error.

      \n
    • \n
    • \n

      If you don't have the s3:ListBucket permission, Amazon S3\n returns an HTTP status code 403 Forbidden (\"access\n denied\") error.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If\n the\n object is encrypted with SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions\n in IAM identity-based policies and KMS key policies for the KMS\n key.

    \n
  • \n
\n
\n
Encryption
\n
\n \n

Encryption request headers, like x-amz-server-side-encryption,\n should not be sent for HEAD requests if your object uses\n server-side encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer\n server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side\n encryption with Amazon S3 managed encryption keys (SSE-S3). The\n x-amz-server-side-encryption header is used when you\n PUT an object to S3 and want to specify the encryption method.\n If you include this header in a GET request for an object that\n uses these types of keys, you’ll get an HTTP 400 Bad Request\n error. It's because the encryption method can't be changed when you retrieve\n the object.

\n
\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve\n the metadata from the object, you must use the following headers to provide the\n encryption key for the server to be able to retrieve the object's metadata. The\n headers are:

\n
    \n
  • \n

    \n x-amz-server-side-encryption-customer-algorithm\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key-MD5\n

    \n
  • \n
\n

For more information about SSE-C, see Server-Side\n Encryption (Using Customer-Provided Encryption Keys) in the\n Amazon S3 User Guide.

\n \n

\n Directory bucket permissions -\n For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

\n
\n
\n
Versioning
\n
\n

\n Directory buckets -\n S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null to the\n versionId query parameter in the request.

\n
\n
Conditional request headers
\n
\n

Consider the following when using request headers:

\n
    \n
  • \n

    If both of the If-Match and If-Unmodified-Since\n headers are present in the request as follows, then Amazon S3 returns the HTTP\n status code 200 OK and the data requested:

    \n
      \n
    • \n

      \n If-Match condition evaluates to\n true.

      \n
    • \n
    • \n

      \n If-Unmodified-Since condition evaluates to\n false.

      \n
    • \n
    \n

    For more information about conditional requests, see RFC 7232.

    \n
  • \n
  • \n

    If both of the If-None-Match and\n If-Modified-Since headers are present in the request as\n follows, then Amazon S3 returns the HTTP status code 304 Not\n Modified:

    \n
      \n
    • \n

      \n If-None-Match condition evaluates to\n false.

      \n
    • \n
    • \n

      \n If-Modified-Since condition evaluates to\n true.

      \n
    • \n
    \n

    For more information about conditional requests, see RFC 7232.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following actions are related to GetObjectAttributes:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}/{Key+}?attributes", @@ -23587,7 +23624,7 @@ "LastModified": { "target": "com.amazonaws.s3#LastModified", "traits": { - "smithy.api#documentation": "

The creation date of the object.

", + "smithy.api#documentation": "

Date and time when the object was last modified.

", "smithy.api#httpHeader": "Last-Modified" } }, @@ -23625,7 +23662,7 @@ "StorageClass": { "target": "com.amazonaws.s3#StorageClass", "traits": { - "smithy.api#documentation": "

Provides the storage class information of the object. Amazon S3 returns this header for all\n objects except for S3 Standard storage class objects.

\n

For more information, see Storage Classes.

\n \n

\n Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" + "smithy.api#documentation": "

Provides the storage class information of the object. Amazon S3 returns this header for all\n objects except for S3 Standard storage class objects.

\n

For more information, see Storage Classes.

\n \n

\n Directory buckets -\n Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" } }, "ObjectSize": { @@ -23677,7 +23714,7 @@ "Parts": { "target": "com.amazonaws.s3#PartsList", "traits": { - "smithy.api#documentation": "

A container for elements related to a particular part. A response can contain zero or\n more Parts elements.

\n \n \n ", + "smithy.api#documentation": "

A container for elements related to a particular part. A response can contain zero or\n more Parts elements.

\n \n \n ", "smithy.api#xmlFlattened": {}, "smithy.api#xmlName": "Part" } @@ -23693,7 +23730,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The name of the bucket that contains the object.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The name of the bucket that contains the object.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -23712,7 +23749,7 @@ "VersionId": { "target": "com.amazonaws.s3#ObjectVersionId", "traits": { - "smithy.api#documentation": "

The version ID used to reference a specific version of the object.

\n \n

S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null \n to the versionId query parameter in the request.

\n
", + "smithy.api#documentation": "

The version ID used to reference a specific version of the object.

\n \n

S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null to the\n versionId query parameter in the request.

\n
", "smithy.api#httpQuery": "versionId" } }, @@ -23786,7 +23823,7 @@ "target": "com.amazonaws.s3#GetObjectLegalHoldOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Gets an object's current legal hold status. For more information, see Locking\n Objects.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

The following action is related to GetObjectLegalHold:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Gets an object's current legal hold status. For more information, see Locking\n Objects.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

The following action is related to GetObjectLegalHold:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}/{Key+}?legal-hold", @@ -23866,7 +23903,7 @@ "target": "com.amazonaws.s3#GetObjectLockConfigurationOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock\n configuration will be applied by default to every new object placed in the specified\n bucket. For more information, see Locking Objects.

\n

The following action is related to GetObjectLockConfiguration:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock\n configuration will be applied by default to every new object placed in the specified\n bucket. For more information, see Locking Objects.

\n

The following action is related to GetObjectLockConfiguration:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?object-lock", @@ -23929,7 +23966,7 @@ "DeleteMarker": { "target": "com.amazonaws.s3#DeleteMarker", "traits": { - "smithy.api#documentation": "

Indicates whether the object retrieved was (true) or was not (false) a Delete Marker. If\n false, this response header does not appear in the response.

\n \n \n ", + "smithy.api#documentation": "

Indicates whether the object retrieved was (true) or was not (false) a Delete Marker. If\n false, this response header does not appear in the response.

\n \n \n ", "smithy.api#httpHeader": "x-amz-delete-marker" } }, @@ -23943,21 +23980,21 @@ "Expiration": { "target": "com.amazonaws.s3#Expiration", "traits": { - "smithy.api#documentation": "

If the object expiration is configured (see \n PutBucketLifecycleConfiguration\n ), the response includes\n this header. It includes the expiry-date and rule-id key-value\n pairs providing object expiration information. The value of the rule-id is\n URL-encoded.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If the object expiration is configured (see \n PutBucketLifecycleConfiguration\n ), the response includes this\n header. It includes the expiry-date and rule-id key-value pairs\n providing object expiration information. The value of the rule-id is\n URL-encoded.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-expiration" } }, "Restore": { "target": "com.amazonaws.s3#Restore", "traits": { - "smithy.api#documentation": "

Provides information about object restoration action and expiration time of the restored\n object copy.

\n \n

This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
", + "smithy.api#documentation": "

Provides information about object restoration action and expiration time of the restored\n object copy.

\n \n

This functionality is not supported for directory buckets.\n Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
", "smithy.api#httpHeader": "x-amz-restore" } }, "LastModified": { "target": "com.amazonaws.s3#LastModified", "traits": { - "smithy.api#documentation": "

Date and time when the object was last modified.

\n

\n General purpose buckets - When you specify a versionId of the object in your request, if the specified version in the request is a delete marker, the response returns a 405 Method Not Allowed error and the Last-Modified: timestamp response header.

", + "smithy.api#documentation": "

Date and time when the object was last modified.

\n

\n General purpose buckets - When you specify a\n versionId of the object in your request, if the specified version in the\n request is a delete marker, the response returns a 405 Method Not Allowed\n error and the Last-Modified: timestamp response header.

", "smithy.api#httpHeader": "Last-Modified" } }, @@ -24006,7 +24043,7 @@ "MissingMeta": { "target": "com.amazonaws.s3#MissingMeta", "traits": { - "smithy.api#documentation": "

This is set to the number of metadata entries not returned in the headers that are prefixed with x-amz-meta-. This can happen if you create metadata using an API like SOAP that supports more\n flexible metadata than the REST API. For example, using SOAP, you can create metadata whose\n values are not legal HTTP headers.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

This is set to the number of metadata entries not returned in the headers that are\n prefixed with x-amz-meta-. This can happen if you create metadata using an API\n like SOAP that supports more flexible metadata than the REST API. For example, using SOAP,\n you can create metadata whose values are not legal HTTP headers.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-missing-meta" } }, @@ -24097,7 +24134,7 @@ "SSECustomerKeyMD5": { "target": "com.amazonaws.s3#SSECustomerKeyMD5", "traits": { - "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification of\n the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification\n of the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" } }, @@ -24111,14 +24148,14 @@ "BucketKeyEnabled": { "target": "com.amazonaws.s3#BucketKeyEnabled", "traits": { - "smithy.api#documentation": "

Indicates whether the object uses an S3 Bucket Key for server-side encryption\n with Key Management Service (KMS) keys (SSE-KMS).

", + "smithy.api#documentation": "

Indicates whether the object uses an S3 Bucket Key for server-side encryption with\n Key Management Service (KMS) keys (SSE-KMS).

", "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" } }, "StorageClass": { "target": "com.amazonaws.s3#StorageClass", "traits": { - "smithy.api#documentation": "

Provides storage class information of the object. Amazon S3 returns this header for all\n objects except for S3 Standard storage class objects.

\n \n

\n Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
", + "smithy.api#documentation": "

Provides storage class information of the object. Amazon S3 returns this header for all\n objects except for S3 Standard storage class objects.

\n \n

\n Directory buckets -\n Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
", "smithy.api#httpHeader": "x-amz-storage-class" } }, @@ -24145,7 +24182,7 @@ "TagCount": { "target": "com.amazonaws.s3#TagCount", "traits": { - "smithy.api#documentation": "

The number of tags, if any, on the object, when you have the relevant permission to read object tags.

\n

You can use GetObjectTagging to retrieve\n the tag set associated with an object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

The number of tags, if any, on the object, when you have the relevant permission to read\n object tags.

\n

You can use GetObjectTagging to retrieve\n the tag set associated with an object.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-tagging-count" } }, @@ -24181,7 +24218,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The bucket name containing the object.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n

\n Object Lambda access points - When you use this action with an Object Lambda access point, you must direct requests to the Object Lambda access point hostname. The Object Lambda access point hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The bucket name containing the object.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n

\n Object Lambda access points - When you use this action with an Object Lambda access point, you must direct requests to the Object Lambda access point hostname. The Object Lambda access point hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -24192,28 +24229,28 @@ "IfMatch": { "target": "com.amazonaws.s3#IfMatch", "traits": { - "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is the same as the one specified in this header;\n otherwise, return a 412 Precondition Failed error.

\n

If both of the If-Match and If-Unmodified-Since headers are present in the request as follows: If-Match condition \n evaluates to true, and; If-Unmodified-Since condition evaluates to false; then, S3 returns 200 OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is the same as the one specified in this\n header; otherwise, return a 412 Precondition Failed error.

\n

If both of the If-Match and If-Unmodified-Since headers are\n present in the request as follows: If-Match condition evaluates to\n true, and; If-Unmodified-Since condition evaluates to\n false; then, S3 returns 200 OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", "smithy.api#httpHeader": "If-Match" } }, "IfModifiedSince": { "target": "com.amazonaws.s3#IfModifiedSince", "traits": { - "smithy.api#documentation": "

Return the object only if it has been modified since the specified time; otherwise,\n return a 304 Not Modified error.

\n

If both of the If-None-Match and If-Modified-Since headers are present in the request as follows: If-None-Match \n condition evaluates to false, and; If-Modified-Since condition evaluates to true; then, S3 returns 304 Not Modified \n status code.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#documentation": "

Return the object only if it has been modified since the specified time; otherwise,\n return a 304 Not Modified error.

\n

If both of the If-None-Match and If-Modified-Since headers are\n present in the request as follows: If-None-Match condition evaluates to\n false, and; If-Modified-Since condition evaluates to\n true; then, S3 returns 304 Not Modified status code.

\n

For more information about conditional requests, see RFC 7232.

", "smithy.api#httpHeader": "If-Modified-Since" } }, "IfNoneMatch": { "target": "com.amazonaws.s3#IfNoneMatch", "traits": { - "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is different from the one specified in this header;\n otherwise, return a 304 Not Modified error.

\n

If both of the If-None-Match and If-Modified-Since \n headers are present in the request as follows: If-None-Match \n condition evaluates to false, and; If-Modified-Since \n condition evaluates to true; then, S3 returns 304 Not Modified HTTP status code.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is different from the one specified in\n this header; otherwise, return a 304 Not Modified error.

\n

If both of the If-None-Match and If-Modified-Since headers are\n present in the request as follows: If-None-Match condition evaluates to\n false, and; If-Modified-Since condition evaluates to\n true; then, S3 returns 304 Not Modified HTTP status\n code.

\n

For more information about conditional requests, see RFC 7232.

", "smithy.api#httpHeader": "If-None-Match" } }, "IfUnmodifiedSince": { "target": "com.amazonaws.s3#IfUnmodifiedSince", "traits": { - "smithy.api#documentation": "

Return the object only if it has not been modified since the specified time; otherwise,\n return a 412 Precondition Failed error.

\n

If both of the If-Match and If-Unmodified-Since\n headers are present in the request as follows: If-Match condition\n evaluates to true, and; If-Unmodified-Since condition\n evaluates to false; then, S3 returns 200 OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#documentation": "

Return the object only if it has not been modified since the specified time; otherwise,\n return a 412 Precondition Failed error.

\n

If both of the If-Match and If-Unmodified-Since headers are\n present in the request as follows: If-Match condition evaluates to\n true, and; If-Unmodified-Since condition evaluates to\n false; then, S3 returns 200 OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", "smithy.api#httpHeader": "If-Unmodified-Since" } }, @@ -24280,28 +24317,28 @@ "VersionId": { "target": "com.amazonaws.s3#ObjectVersionId", "traits": { - "smithy.api#documentation": "

Version ID used to reference a specific version of the object.

\n

By default, the GetObject operation returns the current version of an object. To return a different version, use the versionId subresource.

\n \n \n \n

For more information about versioning, see PutBucketVersioning.

", + "smithy.api#documentation": "

Version ID used to reference a specific version of the object.

\n

By default, the GetObject operation returns the current version of an\n object. To return a different version, use the versionId subresource.

\n \n \n \n

For more information about versioning, see PutBucketVersioning.

", "smithy.api#httpQuery": "versionId" } }, "SSECustomerAlgorithm": { "target": "com.amazonaws.s3#SSECustomerAlgorithm", "traits": { - "smithy.api#documentation": "

Specifies the algorithm to use when decrypting the object (for example,\n AES256).

\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object,\n you must use the following headers:

\n \n

For more information about SSE-C, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

Specifies the algorithm to use when decrypting the object (for example,\n AES256).

\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object,\n you must use the following headers:

\n \n

For more information about SSE-C, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys) in the\n Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" } }, "SSECustomerKey": { "target": "com.amazonaws.s3#SSECustomerKey", "traits": { - "smithy.api#documentation": "

Specifies the customer-provided encryption key that you originally provided for Amazon S3 to encrypt the data before storing it. This\n value is used to decrypt the object when recovering it and must match the one used when\n storing the data. The key must be appropriate for use with the algorithm specified in the\n x-amz-server-side-encryption-customer-algorithm header.

\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object,\n you must use the following headers:

\n \n

For more information about SSE-C, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

Specifies the customer-provided encryption key that you originally provided for Amazon S3 to\n encrypt the data before storing it. This value is used to decrypt the object when\n recovering it and must match the one used when storing the data. The key must be\n appropriate for use with the algorithm specified in the\n x-amz-server-side-encryption-customer-algorithm header.

\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object,\n you must use the following headers:

\n \n

For more information about SSE-C, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys) in the\n Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" } }, "SSECustomerKeyMD5": { "target": "com.amazonaws.s3#SSECustomerKeyMD5", "traits": { - "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the customer-provided encryption key according to RFC 1321. Amazon S3 uses\n this header for a message integrity check to ensure that the encryption key was transmitted\n without error.

\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object,\n you must use the following headers:

\n \n

For more information about SSE-C, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the customer-provided encryption key according to\n RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption\n key was transmitted without error.

\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object,\n you must use the following headers:

\n \n

For more information about SSE-C, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys) in the\n Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" } }, @@ -24328,7 +24365,7 @@ "ChecksumMode": { "target": "com.amazonaws.s3#ChecksumMode", "traits": { - "smithy.api#documentation": "

To retrieve the checksum, this mode must be enabled.

\n

\n General purpose buckets - In addition, if you enable checksum mode and the object is uploaded with a \n checksum \n and encrypted with an Key Management Service (KMS) key, you must have permission to use the \n kms:Decrypt action to retrieve the checksum.

", + "smithy.api#documentation": "

To retrieve the checksum, this mode must be enabled.

\n

\n General purpose buckets - In addition, if you enable\n checksum mode and the object is uploaded with a checksum and encrypted with an\n Key Management Service (KMS) key, you must have permission to use the kms:Decrypt action\n to retrieve the checksum.

", "smithy.api#httpHeader": "x-amz-checksum-mode" } } @@ -24349,7 +24386,7 @@ "target": "com.amazonaws.s3#GetObjectRetentionOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Retrieves an object's retention settings. For more information, see Locking\n Objects.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

The following action is related to GetObjectRetention:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Retrieves an object's retention settings. For more information, see Locking\n Objects.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

The following action is related to GetObjectRetention:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}/{Key+}?retention", @@ -24429,7 +24466,7 @@ "target": "com.amazonaws.s3#GetObjectTaggingOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the tag-set of an object. You send the GET request against the tagging\n subresource associated with the object.

\n

To use this operation, you must have permission to perform the\n s3:GetObjectTagging action. By default, the GET action returns information\n about current version of an object. For a versioned bucket, you can have multiple versions\n of an object in your bucket. To retrieve tags of any other version, use the versionId query\n parameter. You also need permission for the s3:GetObjectVersionTagging\n action.

\n

By default, the bucket owner has this permission and can grant this permission to\n others.

\n

For information about the Amazon S3 object tagging feature, see Object Tagging.

\n

The following actions are related to GetObjectTagging:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the tag-set of an object. You send the GET request against the tagging\n subresource associated with the object.

\n

To use this operation, you must have permission to perform the\n s3:GetObjectTagging action. By default, the GET action returns information\n about current version of an object. For a versioned bucket, you can have multiple versions\n of an object in your bucket. To retrieve tags of any other version, use the versionId query\n parameter. You also need permission for the s3:GetObjectVersionTagging\n action.

\n

By default, the bucket owner has this permission and can grant this permission to\n others.

\n

For information about the Amazon S3 object tagging feature, see Object Tagging.

\n

The following actions are related to GetObjectTagging:

\n ", "smithy.api#examples": [ { "title": "To retrieve tag set of a specific object version", @@ -24557,7 +24594,7 @@ "target": "com.amazonaws.s3#GetObjectTorrentOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're\n distributing large files.

\n \n

You can get torrent only for objects that are less than 5 GB in size, and that are\n not encrypted using server-side encryption with a customer-provided encryption\n key.

\n
\n

To use GET, you must have READ access to the object.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

The following action is related to GetObjectTorrent:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're\n distributing large files.

\n \n

You can get torrent only for objects that are less than 5 GB in size, and that are\n not encrypted using server-side encryption with a customer-provided encryption\n key.

\n
\n

To use GET, you must have READ access to the object.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

The following action is related to GetObjectTorrent:

\n ", "smithy.api#examples": [ { "title": "To retrieve torrent files for an object", @@ -24647,7 +24684,7 @@ "target": "com.amazonaws.s3#GetPublicAccessBlockOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To use\n this operation, you must have the s3:GetBucketPublicAccessBlock permission.\n For more information about Amazon S3 permissions, see Specifying Permissions in a\n Policy.

\n \n

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or\n an object, it checks the PublicAccessBlock configuration for both the\n bucket (or the bucket that contains the object) and the bucket owner's account. If the\n PublicAccessBlock settings are different between the bucket and the\n account, Amazon S3 uses the most restrictive combination of the bucket-level and\n account-level settings.

\n
\n

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

\n

The following operations are related to GetPublicAccessBlock:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To use\n this operation, you must have the s3:GetBucketPublicAccessBlock permission.\n For more information about Amazon S3 permissions, see Specifying Permissions in a\n Policy.

\n \n

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or\n an object, it checks the PublicAccessBlock configuration for both the\n bucket (or the bucket that contains the object) and the bucket owner's account. If the\n PublicAccessBlock settings are different between the bucket and the\n account, Amazon S3 uses the most restrictive combination of the bucket-level and\n account-level settings.

\n
\n

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

\n

The following operations are related to GetPublicAccessBlock:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?publicAccessBlock", @@ -24819,7 +24856,7 @@ } ], "traits": { - "smithy.api#documentation": "

You can use this operation to determine if a bucket exists and if you have permission to access it. The action returns a 200 OK if the bucket exists and you have permission\n to access it.

\n \n

If the bucket does not exist or you do not have permission to access it, the\n HEAD request returns a generic 400 Bad Request, 403\n Forbidden or 404 Not Found code. A message body is not included, so\n you cannot determine the exception beyond these HTTP response codes.

\n
\n
\n
Authentication and authorization
\n
\n

\n General purpose buckets - Request to public buckets that grant the s3:ListBucket permission publicly do not need to be signed. All other HeadBucket requests must be authenticated and signed by using IAM credentials (access key ID and secret access key for the IAM identities). All headers with the x-amz- prefix, including\n x-amz-copy-source, must be signed. For more information, see REST Authentication.

\n

\n Directory buckets - You must use IAM credentials to authenticate and authorize your access to the HeadBucket API operation, instead of using the \n temporary security credentials through the CreateSession API operation.

\n

Amazon Web Services CLI or SDKs handles authentication and authorization on your behalf.

\n
\n
Permissions
\n
\n

\n \n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n \n

You must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
", + "smithy.api#documentation": "

You can use this operation to determine if a bucket exists and if you have permission to\n access it. The action returns a 200 OK if the bucket exists and you have\n permission to access it.

\n \n

If the bucket does not exist or you do not have permission to access it, the\n HEAD request returns a generic 400 Bad Request, 403\n Forbidden or 404 Not Found code. A message body is not included,\n so you cannot determine the exception beyond these HTTP response codes.

\n
\n
\n
Authentication and authorization
\n
\n

\n General purpose buckets - Request to public\n buckets that grant the s3:ListBucket permission publicly do not need to be signed.\n All other HeadBucket requests must be authenticated and signed by\n using IAM credentials (access key ID and secret access key for the IAM\n identities). All headers with the x-amz- prefix, including\n x-amz-copy-source, must be signed. For more information, see\n REST Authentication.

\n

\n Directory buckets - You must use IAM\n credentials to authenticate and authorize your access to the\n HeadBucket API operation, instead of using the temporary security\n credentials through the CreateSession API operation.

\n

Amazon Web Services CLI or SDKs handles authentication and authorization on your\n behalf.

\n
\n
Permissions
\n
\n

\n \n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n \n

You must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
", "smithy.api#examples": [ { "title": "To determine if bucket exists", @@ -24879,7 +24916,7 @@ "BucketLocationName": { "target": "com.amazonaws.s3#BucketLocationName", "traits": { - "smithy.api#documentation": "

The name of the location where the bucket will be created.

\n

For directory buckets, the AZ ID of the Availability Zone where the bucket is created. An example AZ ID value is usw2-az1.

\n \n

This functionality is only supported by directory buckets.

\n
", + "smithy.api#documentation": "

The name of the location where the bucket will be created.

\n

For directory buckets, the AZ ID of the Availability Zone where the bucket is created. An example\n AZ ID value is usw2-az1.

\n \n

This functionality is only supported by directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-bucket-location-name" } }, @@ -24908,7 +24945,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The bucket name.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n

\n Object Lambda access points - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The bucket name.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n

\n Object Lambda access points - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -24942,7 +24979,7 @@ } ], "traits": { - "smithy.api#documentation": "

The HEAD operation retrieves metadata from an object without returning the\n object itself. This operation is useful if you're interested only in an object's metadata.

\n \n

A HEAD request has the same options as a GET operation on an\n object. The response is identical to the GET response except that there is no\n response body. Because of this, if the HEAD request generates an error, it\n returns a generic code, such as 400 Bad Request, 403 Forbidden, 404 Not\n Found, 405 Method Not Allowed, 412 Precondition Failed, or 304 Not Modified. \n It's not possible to retrieve the exact exception of these error codes.

\n
\n

Request headers are limited to 8 KB in size. For more information, see Common\n Request Headers.

\n
\n
Permissions
\n
\n

\n
    \n
  • \n

    \n General purpose bucket permissions - To\n use HEAD, you must have the s3:GetObject permission. You need the relevant read object (or version) permission for this operation.\n For more information, see Actions, resources, and condition\n keys for Amazon S3 in the Amazon S3\n User Guide. For more information about the permissions to S3 API operations by S3 resource types, see Required permissions for Amazon S3 API operations in the Amazon S3 User Guide.

    \n

    If the object you request doesn't exist, the error that\n Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

    \n
      \n
    • \n

      If you have the s3:ListBucket permission on the bucket, Amazon S3\n returns an HTTP status code 404 Not Found error.

      \n
    • \n
    • \n

      If you don’t have the s3:ListBucket permission, Amazon S3 returns\n an HTTP status code 403 Forbidden error.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If you enable x-amz-checksum-mode in the request and the object is encrypted with\n Amazon Web Services Key Management Service (Amazon Web Services KMS), you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key to retrieve the checksum of the object.

    \n
  • \n
\n
\n
Encryption
\n
\n \n

Encryption request headers, like x-amz-server-side-encryption,\n should not be sent for HEAD requests if your object uses server-side\n encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side\n encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with Amazon S3\n managed encryption keys (SSE-S3). The x-amz-server-side-encryption header is used when you PUT an object to S3 and want to specify the encryption method. \n If you include this header in a HEAD request for an object that uses these types of keys, \n you’ll get an HTTP 400 Bad Request error. It's because the encryption method can't be changed when you retrieve the object.

\n
\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the\n metadata from the object, you must use the following headers to provide the encryption key for the server to be able to retrieve the object's metadata. The headers are:

\n
    \n
  • \n

    \n x-amz-server-side-encryption-customer-algorithm\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key-MD5\n

    \n
  • \n
\n

For more information about SSE-C, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys) in the Amazon S3\n User Guide.

\n \n

\n Directory bucket - For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS. SSE-C isn't supported. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

\n
\n
\n
Versioning
\n
\n
    \n
  • \n

    If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes x-amz-delete-marker: true in the response.

    \n
  • \n
  • \n

    If the specified version is a delete marker, the response returns a 405 Method Not Allowed error and the Last-Modified: timestamp response header.

    \n
  • \n
\n \n
    \n
  • \n

    \n Directory buckets - Delete marker is not supported by directory buckets.

    \n
  • \n
  • \n

    \n Directory buckets - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null \n to the versionId query parameter in the request.

    \n
  • \n
\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n \n

For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
\n

The following actions are related to HeadObject:

\n ", + "smithy.api#documentation": "

The HEAD operation retrieves metadata from an object without returning the\n object itself. This operation is useful if you're interested only in an object's\n metadata.

\n \n

A HEAD request has the same options as a GET operation on\n an object. The response is identical to the GET response except that there\n is no response body. Because of this, if the HEAD request generates an\n error, it returns a generic code, such as 400 Bad Request, 403\n Forbidden, 404 Not Found, 405 Method Not Allowed,\n 412 Precondition Failed, or 304 Not Modified. It's not\n possible to retrieve the exact exception of these error codes.

\n
\n

Request headers are limited to 8 KB in size. For more information, see Common\n Request Headers.

\n
\n
Permissions
\n
\n

\n
    \n
  • \n

    \n General purpose bucket permissions - To\n use HEAD, you must have the s3:GetObject\n permission. You need the relevant read object (or version) permission for\n this operation. For more information, see Actions, resources, and\n condition keys for Amazon S3 in the Amazon S3 User\n Guide. For more information about the permissions to S3 API\n operations by S3 resource types, see Required permissions for Amazon S3 API operations in the\n Amazon S3 User Guide.

    \n

    If the object you request doesn't exist, the error that Amazon S3 returns\n depends on whether you also have the s3:ListBucket\n permission.

    \n
      \n
    • \n

      If you have the s3:ListBucket permission on the\n bucket, Amazon S3 returns an HTTP status code 404 Not Found\n error.

      \n
    • \n
    • \n

      If you don’t have the s3:ListBucket permission, Amazon S3\n returns an HTTP status code 403 Forbidden error.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If you enable x-amz-checksum-mode in the request and the\n object is encrypted with Amazon Web Services Key Management Service (Amazon Web Services KMS), you must\n also have the kms:GenerateDataKey and kms:Decrypt\n permissions in IAM identity-based policies and KMS key policies for the\n KMS key to retrieve the checksum of the object.

    \n
  • \n
\n
\n
Encryption
\n
\n \n

Encryption request headers, like x-amz-server-side-encryption,\n should not be sent for HEAD requests if your object uses\n server-side encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer\n server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side\n encryption with Amazon S3 managed encryption keys (SSE-S3). The\n x-amz-server-side-encryption header is used when you\n PUT an object to S3 and want to specify the encryption method.\n If you include this header in a HEAD request for an object that\n uses these types of keys, you’ll get an HTTP 400 Bad Request\n error. It's because the encryption method can't be changed when you retrieve\n the object.

\n
\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve\n the metadata from the object, you must use the following headers to provide the\n encryption key for the server to be able to retrieve the object's metadata. The\n headers are:

\n
    \n
  • \n

    \n x-amz-server-side-encryption-customer-algorithm\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key-MD5\n

    \n
  • \n
\n

For more information about SSE-C, see Server-Side\n Encryption (Using Customer-Provided Encryption Keys) in the\n Amazon S3 User Guide.

\n \n

\n Directory bucket -\n For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS. SSE-C isn't supported. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

\n
\n
\n
Versioning
\n
\n
    \n
  • \n

    If the current version of the object is a delete marker, Amazon S3 behaves as\n if the object was deleted and includes x-amz-delete-marker:\n true in the response.

    \n
  • \n
  • \n

    If the specified version is a delete marker, the response returns a\n 405 Method Not Allowed error and the Last-Modified:\n timestamp response header.

    \n
  • \n
\n \n
    \n
  • \n

    \n Directory buckets -\n Delete marker is not supported for directory buckets.

    \n
  • \n
  • \n

    \n Directory buckets -\n S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null\n to the versionId query parameter in the request.

    \n
  • \n
\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n \n

For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
\n

The following actions are related to HeadObject:

\n ", "smithy.api#examples": [ { "title": "To retrieve metadata of an object without returning the object itself", @@ -25019,14 +25056,14 @@ "Expiration": { "target": "com.amazonaws.s3#Expiration", "traits": { - "smithy.api#documentation": "

If the object expiration is configured (see \n PutBucketLifecycleConfiguration\n ), the response includes\n this header. It includes the expiry-date and rule-id key-value\n pairs providing object expiration information. The value of the rule-id is\n URL-encoded.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If the object expiration is configured (see \n PutBucketLifecycleConfiguration\n ), the response includes this\n header. It includes the expiry-date and rule-id key-value pairs\n providing object expiration information. The value of the rule-id is\n URL-encoded.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-expiration" } }, "Restore": { "target": "com.amazonaws.s3#Restore", "traits": { - "smithy.api#documentation": "

If the object is an archived object (an object whose storage class is GLACIER), the\n response includes this header if either the archive restoration is in progress (see RestoreObject or an archive copy is already restored.

\n

If an archive copy is already restored, the header value indicates when Amazon S3 is\n scheduled to delete the object copy. For example:

\n

\n x-amz-restore: ongoing-request=\"false\", expiry-date=\"Fri, 21 Dec 2012 00:00:00\n GMT\"\n

\n

If the object restoration is in progress, the header returns the value\n ongoing-request=\"true\".

\n

For more information about archiving objects, see Transitioning Objects: General Considerations.

\n \n

This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
", + "smithy.api#documentation": "

If the object is an archived object (an object whose storage class is GLACIER), the\n response includes this header if either the archive restoration is in progress (see RestoreObject or an archive copy is already restored.

\n

If an archive copy is already restored, the header value indicates when Amazon S3 is\n scheduled to delete the object copy. For example:

\n

\n x-amz-restore: ongoing-request=\"false\", expiry-date=\"Fri, 21 Dec 2012 00:00:00\n GMT\"\n

\n

If the object restoration is in progress, the header returns the value\n ongoing-request=\"true\".

\n

For more information about archiving objects, see Transitioning Objects: General Considerations.

\n \n

This functionality is not supported for directory buckets.\n Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
", "smithy.api#httpHeader": "x-amz-restore" } }, @@ -25152,7 +25189,7 @@ "ServerSideEncryption": { "target": "com.amazonaws.s3#ServerSideEncryption", "traits": { - "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example,\n AES256, aws:kms, aws:kms:dsse).

", + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for\n example, AES256, aws:kms, aws:kms:dsse).

", "smithy.api#httpHeader": "x-amz-server-side-encryption" } }, @@ -25173,7 +25210,7 @@ "SSECustomerKeyMD5": { "target": "com.amazonaws.s3#SSECustomerKeyMD5", "traits": { - "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification of\n the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification\n of the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" } }, @@ -25187,14 +25224,14 @@ "BucketKeyEnabled": { "target": "com.amazonaws.s3#BucketKeyEnabled", "traits": { - "smithy.api#documentation": "

Indicates whether the object uses an S3 Bucket Key for server-side encryption\n with Key Management Service (KMS) keys (SSE-KMS).

", + "smithy.api#documentation": "

Indicates whether the object uses an S3 Bucket Key for server-side encryption with\n Key Management Service (KMS) keys (SSE-KMS).

", "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" } }, "StorageClass": { "target": "com.amazonaws.s3#StorageClass", "traits": { - "smithy.api#documentation": "

Provides storage class information of the object. Amazon S3 returns this header for all\n objects except for S3 Standard storage class objects.

\n

For more information, see Storage Classes.

\n \n

\n Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
", + "smithy.api#documentation": "

Provides storage class information of the object. Amazon S3 returns this header for all\n objects except for S3 Standard storage class objects.

\n

For more information, see Storage Classes.

\n \n

\n Directory buckets -\n Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
", "smithy.api#httpHeader": "x-amz-storage-class" } }, @@ -25250,7 +25287,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The name of the bucket that contains the object.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The name of the bucket that contains the object.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -25261,28 +25298,28 @@ "IfMatch": { "target": "com.amazonaws.s3#IfMatch", "traits": { - "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is the same as the one specified;\n otherwise, return a 412 (precondition failed) error.

\n

If both of the If-Match and\n If-Unmodified-Since headers are present in the request as\n follows:

\n \n

Then Amazon S3 returns 200 OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is the same as the one specified;\n otherwise, return a 412 (precondition failed) error.

\n

If both of the If-Match and If-Unmodified-Since headers are\n present in the request as follows:

\n \n

Then Amazon S3 returns 200 OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", "smithy.api#httpHeader": "If-Match" } }, "IfModifiedSince": { "target": "com.amazonaws.s3#IfModifiedSince", "traits": { - "smithy.api#documentation": "

Return the object only if it has been modified since the specified time; otherwise,\n return a 304 (not modified) error.

\n

If both of the If-None-Match and\n If-Modified-Since headers are present in the request as\n follows:

\n \n

Then Amazon S3 returns the 304 Not Modified response code.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#documentation": "

Return the object only if it has been modified since the specified time; otherwise,\n return a 304 (not modified) error.

\n

If both of the If-None-Match and If-Modified-Since headers are\n present in the request as follows:

\n \n

Then Amazon S3 returns the 304 Not Modified response code.

\n

For more information about conditional requests, see RFC 7232.

", "smithy.api#httpHeader": "If-Modified-Since" } }, "IfNoneMatch": { "target": "com.amazonaws.s3#IfNoneMatch", "traits": { - "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is different from the one specified;\n otherwise, return a 304 (not modified) error.

\n

If both of the If-None-Match and\n If-Modified-Since headers are present in the request as\n follows:

\n \n

Then Amazon S3 returns the 304 Not Modified response code.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is different from the one specified;\n otherwise, return a 304 (not modified) error.

\n

If both of the If-None-Match and If-Modified-Since headers are\n present in the request as follows:

\n \n

Then Amazon S3 returns the 304 Not Modified response code.

\n

For more information about conditional requests, see RFC 7232.

", "smithy.api#httpHeader": "If-None-Match" } }, "IfUnmodifiedSince": { "target": "com.amazonaws.s3#IfUnmodifiedSince", "traits": { - "smithy.api#documentation": "

Return the object only if it has not been modified since the specified time; otherwise,\n return a 412 (precondition failed) error.

\n

If both of the If-Match and\n If-Unmodified-Since headers are present in the request as\n follows:

\n \n

Then Amazon S3 returns 200 OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#documentation": "

Return the object only if it has not been modified since the specified time; otherwise,\n return a 412 (precondition failed) error.

\n

If both of the If-Match and If-Unmodified-Since headers are\n present in the request as follows:

\n \n

Then Amazon S3 returns 200 OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", "smithy.api#httpHeader": "If-Unmodified-Since" } }, @@ -25356,7 +25393,7 @@ "SSECustomerAlgorithm": { "target": "com.amazonaws.s3#SSECustomerAlgorithm", "traits": { - "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example,\n AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" } }, @@ -25397,7 +25434,7 @@ "ChecksumMode": { "target": "com.amazonaws.s3#ChecksumMode", "traits": { - "smithy.api#documentation": "

To retrieve the checksum, this parameter must be enabled.

\n

\n General purpose buckets - If you enable checksum mode and the object is uploaded with a \n checksum \n and encrypted with an Key Management Service (KMS) key, you must have permission to use the \n kms:Decrypt action to retrieve the checksum.

\n

\n Directory buckets - If you enable ChecksumMode and the object is encrypted with\n Amazon Web Services Key Management Service (Amazon Web Services KMS), you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key to retrieve the checksum of the object.

", + "smithy.api#documentation": "

To retrieve the checksum, this parameter must be enabled.

\n

\n General purpose buckets -\n If you enable checksum mode and the object is uploaded with a\n checksum\n and encrypted with an Key Management Service (KMS) key, you must have permission to use the\n kms:Decrypt action to retrieve the checksum.

\n

\n Directory buckets - If you enable\n ChecksumMode and the object is encrypted with Amazon Web Services Key Management Service\n (Amazon Web Services KMS), you must also have the kms:GenerateDataKey and\n kms:Decrypt permissions in IAM identity-based policies and KMS key\n policies for the KMS key to retrieve the checksum of the object.

", "smithy.api#httpHeader": "x-amz-checksum-mode" } } @@ -25421,6 +25458,21 @@ "com.amazonaws.s3#IfMatch": { "type": "string" }, + "com.amazonaws.s3#IfMatchInitiatedTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "http-date" + } + }, + "com.amazonaws.s3#IfMatchLastModifiedTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "http-date" + } + }, + "com.amazonaws.s3#IfMatchSize": { + "type": "long" + }, "com.amazonaws.s3#IfModifiedSince": { "type": "timestamp" }, @@ -25454,7 +25506,7 @@ "ID": { "target": "com.amazonaws.s3#ID", "traits": { - "smithy.api#documentation": "

If the principal is an Amazon Web Services account, it provides the Canonical User ID. If the\n principal is an IAM User, it provides a user ARN value.

\n \n

\n Directory buckets - If the principal is an Amazon Web Services account, it provides the Amazon Web Services account ID. If the\n principal is an IAM User, it provides a user ARN value.

\n
" + "smithy.api#documentation": "

If the principal is an Amazon Web Services account, it provides the Canonical User ID. If the\n principal is an IAM User, it provides a user ARN value.

\n \n

\n Directory buckets - If the principal is an\n Amazon Web Services account, it provides the Amazon Web Services account ID. If the principal is an IAM User, it\n provides a user ARN value.

\n
" } }, "DisplayName": { @@ -25639,11 +25691,29 @@ } }, "traits": { - "smithy.api#documentation": "

Object is archived and inaccessible until restored.

\n

If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval storage class, the \n S3 Glacier Deep Archive storage class, the S3 Intelligent-Tiering Archive Access tier, or the \n S3 Intelligent-Tiering Deep Archive Access tier, before you can retrieve the object you must first restore a\n copy using RestoreObject. Otherwise, this operation returns an\n InvalidObjectState error. For information about restoring archived objects,\n see Restoring\n Archived Objects in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

Object is archived and inaccessible until restored.

\n

If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval storage\n class, the S3 Glacier Deep Archive storage class, the S3 Intelligent-Tiering Archive Access\n tier, or the S3 Intelligent-Tiering Deep Archive Access tier, before you can retrieve the object you\n must first restore a copy using RestoreObject. Otherwise, this\n operation returns an InvalidObjectState error. For information about restoring\n archived objects, see Restoring Archived Objects in\n the Amazon S3 User Guide.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } }, + "com.amazonaws.s3#InvalidRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

You may receive this error in multiple cases. Depending on the reason for the error, you may receive one of the messages below:

\n ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.s3#InvalidWriteOffset": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

\n The write offset value that you specified does not match the current object size.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.s3#InventoryConfiguration": { "type": "structure", "members": { @@ -26091,13 +26161,19 @@ "com.amazonaws.s3#LastModified": { "type": "timestamp" }, + "com.amazonaws.s3#LastModifiedTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "http-date" + } + }, "com.amazonaws.s3#LifecycleExpiration": { "type": "structure", "members": { "Date": { "target": "com.amazonaws.s3#Date", "traits": { - "smithy.api#documentation": "

Indicates at what date the object is to be moved or deleted. The date value must conform\n to the ISO 8601 format. The time is always midnight UTC.

" + "smithy.api#documentation": "

Indicates at what date the object is to be moved or deleted. The date value must conform\n to the ISO 8601 format. The time is always midnight UTC.

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
" } }, "Days": { @@ -26109,7 +26185,7 @@ "ExpiredObjectDeleteMarker": { "target": "com.amazonaws.s3#ExpiredObjectDeleteMarker", "traits": { - "smithy.api#documentation": "

Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set\n to true, the delete marker will be expired; if set to false the policy takes no action.\n This cannot be specified with Days or Date in a Lifecycle Expiration Policy.

" + "smithy.api#documentation": "

Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set\n to true, the delete marker will be expired; if set to false the policy takes no action.\n This cannot be specified with Days or Date in a Lifecycle Expiration Policy.

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
" } } }, @@ -26142,7 +26218,7 @@ "Filter": { "target": "com.amazonaws.s3#LifecycleRuleFilter", "traits": { - "smithy.api#documentation": "

The Filter is used to identify objects that a Lifecycle Rule applies to. A\n Filter must have exactly one of Prefix, Tag, or\n And specified. Filter is required if the\n LifecycleRule does not contain a Prefix element.

" + "smithy.api#documentation": "

The Filter is used to identify objects that a Lifecycle Rule applies to. A\n Filter must have exactly one of Prefix, Tag, or\n And specified. Filter is required if the\n LifecycleRule does not contain a Prefix element.

\n \n

\n Tag filters are not supported for directory buckets.

\n
" } }, "Status": { @@ -26155,7 +26231,7 @@ "Transitions": { "target": "com.amazonaws.s3#TransitionList", "traits": { - "smithy.api#documentation": "

Specifies when an Amazon S3 object transitions to a specified storage class.

", + "smithy.api#documentation": "

Specifies when an Amazon S3 object transitions to a specified storage class.

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
", "smithy.api#xmlFlattened": {}, "smithy.api#xmlName": "Transition" } @@ -26163,7 +26239,7 @@ "NoncurrentVersionTransitions": { "target": "com.amazonaws.s3#NoncurrentVersionTransitionList", "traits": { - "smithy.api#documentation": "

Specifies the transition rule for the lifecycle rule that describes when noncurrent\n objects transition to a specific storage class. If your bucket is versioning-enabled (or\n versioning is suspended), you can set this action to request that Amazon S3 transition\n noncurrent object versions to a specific storage class at a set period in the object's\n lifetime.

", + "smithy.api#documentation": "

Specifies the transition rule for the lifecycle rule that describes when noncurrent\n objects transition to a specific storage class. If your bucket is versioning-enabled (or\n versioning is suspended), you can set this action to request that Amazon S3 transition\n noncurrent object versions to a specific storage class at a set period in the object's\n lifetime.

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
", "smithy.api#xmlFlattened": {}, "smithy.api#xmlName": "NoncurrentVersionTransition" } @@ -26225,7 +26301,7 @@ "Tag": { "target": "com.amazonaws.s3#Tag", "traits": { - "smithy.api#documentation": "

This tag must exist in the object's tag set in order for the rule to apply.

" + "smithy.api#documentation": "

This tag must exist in the object's tag set in order for the rule to apply.

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
" } }, "ObjectSizeGreaterThan": { @@ -26245,7 +26321,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Filter is used to identify objects that a Lifecycle Rule applies to. A\n Filter can have exactly one of Prefix, Tag, ObjectSizeGreaterThan, ObjectSizeLessThan, or\n And specified. If the Filter element is left empty, the Lifecycle Rule applies to all objects in the bucket.

" + "smithy.api#documentation": "

The Filter is used to identify objects that a Lifecycle Rule applies to. A\n Filter can have exactly one of Prefix, Tag,\n ObjectSizeGreaterThan, ObjectSizeLessThan, or And\n specified. If the Filter element is left empty, the Lifecycle Rule applies to\n all objects in the bucket.

" } }, "com.amazonaws.s3#LifecycleRules": { @@ -26263,7 +26339,7 @@ "target": "com.amazonaws.s3#ListBucketAnalyticsConfigurationsOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Lists the analytics configurations for the bucket. You can have up to 1,000 analytics\n configurations per bucket.

\n

This action supports list pagination and does not return more than 100 configurations at\n a time. You should always check the IsTruncated element in the response. If\n there are no more configurations to list, IsTruncated is set to false. If\n there are more configurations to list, IsTruncated is set to true, and there\n will be a value in NextContinuationToken. You use the\n NextContinuationToken value to continue the pagination of the list by\n passing the value in continuation-token in the request to GET the next\n page.

\n

To use this operation, you must have permissions to perform the\n s3:GetAnalyticsConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class\n Analysis.

\n

The following operations are related to\n ListBucketAnalyticsConfigurations:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Lists the analytics configurations for the bucket. You can have up to 1,000 analytics\n configurations per bucket.

\n

This action supports list pagination and does not return more than 100 configurations at\n a time. You should always check the IsTruncated element in the response. If\n there are no more configurations to list, IsTruncated is set to false. If\n there are more configurations to list, IsTruncated is set to true, and there\n will be a value in NextContinuationToken. You use the\n NextContinuationToken value to continue the pagination of the list by\n passing the value in continuation-token in the request to GET the next\n page.

\n

To use this operation, you must have permissions to perform the\n s3:GetAnalyticsConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class\n Analysis.

\n

The following operations are related to\n ListBucketAnalyticsConfigurations:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?analytics&x-id=ListBucketAnalyticsConfigurations", @@ -26353,7 +26429,7 @@ "target": "com.amazonaws.s3#ListBucketIntelligentTieringConfigurationsOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Lists the S3 Intelligent-Tiering configuration from the specified bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to ListBucketIntelligentTieringConfigurations include:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Lists the S3 Intelligent-Tiering configuration from the specified bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to ListBucketIntelligentTieringConfigurations include:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?intelligent-tiering&x-id=ListBucketIntelligentTieringConfigurations", @@ -26435,7 +26511,7 @@ "target": "com.amazonaws.s3#ListBucketInventoryConfigurationsOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns a list of inventory configurations for the bucket. You can have up to 1,000\n analytics configurations per bucket.

\n

This action supports list pagination and does not return more than 100 configurations at\n a time. Always check the IsTruncated element in the response. If there are no\n more configurations to list, IsTruncated is set to false. If there are more\n configurations to list, IsTruncated is set to true, and there is a value in\n NextContinuationToken. You use the NextContinuationToken value\n to continue the pagination of the list by passing the value in continuation-token in the\n request to GET the next page.

\n

To use this operation, you must have permissions to perform the\n s3:GetInventoryConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory\n

\n

The following operations are related to\n ListBucketInventoryConfigurations:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns a list of inventory configurations for the bucket. You can have up to 1,000\n analytics configurations per bucket.

\n

This action supports list pagination and does not return more than 100 configurations at\n a time. Always check the IsTruncated element in the response. If there are no\n more configurations to list, IsTruncated is set to false. If there are more\n configurations to list, IsTruncated is set to true, and there is a value in\n NextContinuationToken. You use the NextContinuationToken value\n to continue the pagination of the list by passing the value in continuation-token in the\n request to GET the next page.

\n

To use this operation, you must have permissions to perform the\n s3:GetInventoryConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory\n

\n

The following operations are related to\n ListBucketInventoryConfigurations:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?inventory&x-id=ListBucketInventoryConfigurations", @@ -26525,7 +26601,7 @@ "target": "com.amazonaws.s3#ListBucketMetricsConfigurationsOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Lists the metrics configurations for the bucket. The metrics configurations are only for\n the request metrics of the bucket and do not provide information on daily storage metrics.\n You can have up to 1,000 configurations per bucket.

\n

This action supports list pagination and does not return more than 100 configurations at\n a time. Always check the IsTruncated element in the response. If there are no\n more configurations to list, IsTruncated is set to false. If there are more\n configurations to list, IsTruncated is set to true, and there is a value in\n NextContinuationToken. You use the NextContinuationToken value\n to continue the pagination of the list by passing the value in\n continuation-token in the request to GET the next page.

\n

To use this operation, you must have permissions to perform the\n s3:GetMetricsConfiguration action. The bucket owner has this permission by\n default. The bucket owner can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For more information about metrics configurations and CloudWatch request metrics, see\n Monitoring Metrics with Amazon CloudWatch.

\n

The following operations are related to\n ListBucketMetricsConfigurations:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Lists the metrics configurations for the bucket. The metrics configurations are only for\n the request metrics of the bucket and do not provide information on daily storage metrics.\n You can have up to 1,000 configurations per bucket.

\n

This action supports list pagination and does not return more than 100 configurations at\n a time. Always check the IsTruncated element in the response. If there are no\n more configurations to list, IsTruncated is set to false. If there are more\n configurations to list, IsTruncated is set to true, and there is a value in\n NextContinuationToken. You use the NextContinuationToken value\n to continue the pagination of the list by passing the value in\n continuation-token in the request to GET the next page.

\n

To use this operation, you must have permissions to perform the\n s3:GetMetricsConfiguration action. The bucket owner has this permission by\n default. The bucket owner can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For more information about metrics configurations and CloudWatch request metrics, see\n Monitoring Metrics with Amazon CloudWatch.

\n

The following operations are related to\n ListBucketMetricsConfigurations:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?metrics&x-id=ListBucketMetricsConfigurations", @@ -26610,7 +26686,7 @@ "target": "com.amazonaws.s3#ListBucketsOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns a list of all buckets owned by the authenticated sender of the request. To use\n this operation, you must have the s3:ListAllMyBuckets permission.

\n

For information about Amazon S3 buckets, see Creating, configuring, and\n working with Amazon S3 buckets.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are only supported for \n Amazon Web Services accounts set to the default general purpose bucket quota of 10,000. If you have an approved \n general purpose bucket quota above 10,000, you must send paginated requests to list your account’s buckets. \n All unpaginated ListBuckets requests will be rejected for Amazon Web Services accounts with a general purpose bucket quota \n greater than 10,000.

\n
", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns a list of all buckets owned by the authenticated sender of the request. To grant IAM permission to use\n this operation, you must add the s3:ListAllMyBuckets policy action.

\n

For information about Amazon S3 buckets, see Creating, configuring, and\n working with Amazon S3 buckets.

\n \n

We strongly recommend using only paginated ListBuckets requests. Unpaginated ListBuckets requests are only supported for \n Amazon Web Services accounts set to the default general purpose bucket quota of 10,000. If you have an approved \n general purpose bucket quota above 10,000, you must send paginated ListBuckets requests to list your account’s buckets. \n All unpaginated ListBuckets requests will be rejected for Amazon Web Services accounts with a general purpose bucket quota \n greater than 10,000.

\n
", "smithy.api#examples": [ { "title": "To list all buckets", @@ -26668,7 +26744,7 @@ "ContinuationToken": { "target": "com.amazonaws.s3#NextToken", "traits": { - "smithy.api#documentation": "

\n ContinuationToken is included in the\n response when there are more buckets that can be listed with pagination. The next ListBuckets request to Amazon S3 can be continued with this ContinuationToken. ContinuationToken is obfuscated and is not a real bucket.

" + "smithy.api#documentation": "

\n ContinuationToken is included in the response when there are more buckets\n that can be listed with pagination. The next ListBuckets request to Amazon S3 can\n be continued with this ContinuationToken. ContinuationToken is\n obfuscated and is not a real bucket.

" } }, "Prefix": { @@ -26689,28 +26765,28 @@ "MaxBuckets": { "target": "com.amazonaws.s3#MaxBuckets", "traits": { - "smithy.api#documentation": "

Maximum number of buckets to be returned in response. When the number is more than the count of buckets that are owned by an Amazon Web Services account, return all the buckets in response.

", + "smithy.api#documentation": "

Maximum number of buckets to be returned in response. When the number is more than the\n count of buckets that are owned by an Amazon Web Services account, return all the buckets in\n response.

", "smithy.api#httpQuery": "max-buckets" } }, "ContinuationToken": { "target": "com.amazonaws.s3#Token", "traits": { - "smithy.api#documentation": "

\n ContinuationToken indicates to Amazon S3 that the list is being continued on\n this bucket with a token. ContinuationToken is obfuscated and is not a real\n key. You can use this ContinuationToken for pagination of the list results.

\n

Length Constraints: Minimum length of 0. Maximum length of 1024.

\n

Required: No.

\n \n

If you specify the bucket-region, prefix, or continuation-token \n query parameters without using max-buckets to set the maximum number of buckets returned in the response, \n Amazon S3 applies a default page size of 10,000 and provides a continuation token if there are more buckets.

\n
", + "smithy.api#documentation": "

\n ContinuationToken indicates to Amazon S3 that the list is being continued on\n this bucket with a token. ContinuationToken is obfuscated and is not a real\n key. You can use this ContinuationToken for pagination of the list results.

\n

Length Constraints: Minimum length of 0. Maximum length of 1024.

\n

Required: No.

\n \n

If you specify the bucket-region, prefix, or continuation-token \n query parameters without using max-buckets to set the maximum number of buckets returned in the response, \n Amazon S3 applies a default page size of 10,000 and provides a continuation token if there are more buckets.

\n
", "smithy.api#httpQuery": "continuation-token" } }, "Prefix": { "target": "com.amazonaws.s3#Prefix", "traits": { - "smithy.api#documentation": "

Limits the response to bucket names that begin with the specified bucket name prefix.

", + "smithy.api#documentation": "

Limits the response to bucket names that begin with the specified bucket name\n prefix.

", "smithy.api#httpQuery": "prefix" } }, "BucketRegion": { "target": "com.amazonaws.s3#BucketRegion", "traits": { - "smithy.api#documentation": "

Limits the response to buckets that are located in the specified Amazon Web Services Region. The Amazon Web Services Region must be expressed according to the Amazon Web Services Region code, such as us-west-2 for the US West (Oregon) Region. For a list of the valid values for all of the Amazon Web Services Regions, see Regions and Endpoints.

\n \n

Requests made to a Regional endpoint that is different from the bucket-region parameter are not supported. For example, if you want to limit the response to your buckets in Region us-west-2, the request must be made to an endpoint in Region us-west-2.

\n
", + "smithy.api#documentation": "

Limits the response to buckets that are located in the specified Amazon Web Services Region. The Amazon Web Services\n Region must be expressed according to the Amazon Web Services Region code, such as us-west-2\n for the US West (Oregon) Region. For a list of the valid values for all of the Amazon Web Services\n Regions, see Regions and Endpoints.

\n \n

Requests made to a Regional endpoint that is different from the\n bucket-region parameter are not supported. For example, if you want to\n limit the response to your buckets in Region us-west-2, the request must be\n made to an endpoint in Region us-west-2.

\n
", "smithy.api#httpQuery": "bucket-region" } } @@ -26728,7 +26804,7 @@ "target": "com.amazonaws.s3#ListDirectoryBucketsOutput" }, "traits": { - "smithy.api#documentation": "

Returns a list of all Amazon S3 directory buckets owned by the authenticated sender of the request. For more information about directory buckets, see Directory buckets in the Amazon S3 User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

You must have the s3express:ListAllMyDirectoryBuckets permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n \n

The BucketRegion response element is not part of the ListDirectoryBuckets Response Syntax.

\n
", + "smithy.api#documentation": "

Returns a list of all Amazon S3 directory buckets owned by the authenticated sender of the\n request. For more information about directory buckets, see Directory buckets in the Amazon S3 User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

You must have the s3express:ListAllMyDirectoryBuckets permission\n in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host\n header syntax is\n s3express-control.region.amazonaws.com.

\n
\n
\n \n

The BucketRegion response element is not part of the\n ListDirectoryBuckets Response Syntax.

\n
", "smithy.api#http": { "method": "GET", "uri": "/?x-id=ListDirectoryBuckets", @@ -26759,7 +26835,7 @@ "ContinuationToken": { "target": "com.amazonaws.s3#DirectoryBucketToken", "traits": { - "smithy.api#documentation": "

If ContinuationToken was sent with the request, it is included in the\n response. You can use the returned ContinuationToken for pagination of the list response.

" + "smithy.api#documentation": "

If ContinuationToken was sent with the request, it is included in the\n response. You can use the returned ContinuationToken for pagination of the\n list response.

" } } }, @@ -26774,14 +26850,14 @@ "ContinuationToken": { "target": "com.amazonaws.s3#DirectoryBucketToken", "traits": { - "smithy.api#documentation": "

\n ContinuationToken indicates to Amazon S3 that the list is being continued on buckets in this account with a token. ContinuationToken is obfuscated and is not a real\n bucket name. You can use this ContinuationToken for the pagination of the list results.

", + "smithy.api#documentation": "

\n ContinuationToken indicates to Amazon S3 that the list is being continued on\n buckets in this account with a token. ContinuationToken is obfuscated and is\n not a real bucket name. You can use this ContinuationToken for the pagination\n of the list results.

", "smithy.api#httpQuery": "continuation-token" } }, "MaxDirectoryBuckets": { "target": "com.amazonaws.s3#MaxDirectoryBuckets", "traits": { - "smithy.api#documentation": "

Maximum number of buckets to be returned in response. When the number is more than the count of buckets that are owned by an Amazon Web Services account, return all the buckets in response.

", + "smithy.api#documentation": "

Maximum number of buckets to be returned in response. When the number is more than the\n count of buckets that are owned by an Amazon Web Services account, return all the buckets in\n response.

", "smithy.api#httpQuery": "max-directory-buckets" } } @@ -26799,7 +26875,7 @@ "target": "com.amazonaws.s3#ListMultipartUploadsOutput" }, "traits": { - "smithy.api#documentation": "

This operation lists in-progress multipart uploads in a bucket. An in-progress multipart upload is a\n multipart upload that has been initiated by the CreateMultipartUpload request, but\n has not yet been completed or aborted.

\n \n

\n Directory buckets - \n If multipart uploads in a directory bucket are in progress, you can't delete the bucket until all the in-progress multipart uploads are aborted or completed. \n To delete these in-progress multipart uploads, use the ListMultipartUploads operation to list the in-progress multipart\n uploads in the bucket and use the AbortMultipartUpload operation to abort all the in-progress multipart uploads.\n

\n
\n

The ListMultipartUploads operation returns a maximum of 1,000 multipart uploads in the response. The limit of 1,000 multipart\n uploads is also the default\n value. You can further limit the number of uploads in a response by specifying the\n max-uploads request parameter. If there are more than 1,000 multipart uploads that \n satisfy your ListMultipartUploads request, the response returns an IsTruncated element\n with the value of true, a NextKeyMarker element, and a NextUploadIdMarker element. \n To list the remaining multipart uploads, you need to make subsequent ListMultipartUploads requests. \n In these requests, include two query parameters: key-marker and upload-id-marker. \n Set the value of key-marker to the NextKeyMarker value from the previous response. \n Similarly, set the value of upload-id-marker to the NextUploadIdMarker value from the previous response.

\n \n

\n Directory buckets - The upload-id-marker element and \n the NextUploadIdMarker element aren't supported by directory buckets. \n To list the additional multipart uploads, you only need to set the value of key-marker to the NextKeyMarker value from the previous response.

\n
\n

For more information about multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3\n User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information about permissions required to use the multipart upload API, see Multipart Upload\n and Permissions in the Amazon S3\n User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Sorting of multipart uploads in response
\n
\n
    \n
  • \n

    \n General purpose bucket - In the ListMultipartUploads response, the multipart uploads are sorted based on two criteria:

    \n
      \n
    • \n

      Key-based sorting - Multipart uploads are initially sorted in ascending order based on their object keys.

      \n
    • \n
    • \n

      Time-based sorting - For uploads that share the same object key, \n they are further sorted in ascending order based on the upload initiation time. Among uploads with the same key, the one that was initiated first will appear before the ones that were initiated later.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket - In the ListMultipartUploads response, the multipart uploads aren't sorted lexicographically based on the object keys. \n \n

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to ListMultipartUploads:

\n ", + "smithy.api#documentation": "

This operation lists in-progress multipart uploads in a bucket. An in-progress multipart\n upload is a multipart upload that has been initiated by the\n CreateMultipartUpload request, but has not yet been completed or\n aborted.

\n \n

\n Directory buckets - If multipart uploads in\n a directory bucket are in progress, you can't delete the bucket until all the\n in-progress multipart uploads are aborted or completed. To delete these in-progress\n multipart uploads, use the ListMultipartUploads operation to list the\n in-progress multipart uploads in the bucket and use the\n AbortMultipartUpload operation to abort all the in-progress multipart\n uploads.

\n
\n

The ListMultipartUploads operation returns a maximum of 1,000 multipart\n uploads in the response. The limit of 1,000 multipart uploads is also the default value.\n You can further limit the number of uploads in a response by specifying the\n max-uploads request parameter. If there are more than 1,000 multipart\n uploads that satisfy your ListMultipartUploads request, the response returns\n an IsTruncated element with the value of true, a\n NextKeyMarker element, and a NextUploadIdMarker element. To\n list the remaining multipart uploads, you need to make subsequent\n ListMultipartUploads requests. In these requests, include two query\n parameters: key-marker and upload-id-marker. Set the value of\n key-marker to the NextKeyMarker value from the previous\n response. Similarly, set the value of upload-id-marker to the\n NextUploadIdMarker value from the previous response.

\n \n

\n Directory buckets - The\n upload-id-marker element and the NextUploadIdMarker element\n aren't supported by directory buckets. To list the additional multipart uploads, you\n only need to set the value of key-marker to the NextKeyMarker\n value from the previous response.

\n
\n

For more information about multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3 User Guide.

\n \n

\n Directory buckets -\n For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For\n information about permissions required to use the multipart upload API, see\n Multipart Upload and\n Permissions in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Sorting of multipart uploads in response
\n
\n
    \n
  • \n

    \n General purpose bucket - In the\n ListMultipartUploads response, the multipart uploads are\n sorted based on two criteria:

    \n
      \n
    • \n

      Key-based sorting - Multipart uploads are initially sorted\n in ascending order based on their object keys.

      \n
    • \n
    • \n

      Time-based sorting - For uploads that share the same object\n key, they are further sorted in ascending order based on the upload\n initiation time. Among uploads with the same key, the one that was\n initiated first will appear before the ones that were initiated\n later.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket - In the\n ListMultipartUploads response, the multipart uploads aren't\n sorted lexicographically based on the object keys.\n \n

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to ListMultipartUploads:

\n ", "smithy.api#examples": [ { "title": "List next set of multipart uploads when previous result is truncated", @@ -26915,7 +26991,7 @@ "UploadIdMarker": { "target": "com.amazonaws.s3#UploadIdMarker", "traits": { - "smithy.api#documentation": "

Together with key-marker, specifies the multipart upload after which listing should\n begin. If key-marker is not specified, the upload-id-marker parameter is ignored.\n Otherwise, any multipart uploads for a key equal to the key-marker might be included in the\n list only if they have an upload ID lexicographically greater than the specified\n upload-id-marker.

\n \n

This functionality is not supported for directory buckets.

\n
" + "smithy.api#documentation": "

Together with key-marker, specifies the multipart upload after which listing should\n begin. If key-marker is not specified, the upload-id-marker parameter is ignored.\n Otherwise, any multipart uploads for a key equal to the key-marker might be included in the\n list only if they have an upload ID lexicographically greater than the specified\n upload-id-marker.

\n \n

This functionality is not supported for directory buckets.

\n
" } }, "NextKeyMarker": { @@ -26993,7 +27069,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The name of the bucket to which the multipart upload was initiated.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The name of the bucket to which the multipart upload was initiated.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -27017,7 +27093,7 @@ "KeyMarker": { "target": "com.amazonaws.s3#KeyMarker", "traits": { - "smithy.api#documentation": "

Specifies the multipart upload after which listing should begin.

\n \n \n ", + "smithy.api#documentation": "

Specifies the multipart upload after which listing should begin.

\n \n \n ", "smithy.api#httpQuery": "key-marker" } }, @@ -27072,7 +27148,7 @@ "target": "com.amazonaws.s3#ListObjectVersionsOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns metadata about all versions of the objects in a bucket. You can also use request\n parameters as selection criteria to return metadata about a subset of all the object\n versions.

\n \n

To use this operation, you must have permission to perform the\n s3:ListBucketVersions action. Be aware of the name difference.

\n
\n \n

A 200 OK response can contain valid or invalid XML. Make sure to design\n your application to parse the contents of the response and handle it\n appropriately.

\n
\n

To use this operation, you must have READ access to the bucket.

\n

The following operations are related to ListObjectVersions:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns metadata about all versions of the objects in a bucket. You can also use request\n parameters as selection criteria to return metadata about a subset of all the object\n versions.

\n \n

To use this operation, you must have permission to perform the\n s3:ListBucketVersions action. Be aware of the name difference.

\n
\n \n

A 200 OK response can contain valid or invalid XML. Make sure to design\n your application to parse the contents of the response and handle it\n appropriately.

\n
\n

To use this operation, you must have READ access to the bucket.

\n

The following operations are related to ListObjectVersions:

\n ", "smithy.api#examples": [ { "title": "To list object versions", @@ -27315,7 +27391,7 @@ } ], "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request\n parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK\n response can contain valid or invalid XML. Be sure to design your application to parse the\n contents of the response and handle it appropriately.

\n \n

This action has been revised. We recommend that you use the newer version, ListObjectsV2, when developing applications. For backward compatibility,\n Amazon S3 continues to support ListObjects.

\n
\n

The following operations are related to ListObjects:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request\n parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK\n response can contain valid or invalid XML. Be sure to design your application to parse the\n contents of the response and handle it appropriately.

\n \n

This action has been revised. We recommend that you use the newer version, ListObjectsV2, when developing applications. For backward compatibility,\n Amazon S3 continues to support ListObjects.

\n
\n

The following operations are related to ListObjects:

\n ", "smithy.api#examples": [ { "title": "To list objects in a bucket", @@ -27443,7 +27519,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The name of the bucket containing the objects.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The name of the bucket containing the objects.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -27528,7 +27604,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns some or all (up to 1,000) of the objects in a bucket with each request. You can\n use the request parameters as selection criteria to return a subset of the objects in a\n bucket. A 200 OK response can contain valid or invalid XML. Make sure to\n design your application to parse the contents of the response and handle it appropriately.\n \n For more information about listing objects, see Listing object keys\n programmatically in the Amazon S3 User Guide. To get a list of your buckets, see ListBuckets.

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To use this operation, you must have READ access to the bucket. You must have permission to perform\n the s3:ListBucket action. The bucket owner has this permission by default and\n can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Sorting order of returned objects
\n
\n
    \n
  • \n

    \n General purpose bucket - For general purpose buckets, ListObjectsV2 returns objects in lexicographical order based on their key names.

    \n
  • \n
  • \n

    \n Directory bucket - For directory buckets, ListObjectsV2 does not return objects in lexicographical order.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n \n

This section describes the latest revision of this action. We recommend that you use\n this revised API operation for application development. For backward compatibility, Amazon S3\n continues to support the prior version of this API operation, ListObjects.

\n
\n

The following operations are related to ListObjectsV2:

\n ", + "smithy.api#documentation": "

Returns some or all (up to 1,000) of the objects in a bucket with each request. You can\n use the request parameters as selection criteria to return a subset of the objects in a\n bucket. A 200 OK response can contain valid or invalid XML. Make sure to\n design your application to parse the contents of the response and handle it appropriately.\n For more information about listing objects, see Listing object keys\n programmatically in the Amazon S3 User Guide. To get a list of\n your buckets, see ListBuckets.

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To\n use this operation, you must have READ access to the bucket. You must have\n permission to perform the s3:ListBucket action. The bucket\n owner has this permission by default and can grant this permission to\n others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access\n Permissions to Your Amazon S3 Resources in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Sorting order of returned objects
\n
\n
    \n
  • \n

    \n General purpose bucket - For\n general purpose buckets, ListObjectsV2 returns objects in\n lexicographical order based on their key names.

    \n
  • \n
  • \n

    \n Directory bucket - For\n directory buckets, ListObjectsV2 does not return objects in\n lexicographical order.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n \n

This section describes the latest revision of this action. We recommend that you use\n this revised API operation for application development. For backward compatibility, Amazon S3\n continues to support the prior version of this API operation, ListObjects.

\n
\n

The following operations are related to ListObjectsV2:

\n ", "smithy.api#examples": [ { "title": "To get object list", @@ -27618,7 +27694,7 @@ "CommonPrefixes": { "target": "com.amazonaws.s3#CommonPrefixList", "traits": { - "smithy.api#documentation": "

All of the keys (up to 1,000) that share the same prefix are grouped together. When counting the total numbers of returns by this API operation, \n this group of keys is considered as one item.

\n

A response can contain CommonPrefixes only if you specify a\n delimiter.

\n

\n CommonPrefixes contains all (if there are any) keys between\n Prefix and the next occurrence of the string specified by a\n delimiter.

\n

\n CommonPrefixes lists keys that act like subdirectories in the directory\n specified by Prefix.

\n

For example, if the prefix is notes/ and the delimiter is a slash\n (/) as in notes/summer/july, the common prefix is\n notes/summer/. All of the keys that roll up into a common prefix count as a\n single return when calculating the number of returns.

\n \n \n ", + "smithy.api#documentation": "

All of the keys (up to 1,000) that share the same prefix are grouped together. When\n counting the total numbers of returns by this API operation, this group of keys is\n considered as one item.

\n

A response can contain CommonPrefixes only if you specify a\n delimiter.

\n

\n CommonPrefixes contains all (if there are any) keys between\n Prefix and the next occurrence of the string specified by a\n delimiter.

\n

\n CommonPrefixes lists keys that act like subdirectories in the directory\n specified by Prefix.

\n

For example, if the prefix is notes/ and the delimiter is a slash\n (/) as in notes/summer/july, the common prefix is\n notes/summer/. All of the keys that roll up into a common prefix count as a\n single return when calculating the number of returns.

\n \n \n ", "smithy.api#xmlFlattened": {} } }, @@ -27637,7 +27713,7 @@ "ContinuationToken": { "target": "com.amazonaws.s3#Token", "traits": { - "smithy.api#documentation": "

If ContinuationToken was sent with the request, it is included in the\n response. You can use the returned ContinuationToken for pagination of the list response. You can use this ContinuationToken for pagination of the list results.

" + "smithy.api#documentation": "

If ContinuationToken was sent with the request, it is included in the\n response. You can use the returned ContinuationToken for pagination of the\n list response. You can use this ContinuationToken for pagination of the list\n results.

" } }, "NextContinuationToken": { @@ -27670,7 +27746,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -27681,14 +27757,14 @@ "Delimiter": { "target": "com.amazonaws.s3#Delimiter", "traits": { - "smithy.api#documentation": "

A delimiter is a character that you use to group keys.

\n \n \n ", + "smithy.api#documentation": "

A delimiter is a character that you use to group keys.

\n \n \n ", "smithy.api#httpQuery": "delimiter" } }, "EncodingType": { "target": "com.amazonaws.s3#EncodingType", "traits": { - "smithy.api#documentation": "

Encoding type used by Amazon S3 to encode the object keys in the response.\n Responses are encoded only in UTF-8. An object key can contain any Unicode character.\n However, the XML 1.0 parser can't parse certain characters, such as characters with an\n ASCII value from 0 to 10. For characters that aren't supported in XML 1.0, you can add this\n parameter to request that Amazon S3 encode the keys in the response. For more information about\n characters to avoid in object key names, see Object key naming\n guidelines.

\n \n

When using the URL encoding type, non-ASCII characters that are used in an object's\n key name will be percent-encoded according to UTF-8 code values. For example, the object\n test_file(3).png will appear as\n test_file%283%29.png.

\n
", + "smithy.api#documentation": "

Encoding type used by Amazon S3 to encode the object keys in the response.\n Responses are encoded only in UTF-8. An object key can contain any Unicode character.\n However, the XML 1.0 parser can't parse certain characters, such as characters with an\n ASCII value from 0 to 10. For characters that aren't supported in XML 1.0, you can add this\n parameter to request that Amazon S3 encode the keys in the response. For more information about\n characters to avoid in object key names, see Object key naming\n guidelines.

\n \n

When using the URL encoding type, non-ASCII characters that are used in an object's\n key name will be percent-encoded according to UTF-8 code values. For example, the object\n test_file(3).png will appear as\n test_file%283%29.png.

\n
", "smithy.api#httpQuery": "encoding-type" } }, @@ -27712,14 +27788,14 @@ "ContinuationToken": { "target": "com.amazonaws.s3#Token", "traits": { - "smithy.api#documentation": "

\n ContinuationToken indicates to Amazon S3 that the list is being continued on\n this bucket with a token. ContinuationToken is obfuscated and is not a real\n key. You can use this ContinuationToken for pagination of the list results.

", + "smithy.api#documentation": "

\n ContinuationToken indicates to Amazon S3 that the list is being continued on\n this bucket with a token. ContinuationToken is obfuscated and is not a real\n key. You can use this ContinuationToken for pagination of the list results.\n

", "smithy.api#httpQuery": "continuation-token" } }, "FetchOwner": { "target": "com.amazonaws.s3#FetchOwner", "traits": { - "smithy.api#documentation": "

The owner field is not present in ListObjectsV2 by default. If you want to\n return the owner field with each key in the result, then set the FetchOwner\n field to true.

\n \n

\n Directory buckets - For directory buckets, the bucket owner is returned as the object owner for all objects.

\n
", + "smithy.api#documentation": "

The owner field is not present in ListObjectsV2 by default. If you want to\n return the owner field with each key in the result, then set the FetchOwner\n field to true.

\n \n

\n Directory buckets - For directory buckets,\n the bucket owner is returned as the object owner for all objects.

\n
", "smithy.api#httpQuery": "fetch-owner" } }, @@ -27765,7 +27841,7 @@ "target": "com.amazonaws.s3#ListPartsOutput" }, "traits": { - "smithy.api#documentation": "

Lists the parts that have been uploaded for a specific multipart upload.

\n

To use this operation, you must provide the upload ID in the request. You obtain this uploadID by sending the initiate multipart upload\n request through CreateMultipartUpload.

\n

The ListParts request returns a maximum of 1,000 uploaded parts. The limit of 1,000 parts is also the default value. You can restrict the number of parts in a response by specifying the\n max-parts request parameter. If your multipart upload consists of more than\n 1,000 parts, the response returns an IsTruncated field with the value of true,\n and a NextPartNumberMarker element. To list remaining uploaded parts, in subsequent ListParts\n requests, include the part-number-marker query string parameter and set its value to\n the NextPartNumberMarker field value from the previous response.

\n

For more information on multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3\n User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information about permissions required to use the multipart upload API, see Multipart Upload\n and Permissions in the Amazon S3\n User Guide.

    \n

    If the upload was created using server-side encryption with Key Management Service (KMS) keys\n (SSE-KMS) or dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), you must have permission\n to the kms:Decrypt action for the ListParts request to succeed.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to ListParts:

\n ", + "smithy.api#documentation": "

Lists the parts that have been uploaded for a specific multipart upload.

\n

To use this operation, you must provide the upload ID in the request. You\n obtain this uploadID by sending the initiate multipart upload request through CreateMultipartUpload.

\n

The ListParts request returns a maximum of 1,000 uploaded parts. The limit\n of 1,000 parts is also the default value. You can restrict the number of parts in a\n response by specifying the max-parts request parameter. If your multipart\n upload consists of more than 1,000 parts, the response returns an IsTruncated\n field with the value of true, and a NextPartNumberMarker element.\n To list remaining uploaded parts, in subsequent ListParts requests, include\n the part-number-marker query string parameter and set its value to the\n NextPartNumberMarker field value from the previous response.

\n

For more information on multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3 User Guide.

\n \n

\n Directory buckets -\n For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For\n information about permissions required to use the multipart upload API, see\n Multipart Upload and\n Permissions in the Amazon S3 User Guide.

    \n

    If the upload was created using server-side encryption with Key Management Service\n (KMS) keys (SSE-KMS) or dual-layer server-side encryption with\n Amazon Web Services KMS keys (DSSE-KMS), you must have permission to the\n kms:Decrypt action for the ListParts request to\n succeed.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to ListParts:

\n ", "smithy.api#examples": [ { "title": "To list parts of a multipart upload.", @@ -27877,7 +27953,7 @@ "Parts": { "target": "com.amazonaws.s3#Parts", "traits": { - "smithy.api#documentation": "

Container for elements related to a particular part. A response can contain zero or\n more Part elements.

", + "smithy.api#documentation": "

Container for elements related to a particular part. A response can contain zero or more\n Part elements.

", "smithy.api#xmlFlattened": {}, "smithy.api#xmlName": "Part" } @@ -27891,13 +27967,13 @@ "Owner": { "target": "com.amazonaws.s3#Owner", "traits": { - "smithy.api#documentation": "

Container element that identifies the object owner, after the object is created. If\n multipart upload is initiated by an IAM user, this element provides the parent account ID\n and display name.

\n \n

\n Directory buckets - The bucket owner is returned as the object owner for all the parts.

\n
" + "smithy.api#documentation": "

Container element that identifies the object owner, after the object is created. If\n multipart upload is initiated by an IAM user, this element provides the parent account ID\n and display name.

\n \n

\n Directory buckets - The bucket owner is\n returned as the object owner for all the parts.

\n
" } }, "StorageClass": { "target": "com.amazonaws.s3#StorageClass", "traits": { - "smithy.api#documentation": "

The class of storage used to store the uploaded\n object.

\n \n

\n Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" + "smithy.api#documentation": "

The class of storage used to store the uploaded object.

\n \n

\n Directory buckets -\n Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" } }, "RequestCharged": { @@ -27924,7 +28000,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The name of the bucket to which the parts are being uploaded.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The name of the bucket to which the parts are being uploaded.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -28019,12 +28095,12 @@ "Name": { "target": "com.amazonaws.s3#LocationNameAsString", "traits": { - "smithy.api#documentation": "

The name of the location where the bucket will be created.

\n

For directory buckets, the name of the location is the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is usw2-az1.

" + "smithy.api#documentation": "

The name of the location where the bucket will be created.

\n

For directory buckets, the name of the location is the AZ ID of the Availability Zone where the\n bucket will be created. An example AZ ID value is usw2-az1.

" } } }, "traits": { - "smithy.api#documentation": "

Specifies the location where the bucket will be created.

\n

For directory buckets, the location type is Availability Zone. For more information about directory buckets, see \n Directory buckets in the Amazon S3 User Guide.

\n \n

This functionality is only supported by directory buckets.

\n
" + "smithy.api#documentation": "

Specifies the location where the bucket will be created.

\n

For directory buckets, the location type is Availability Zone. For more information about\n directory buckets, see Directory buckets in the Amazon S3 User Guide.

\n \n

This functionality is only supported by directory buckets.

\n
" } }, "com.amazonaws.s3#LocationNameAsString": { @@ -28361,13 +28437,13 @@ "StorageClass": { "target": "com.amazonaws.s3#StorageClass", "traits": { - "smithy.api#documentation": "

The class of storage used to store the object.

\n \n

\n Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" + "smithy.api#documentation": "

The class of storage used to store the object.

\n \n

\n Directory buckets -\n Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" } }, "Owner": { "target": "com.amazonaws.s3#Owner", "traits": { - "smithy.api#documentation": "

Specifies the owner of the object that is part of the multipart upload.

\n \n

\n Directory buckets - The bucket owner is returned as the object owner for all the objects.

\n
" + "smithy.api#documentation": "

Specifies the owner of the object that is part of the multipart upload.

\n \n

\n Directory buckets - The bucket owner is\n returned as the object owner for all the objects.

\n
" } }, "Initiator": { @@ -28447,18 +28523,18 @@ "NoncurrentDays": { "target": "com.amazonaws.s3#Days", "traits": { - "smithy.api#documentation": "

Specifies the number of days an object is noncurrent before Amazon S3 can perform the\n associated action. The value must be a non-zero positive integer. For information about the\n noncurrent days calculations, see How\n Amazon S3 Calculates When an Object Became Noncurrent in the\n Amazon S3 User Guide.

" + "smithy.api#documentation": "

Specifies the number of days an object is noncurrent before Amazon S3 can perform the\n associated action. The value must be a non-zero positive integer. For information about the\n noncurrent days calculations, see How\n Amazon S3 Calculates When an Object Became Noncurrent in the\n Amazon S3 User Guide.

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
" } }, "NewerNoncurrentVersions": { "target": "com.amazonaws.s3#VersionCount", "traits": { - "smithy.api#documentation": "

Specifies how many noncurrent versions Amazon S3 will retain. You can specify up to 100\n noncurrent versions to retain. Amazon S3 will permanently delete any additional noncurrent\n versions beyond the specified number to retain. For more information about noncurrent\n versions, see Lifecycle configuration\n elements in the Amazon S3 User Guide.

" + "smithy.api#documentation": "

Specifies how many noncurrent versions Amazon S3 will retain. You can specify up to 100\n noncurrent versions to retain. Amazon S3 will permanently delete any additional noncurrent\n versions beyond the specified number to retain. For more information about noncurrent\n versions, see Lifecycle configuration\n elements in the Amazon S3 User Guide.

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
" } } }, "traits": { - "smithy.api#documentation": "

Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 permanently\n deletes the noncurrent object versions. You set this lifecycle configuration action on a\n bucket that has versioning enabled (or suspended) to request that Amazon S3 delete noncurrent\n object versions at a specific period in the object's lifetime.

" + "smithy.api#documentation": "

Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 permanently\n deletes the noncurrent object versions. You set this lifecycle configuration action on a\n bucket that has versioning enabled (or suspended) to request that Amazon S3 delete noncurrent\n object versions at a specific period in the object's lifetime.

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
" } }, "com.amazonaws.s3#NoncurrentVersionTransition": { @@ -28596,19 +28672,19 @@ "StorageClass": { "target": "com.amazonaws.s3#ObjectStorageClass", "traits": { - "smithy.api#documentation": "

The class of storage used to store the object.

\n \n

\n Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" + "smithy.api#documentation": "

The class of storage used to store the object.

\n \n

\n Directory buckets -\n Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" } }, "Owner": { "target": "com.amazonaws.s3#Owner", "traits": { - "smithy.api#documentation": "

The owner of the object

\n \n

\n Directory buckets - The bucket owner is returned as the object owner.

\n
" + "smithy.api#documentation": "

The owner of the object

\n \n

\n Directory buckets - The bucket owner is\n returned as the object owner.

\n
" } }, "RestoreStatus": { "target": "com.amazonaws.s3#RestoreStatus", "traits": { - "smithy.api#documentation": "

Specifies the restoration status of an object. Objects in certain storage classes must\n be restored before they can be retrieved. For more information about these storage classes\n and how to work with archived objects, see Working with archived\n objects in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" + "smithy.api#documentation": "

Specifies the restoration status of an object. Objects in certain storage classes must\n be restored before they can be retrieved. For more information about these storage classes\n and how to work with archived objects, see Working with archived\n objects in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.\n Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" } } }, @@ -28728,6 +28804,24 @@ "traits": { "smithy.api#documentation": "

Version ID for the specific version of the object to delete.

\n \n

This functionality is not supported for directory buckets.

\n
" } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

An entity tag (ETag) is an identifier assigned by a web server to a specific version of a resource found at a URL.\n This header field makes the request method conditional on ETags.

\n \n

Entity tags (ETags) for S3 Express One Zone are random alphanumeric strings unique to the object.

\n
" + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.s3#LastModifiedTime", + "traits": { + "smithy.api#documentation": "

If present, the objects are deleted only if its modification times matches the provided Timestamp. \n

\n \n

This functionality is only supported for directory buckets.

\n
" + } + }, + "Size": { + "target": "com.amazonaws.s3#Size", + "traits": { + "smithy.api#documentation": "

If present, the objects are deleted only if its size matches the provided size in bytes.

\n \n

This functionality is only supported for directory buckets.

\n
" + } } }, "traits": { @@ -28928,7 +29022,7 @@ } }, "traits": { - "smithy.api#documentation": "

The container element for object ownership for a bucket's ownership controls.

\n

\n BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the bucket\n owner if the objects are uploaded with the bucket-owner-full-control canned\n ACL.

\n

\n ObjectWriter - The uploading account will own the object if the object is uploaded with\n the bucket-owner-full-control canned ACL.

\n

\n BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer affect\n permissions. The bucket owner automatically owns and has full control over every object in\n the bucket. The bucket only accepts PUT requests that don't specify an ACL or specify bucket owner\n full control ACLs (such as the predefined bucket-owner-full-control canned ACL or a custom ACL \n in XML format that grants the same permissions).

\n

By default, ObjectOwnership is set to BucketOwnerEnforced and ACLs are disabled. We recommend\n keeping ACLs disabled, except in uncommon use cases where you must control access for each object individually. For more information about S3 Object Ownership, see\n Controlling ownership of objects and disabling ACLs for your bucket in the Amazon S3 User Guide.\n

\n \n

This functionality is not supported for directory buckets. Directory buckets use the bucket owner enforced setting for S3 Object Ownership.

\n
" + "smithy.api#documentation": "

The container element for object ownership for a bucket's ownership controls.

\n

\n BucketOwnerPreferred - Objects uploaded to the bucket change ownership to\n the bucket owner if the objects are uploaded with the\n bucket-owner-full-control canned ACL.

\n

\n ObjectWriter - The uploading account will own the object if the object is\n uploaded with the bucket-owner-full-control canned ACL.

\n

\n BucketOwnerEnforced - Access control lists (ACLs) are disabled and no\n longer affect permissions. The bucket owner automatically owns and has full control over\n every object in the bucket. The bucket only accepts PUT requests that don't specify an ACL\n or specify bucket owner full control ACLs (such as the predefined\n bucket-owner-full-control canned ACL or a custom ACL in XML format that\n grants the same permissions).

\n

By default, ObjectOwnership is set to BucketOwnerEnforced and\n ACLs are disabled. We recommend keeping ACLs disabled, except in uncommon use cases where\n you must control access for each object individually. For more information about S3 Object\n Ownership, see Controlling ownership of\n objects and disabling ACLs for your bucket in the\n Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets. Directory buckets use the bucket owner enforced setting for S3 Object Ownership.

\n
" } }, "com.amazonaws.s3#ObjectPart": { @@ -29355,12 +29449,12 @@ "PartitionDateSource": { "target": "com.amazonaws.s3#PartitionDateSource", "traits": { - "smithy.api#documentation": "

Specifies the partition date source for the partitioned prefix.\n PartitionDateSource can be EventTime or\n DeliveryTime.

\n

For DeliveryTime, the time in the log file names corresponds to the\n delivery time for the log files.

\n

For EventTime, The logs delivered are for a specific day only. The year,\n month, and day correspond to the day on which the event occurred, and the hour, minutes and\n seconds are set to 00 in the key.

" + "smithy.api#documentation": "

Specifies the partition date source for the partitioned prefix.\n PartitionDateSource can be EventTime or\n DeliveryTime.

\n

For DeliveryTime, the time in the log file names corresponds to the\n delivery time for the log files.

\n

For EventTime, The logs delivered are for a specific day only. The year,\n month, and day correspond to the day on which the event occurred, and the hour, minutes and\n seconds are set to 00 in the key.

" } } }, "traits": { - "smithy.api#documentation": "

Amazon S3 keys for log objects are partitioned in the following format:

\n

\n [DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]\n

\n

PartitionedPrefix defaults to EventTime delivery when server access logs are delivered.

", + "smithy.api#documentation": "

Amazon S3 keys for log objects are partitioned in the following format:

\n

\n [DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]\n

\n

PartitionedPrefix defaults to EventTime delivery when server access logs are\n delivered.

", "smithy.api#xmlName": "PartitionedPrefix" } }, @@ -29561,7 +29655,7 @@ "aws.protocols#httpChecksum": { "requestAlgorithmMember": "ChecksumAlgorithm" }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a\n bucket-level feature that enables you to perform faster data transfers to Amazon S3.

\n

To use this operation, you must have permission to perform the\n s3:PutAccelerateConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

The Transfer Acceleration state of a bucket can be set to one of the following two\n values:

\n \n

The GetBucketAccelerateConfiguration action returns the transfer acceleration state\n of a bucket.

\n

After setting the Transfer Acceleration state of a bucket to Enabled, it might take up\n to thirty minutes before the data transfer rates to the bucket increase.

\n

The name of the bucket used for Transfer Acceleration must be DNS-compliant and must\n not contain periods (\".\").

\n

For more information about transfer acceleration, see Transfer\n Acceleration.

\n

The following operations are related to\n PutBucketAccelerateConfiguration:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a\n bucket-level feature that enables you to perform faster data transfers to Amazon S3.

\n

To use this operation, you must have permission to perform the\n s3:PutAccelerateConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

The Transfer Acceleration state of a bucket can be set to one of the following two\n values:

\n \n

The GetBucketAccelerateConfiguration action returns the transfer acceleration state\n of a bucket.

\n

After setting the Transfer Acceleration state of a bucket to Enabled, it might take up\n to thirty minutes before the data transfer rates to the bucket increase.

\n

The name of the bucket used for Transfer Acceleration must be DNS-compliant and must\n not contain periods (\".\").

\n

For more information about transfer acceleration, see Transfer\n Acceleration.

\n

The following operations are related to\n PutBucketAccelerateConfiguration:

\n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?accelerate", @@ -29629,7 +29723,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Sets the permissions on an existing bucket using access control lists (ACL). For more\n information, see Using ACLs. To set the ACL of a\n bucket, you must have the WRITE_ACP permission.

\n

You can use one of the following two ways to set a bucket's permissions:

\n \n \n

You cannot specify access permission using both the body and the request\n headers.

\n
\n

Depending on your application needs, you may choose to set the ACL on a bucket using\n either the request body or the headers. For example, if you have an existing application\n that updates a bucket ACL using the request body, then you can continue to use that\n approach.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs\n are disabled and no longer affect permissions. You must use policies to grant access to\n your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return\n the AccessControlListNotSupported error code. Requests to read ACLs are\n still supported. For more information, see Controlling object\n ownership in the Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

You can set access permissions by using one of the following methods:

\n
    \n
  • \n

    Specify a canned ACL with the x-amz-acl request header. Amazon S3\n supports a set of predefined ACLs, known as canned\n ACLs. Each canned ACL has a predefined set of grantees and\n permissions. Specify the canned ACL name as the value of\n x-amz-acl. If you use this header, you cannot use other\n access control-specific headers in your request. For more information, see\n Canned\n ACL.

    \n
  • \n
  • \n

    Specify access permissions explicitly with the\n x-amz-grant-read, x-amz-grant-read-acp,\n x-amz-grant-write-acp, and\n x-amz-grant-full-control headers. When using these headers,\n you specify explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3\n groups) who will receive the permission. If you use these ACL-specific\n headers, you cannot use the x-amz-acl header to set a canned\n ACL. These parameters map to the set of permissions that Amazon S3 supports in an\n ACL. For more information, see Access Control List (ACL)\n Overview.

    \n

    You specify each grantee as a type=value pair, where the type is one of\n the following:

    \n
      \n
    • \n

      \n id – if the value specified is the canonical user ID\n of an Amazon Web Services account

      \n
    • \n
    • \n

      \n uri – if you are granting permissions to a predefined\n group

      \n
    • \n
    • \n

      \n emailAddress – if the value specified is the email\n address of an Amazon Web Services account

      \n \n

      Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

      \n
        \n
      • \n

        US East (N. Virginia)

        \n
      • \n
      • \n

        US West (N. California)

        \n
      • \n
      • \n

        US West (Oregon)

        \n
      • \n
      • \n

        Asia Pacific (Singapore)

        \n
      • \n
      • \n

        Asia Pacific (Sydney)

        \n
      • \n
      • \n

        Asia Pacific (Tokyo)

        \n
      • \n
      • \n

        Europe (Ireland)

        \n
      • \n
      • \n

        South America (São Paulo)

        \n
      • \n
      \n

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

      \n
      \n
    • \n
    \n

    For example, the following x-amz-grant-write header grants\n create, overwrite, and delete objects permission to LogDelivery group\n predefined by Amazon S3 and two Amazon Web Services accounts identified by their email\n addresses.

    \n

    \n x-amz-grant-write:\n uri=\"http://acs.amazonaws.com/groups/s3/LogDelivery\", id=\"111122223333\",\n id=\"555566667777\" \n

    \n
  • \n
\n

You can use either a canned ACL or specify access permissions explicitly. You\n cannot do both.

\n
\n
Grantee Values
\n
\n

You can specify the person (grantee) to whom you're assigning access rights\n (using request elements) in the following ways:

\n
    \n
  • \n

    By the person's ID:

    \n

    \n <>ID<><>GranteesEmail<>\n \n

    \n

    DisplayName is optional and ignored in the request

    \n
  • \n
  • \n

    By URI:

    \n

    \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

    \n
  • \n
  • \n

    By Email address:

    \n

    \n <>Grantees@email.com<>&\n

    \n

    The grantee is resolved to the CanonicalUser and, in a response to a GET\n Object acl request, appears as the CanonicalUser.

    \n \n

    Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

    \n
      \n
    • \n

      US East (N. Virginia)

      \n
    • \n
    • \n

      US West (N. California)

      \n
    • \n
    • \n

      US West (Oregon)

      \n
    • \n
    • \n

      Asia Pacific (Singapore)

      \n
    • \n
    • \n

      Asia Pacific (Sydney)

      \n
    • \n
    • \n

      Asia Pacific (Tokyo)

      \n
    • \n
    • \n

      Europe (Ireland)

      \n
    • \n
    • \n

      South America (São Paulo)

      \n
    • \n
    \n

    For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    \n
    \n
  • \n
\n
\n
\n

The following operations are related to PutBucketAcl:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the permissions on an existing bucket using access control lists (ACL). For more\n information, see Using ACLs. To set the ACL of a\n bucket, you must have the WRITE_ACP permission.

\n

You can use one of the following two ways to set a bucket's permissions:

\n \n \n

You cannot specify access permission using both the body and the request\n headers.

\n
\n

Depending on your application needs, you may choose to set the ACL on a bucket using\n either the request body or the headers. For example, if you have an existing application\n that updates a bucket ACL using the request body, then you can continue to use that\n approach.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs\n are disabled and no longer affect permissions. You must use policies to grant access to\n your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return\n the AccessControlListNotSupported error code. Requests to read ACLs are\n still supported. For more information, see Controlling object\n ownership in the Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

You can set access permissions by using one of the following methods:

\n
    \n
  • \n

    Specify a canned ACL with the x-amz-acl request header. Amazon S3\n supports a set of predefined ACLs, known as canned\n ACLs. Each canned ACL has a predefined set of grantees and\n permissions. Specify the canned ACL name as the value of\n x-amz-acl. If you use this header, you cannot use other\n access control-specific headers in your request. For more information, see\n Canned\n ACL.

    \n
  • \n
  • \n

    Specify access permissions explicitly with the\n x-amz-grant-read, x-amz-grant-read-acp,\n x-amz-grant-write-acp, and\n x-amz-grant-full-control headers. When using these headers,\n you specify explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3\n groups) who will receive the permission. If you use these ACL-specific\n headers, you cannot use the x-amz-acl header to set a canned\n ACL. These parameters map to the set of permissions that Amazon S3 supports in an\n ACL. For more information, see Access Control List (ACL)\n Overview.

    \n

    You specify each grantee as a type=value pair, where the type is one of\n the following:

    \n
      \n
    • \n

      \n id – if the value specified is the canonical user ID\n of an Amazon Web Services account

      \n
    • \n
    • \n

      \n uri – if you are granting permissions to a predefined\n group

      \n
    • \n
    • \n

      \n emailAddress – if the value specified is the email\n address of an Amazon Web Services account

      \n \n

      Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

      \n
        \n
      • \n

        US East (N. Virginia)

        \n
      • \n
      • \n

        US West (N. California)

        \n
      • \n
      • \n

        US West (Oregon)

        \n
      • \n
      • \n

        Asia Pacific (Singapore)

        \n
      • \n
      • \n

        Asia Pacific (Sydney)

        \n
      • \n
      • \n

        Asia Pacific (Tokyo)

        \n
      • \n
      • \n

        Europe (Ireland)

        \n
      • \n
      • \n

        South America (São Paulo)

        \n
      • \n
      \n

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

      \n
      \n
    • \n
    \n

    For example, the following x-amz-grant-write header grants\n create, overwrite, and delete objects permission to LogDelivery group\n predefined by Amazon S3 and two Amazon Web Services accounts identified by their email\n addresses.

    \n

    \n x-amz-grant-write:\n uri=\"http://acs.amazonaws.com/groups/s3/LogDelivery\", id=\"111122223333\",\n id=\"555566667777\" \n

    \n
  • \n
\n

You can use either a canned ACL or specify access permissions explicitly. You\n cannot do both.

\n
\n
Grantee Values
\n
\n

You can specify the person (grantee) to whom you're assigning access rights\n (using request elements) in the following ways:

\n
    \n
  • \n

    By the person's ID:

    \n

    \n <>ID<><>GranteesEmail<>\n \n

    \n

    DisplayName is optional and ignored in the request

    \n
  • \n
  • \n

    By URI:

    \n

    \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

    \n
  • \n
  • \n

    By Email address:

    \n

    \n <>Grantees@email.com<>&\n

    \n

    The grantee is resolved to the CanonicalUser and, in a response to a GET\n Object acl request, appears as the CanonicalUser.

    \n \n

    Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

    \n
      \n
    • \n

      US East (N. Virginia)

      \n
    • \n
    • \n

      US West (N. California)

      \n
    • \n
    • \n

      US West (Oregon)

      \n
    • \n
    • \n

      Asia Pacific (Singapore)

      \n
    • \n
    • \n

      Asia Pacific (Sydney)

      \n
    • \n
    • \n

      Asia Pacific (Tokyo)

      \n
    • \n
    • \n

      Europe (Ireland)

      \n
    • \n
    • \n

      South America (São Paulo)

      \n
    • \n
    \n

    For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    \n
    \n
  • \n
\n
\n
\n

The following operations are related to PutBucketAcl:

\n ", "smithy.api#examples": [ { "title": "Put bucket acl", @@ -29752,7 +29846,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Sets an analytics configuration for the bucket (specified by the analytics configuration\n ID). You can have up to 1,000 analytics configurations per bucket.

\n

You can choose to have storage class analysis export analysis reports sent to a\n comma-separated values (CSV) flat file. See the DataExport request element.\n Reports are updated daily and are based on the object filters that you configure. When\n selecting data export, you specify a destination bucket and an optional destination prefix\n where the file is written. You can export the data to a destination bucket in a different\n account. However, the destination bucket must be in the same Region as the bucket that you\n are making the PUT analytics configuration to. For more information, see Amazon S3\n Analytics – Storage Class Analysis.

\n \n

You must create a bucket policy on the destination bucket where the exported file is\n written to grant permissions to Amazon S3 to write objects to the bucket. For an example\n policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

\n
\n

To use this operation, you must have permissions to perform the\n s3:PutAnalyticsConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

\n PutBucketAnalyticsConfiguration has the following special errors:

\n \n

The following operations are related to\n PutBucketAnalyticsConfiguration:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets an analytics configuration for the bucket (specified by the analytics configuration\n ID). You can have up to 1,000 analytics configurations per bucket.

\n

You can choose to have storage class analysis export analysis reports sent to a\n comma-separated values (CSV) flat file. See the DataExport request element.\n Reports are updated daily and are based on the object filters that you configure. When\n selecting data export, you specify a destination bucket and an optional destination prefix\n where the file is written. You can export the data to a destination bucket in a different\n account. However, the destination bucket must be in the same Region as the bucket that you\n are making the PUT analytics configuration to. For more information, see Amazon S3\n Analytics – Storage Class Analysis.

\n \n

You must create a bucket policy on the destination bucket where the exported file is\n written to grant permissions to Amazon S3 to write objects to the bucket. For an example\n policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

\n
\n

To use this operation, you must have permissions to perform the\n s3:PutAnalyticsConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

\n PutBucketAnalyticsConfiguration has the following special errors:

\n \n

The following operations are related to\n PutBucketAnalyticsConfiguration:

\n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?analytics", @@ -29821,7 +29915,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Sets the cors configuration for your bucket. If the configuration exists,\n Amazon S3 replaces it.

\n

To use this operation, you must be allowed to perform the s3:PutBucketCORS\n action. By default, the bucket owner has this permission and can grant it to others.

\n

You set this configuration on a bucket so that the bucket can service cross-origin\n requests. For example, you might want to enable a request whose origin is\n http://www.example.com to access your Amazon S3 bucket at\n my.example.bucket.com by using the browser's XMLHttpRequest\n capability.

\n

To enable cross-origin resource sharing (CORS) on a bucket, you add the\n cors subresource to the bucket. The cors subresource is an XML\n document in which you configure rules that identify origins and the HTTP methods that can\n be executed on your bucket. The document is limited to 64 KB in size.

\n

When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a\n bucket, it evaluates the cors configuration on the bucket and uses the first\n CORSRule rule that matches the incoming browser request to enable a\n cross-origin request. For a rule to match, the following conditions must be met:

\n \n

For more information about CORS, go to Enabling Cross-Origin Resource Sharing in\n the Amazon S3 User Guide.

\n

The following operations are related to PutBucketCors:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the cors configuration for your bucket. If the configuration exists,\n Amazon S3 replaces it.

\n

To use this operation, you must be allowed to perform the s3:PutBucketCORS\n action. By default, the bucket owner has this permission and can grant it to others.

\n

You set this configuration on a bucket so that the bucket can service cross-origin\n requests. For example, you might want to enable a request whose origin is\n http://www.example.com to access your Amazon S3 bucket at\n my.example.bucket.com by using the browser's XMLHttpRequest\n capability.

\n

To enable cross-origin resource sharing (CORS) on a bucket, you add the\n cors subresource to the bucket. The cors subresource is an XML\n document in which you configure rules that identify origins and the HTTP methods that can\n be executed on your bucket. The document is limited to 64 KB in size.

\n

When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a\n bucket, it evaluates the cors configuration on the bucket and uses the first\n CORSRule rule that matches the incoming browser request to enable a\n cross-origin request. For a rule to match, the following conditions must be met:

\n \n

For more information about CORS, go to Enabling Cross-Origin Resource Sharing in\n the Amazon S3 User Guide.

\n

The following operations are related to PutBucketCors:

\n ", "smithy.api#examples": [ { "title": "To set cors configuration on a bucket.", @@ -29939,7 +30033,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "

This operation configures default encryption \n and Amazon S3 Bucket Keys for an existing bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n

By default, all buckets have a default encryption configuration that uses server-side\n encryption with Amazon S3 managed keys (SSE-S3).

\n \n \n \n \n

If you're specifying a customer managed KMS key, we recommend using a fully qualified\n KMS key ARN. If you use a KMS key alias instead, then KMS resolves the key within the\n requester’s account. This behavior can result in data that's encrypted with a KMS key\n that belongs to the requester, and not the bucket owner.

\n

Also, this action requires Amazon Web Services Signature Version 4. For more information, see \n Authenticating Requests (Amazon Web Services Signature Version 4).

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The s3:PutEncryptionConfiguration permission is required in a policy. \n The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Operations and Managing\n Access Permissions to Your Amazon S3 Resources in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation, you must have the s3express:PutEncryptionConfiguration permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n

    To set a directory bucket default encryption with SSE-KMS, you must also have the kms:GenerateDataKey and the kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the target KMS key.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to PutBucketEncryption:

\n ", + "smithy.api#documentation": "

This operation configures default encryption and Amazon S3 Bucket Keys for an existing\n bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n

By default, all buckets have a default encryption configuration that uses server-side\n encryption with Amazon S3 managed keys (SSE-S3).

\n \n \n \n \n

If you're specifying a customer managed KMS key, we recommend using a fully\n qualified KMS key ARN. If you use a KMS key alias instead, then KMS resolves the\n key within the requester’s account. This behavior can result in data that's encrypted\n with a KMS key that belongs to the requester, and not the bucket owner.

\n

Also, this action requires Amazon Web Services Signature Version 4. For more information, see\n Authenticating\n Requests (Amazon Web Services Signature Version 4).

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:PutEncryptionConfiguration permission is required in a\n policy. The bucket owner has this permission by default. The bucket owner\n can grant this permission to others. For more information about permissions,\n see Permissions Related to Bucket Operations and Managing Access\n Permissions to Your Amazon S3 Resources in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions -\n To grant access to this API operation, you must have the\n s3express:PutEncryptionConfiguration permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n

    To set a directory bucket default encryption with SSE-KMS, you must also\n have the kms:GenerateDataKey and the kms:Decrypt\n permissions in IAM identity-based policies and KMS key policies for the\n target KMS key.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to PutBucketEncryption:

\n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?encryption", @@ -30009,7 +30103,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can have up to\n 1,000 S3 Intelligent-Tiering configurations per bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to PutBucketIntelligentTieringConfiguration include:

\n \n \n

You only need S3 Intelligent-Tiering enabled on a bucket if you want to automatically\n move objects stored in the S3 Intelligent-Tiering storage class to the Archive Access\n or Deep Archive Access tier.

\n
\n

\n PutBucketIntelligentTieringConfiguration has the following special\n errors:

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: InvalidArgument

\n

\n Cause: Invalid Argument

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: TooManyConfigurations

\n

\n Cause: You are attempting to create a new configuration\n but have already reached the 1,000-configuration limit.

\n
\n
HTTP 403 Forbidden Error
\n
\n

\n Cause: You are not the owner of the specified bucket, or\n you do not have the s3:PutIntelligentTieringConfiguration bucket\n permission to set the configuration on the bucket.

\n
\n
", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can have up to\n 1,000 S3 Intelligent-Tiering configurations per bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to PutBucketIntelligentTieringConfiguration include:

\n \n \n

You only need S3 Intelligent-Tiering enabled on a bucket if you want to automatically\n move objects stored in the S3 Intelligent-Tiering storage class to the Archive Access\n or Deep Archive Access tier.

\n
\n

\n PutBucketIntelligentTieringConfiguration has the following special\n errors:

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: InvalidArgument

\n

\n Cause: Invalid Argument

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: TooManyConfigurations

\n

\n Cause: You are attempting to create a new configuration\n but have already reached the 1,000-configuration limit.

\n
\n
HTTP 403 Forbidden Error
\n
\n

\n Cause: You are not the owner of the specified bucket, or\n you do not have the s3:PutIntelligentTieringConfiguration bucket\n permission to set the configuration on the bucket.

\n
\n
", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?intelligent-tiering", @@ -30067,7 +30161,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

This implementation of the PUT action adds an inventory configuration\n (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory\n configurations per bucket.

\n

Amazon S3 inventory generates inventories of the objects in the bucket on a daily or weekly\n basis, and the results are published to a flat file. The bucket that is inventoried is\n called the source bucket, and the bucket where the inventory flat file\n is stored is called the destination bucket. The\n destination bucket must be in the same Amazon Web Services Region as the\n source bucket.

\n

When you configure an inventory for a source bucket, you specify\n the destination bucket where you want the inventory to be stored, and\n whether to generate the inventory daily or weekly. You can also configure what object\n metadata to include and whether to inventory all object versions or only current versions.\n For more information, see Amazon S3 Inventory in the\n Amazon S3 User Guide.

\n \n

You must create a bucket policy on the destination bucket to\n grant permissions to Amazon S3 to write objects to the bucket in the defined location. For an\n example policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have permission to perform the\n s3:PutInventoryConfiguration action. The bucket owner has this\n permission by default and can grant this permission to others.

\n

The s3:PutInventoryConfiguration permission allows a user to\n create an S3 Inventory\n report that includes all object metadata fields available and to specify the\n destination bucket to store the inventory. A user with read access to objects in\n the destination bucket can also access all object metadata fields that are\n available in the inventory report.

\n

To restrict access to an inventory report, see Restricting access to an Amazon S3 Inventory report in the\n Amazon S3 User Guide. For more information about the metadata\n fields available in S3 Inventory, see Amazon S3 Inventory lists in the Amazon S3 User Guide. For\n more information about permissions, see Permissions related to bucket subresource operations and Identity and access management in Amazon S3 in the\n Amazon S3 User Guide.

\n
\n
\n

\n PutBucketInventoryConfiguration has the following special errors:

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: InvalidArgument

\n

\n Cause: Invalid Argument

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: TooManyConfigurations

\n

\n Cause: You are attempting to create a new configuration\n but have already reached the 1,000-configuration limit.

\n
\n
HTTP 403 Forbidden Error
\n
\n

\n Cause: You are not the owner of the specified bucket, or\n you do not have the s3:PutInventoryConfiguration bucket permission to\n set the configuration on the bucket.

\n
\n
\n

The following operations are related to\n PutBucketInventoryConfiguration:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

This implementation of the PUT action adds an inventory configuration\n (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory\n configurations per bucket.

\n

Amazon S3 inventory generates inventories of the objects in the bucket on a daily or weekly\n basis, and the results are published to a flat file. The bucket that is inventoried is\n called the source bucket, and the bucket where the inventory flat file\n is stored is called the destination bucket. The\n destination bucket must be in the same Amazon Web Services Region as the\n source bucket.

\n

When you configure an inventory for a source bucket, you specify\n the destination bucket where you want the inventory to be stored, and\n whether to generate the inventory daily or weekly. You can also configure what object\n metadata to include and whether to inventory all object versions or only current versions.\n For more information, see Amazon S3 Inventory in the\n Amazon S3 User Guide.

\n \n

You must create a bucket policy on the destination bucket to\n grant permissions to Amazon S3 to write objects to the bucket in the defined location. For an\n example policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have permission to perform the\n s3:PutInventoryConfiguration action. The bucket owner has this\n permission by default and can grant this permission to others.

\n

The s3:PutInventoryConfiguration permission allows a user to\n create an S3 Inventory\n report that includes all object metadata fields available and to specify the\n destination bucket to store the inventory. A user with read access to objects in\n the destination bucket can also access all object metadata fields that are\n available in the inventory report.

\n

To restrict access to an inventory report, see Restricting access to an Amazon S3 Inventory report in the\n Amazon S3 User Guide. For more information about the metadata\n fields available in S3 Inventory, see Amazon S3 Inventory lists in the Amazon S3 User Guide. For\n more information about permissions, see Permissions related to bucket subresource operations and Identity and access management in Amazon S3 in the\n Amazon S3 User Guide.

\n
\n
\n

\n PutBucketInventoryConfiguration has the following special errors:

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: InvalidArgument

\n

\n Cause: Invalid Argument

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: TooManyConfigurations

\n

\n Cause: You are attempting to create a new configuration\n but have already reached the 1,000-configuration limit.

\n
\n
HTTP 403 Forbidden Error
\n
\n

\n Cause: You are not the owner of the specified bucket, or\n you do not have the s3:PutInventoryConfiguration bucket permission to\n set the configuration on the bucket.

\n
\n
\n

The following operations are related to\n PutBucketInventoryConfiguration:

\n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?inventory", @@ -30136,7 +30230,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle\n configuration. Keep in mind that this will overwrite an existing lifecycle configuration,\n so if you want to retain any configuration details, they must be included in the new\n lifecycle configuration. For information about lifecycle configuration, see Managing\n your storage lifecycle.

\n
\n
Rules
\n
\n

You specify the lifecycle configuration in your request body. The lifecycle\n configuration is specified as XML consisting of one or more rules. An Amazon S3\n Lifecycle configuration can have up to 1,000 rules. This limit is not adjustable.

\n

Bucket lifecycle configuration supports specifying a lifecycle rule using an object key name prefix, one or more object tags, object size, or any combination of these. Accordingly, this section describes the latest API. The previous version of the API supported filtering based only on an object key name prefix, which is supported for backward compatibility.\n For the related API description, see PutBucketLifecycle.

\n

A lifecycle rule consists of the following:

\n
    \n
  • \n

    A filter identifying a subset of objects to which the rule applies. The filter can be based on a key name prefix, object tags, object size, or any combination of these.

    \n
  • \n
  • \n

    A status indicating whether the rule is in effect.

    \n
  • \n
  • \n

    One or more lifecycle transition and expiration actions that you want\n Amazon S3 to perform on the objects identified by the filter. If the state of\n your bucket is versioning-enabled or versioning-suspended, you can have many\n versions of the same object (one current version and zero or more noncurrent\n versions). Amazon S3 provides predefined actions that you can specify for current\n and noncurrent object versions.

    \n
  • \n
\n

For more information, see Object Lifecycle\n Management and Lifecycle Configuration\n Elements.

\n
\n
Permissions
\n
\n

By default, all Amazon S3 resources are private, including buckets, objects, and\n related subresources (for example, lifecycle configuration and website\n configuration). Only the resource owner (that is, the Amazon Web Services account that created\n it) can access the resource. The resource owner can optionally grant access\n permissions to others by writing an access policy. For this operation, a user must\n get the s3:PutLifecycleConfiguration permission.

\n

You can also explicitly deny permissions. An explicit deny also supersedes any\n other permissions. If you want to block users or accounts from removing or\n deleting objects from your bucket, you must deny them permissions for the\n following actions:

\n
    \n
  • \n

    \n s3:DeleteObject\n

    \n
  • \n
  • \n

    \n s3:DeleteObjectVersion\n

    \n
  • \n
  • \n

    \n s3:PutLifecycleConfiguration\n

    \n
  • \n
\n

For more information about permissions, see Managing Access\n Permissions to Your Amazon S3 Resources.

\n
\n
\n

The following operations are related to\n PutBucketLifecycleConfiguration:

\n ", + "smithy.api#documentation": "

Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle\n configuration. Keep in mind that this will overwrite an existing lifecycle configuration,\n so if you want to retain any configuration details, they must be included in the new\n lifecycle configuration. For information about lifecycle configuration, see Managing\n your storage lifecycle.

\n
\n
Rules
\n
Permissions
\n
HTTP Host header syntax
\n
\n

You specify the lifecycle configuration in your request body. The lifecycle\n configuration is specified as XML consisting of one or more rules. An Amazon S3\n Lifecycle configuration can have up to 1,000 rules. This limit is not\n adjustable.

\n

Bucket lifecycle configuration supports specifying a lifecycle rule using an\n object key name prefix, one or more object tags, object size, or any combination\n of these. Accordingly, this section describes the latest API. The previous version\n of the API supported filtering based only on an object key name prefix, which is\n supported for backward compatibility for general purpose buckets. For the related\n API description, see PutBucketLifecycle.

\n \n

Lifecyle configurations for directory buckets only support expiring objects and\n cancelling multipart uploads. Expiring of versioned objects,transitions and tag\n filters are not supported.

\n
\n

A lifecycle rule consists of the following:

\n
    \n
  • \n

    A filter identifying a subset of objects to which the rule applies. The\n filter can be based on a key name prefix, object tags, object size, or any\n combination of these.

    \n
  • \n
  • \n

    A status indicating whether the rule is in effect.

    \n
  • \n
  • \n

    One or more lifecycle transition and expiration actions that you want\n Amazon S3 to perform on the objects identified by the filter. If the state of\n your bucket is versioning-enabled or versioning-suspended, you can have many\n versions of the same object (one current version and zero or more noncurrent\n versions). Amazon S3 provides predefined actions that you can specify for current\n and noncurrent object versions.

    \n
  • \n
\n

For more information, see Object Lifecycle\n Management and Lifecycle Configuration\n Elements.

\n
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - By\n default, all Amazon S3 resources are private, including buckets, objects, and\n related subresources (for example, lifecycle configuration and website\n configuration). Only the resource owner (that is, the Amazon Web Services account that\n created it) can access the resource. The resource owner can optionally grant\n access permissions to others by writing an access policy. For this\n operation, a user must have the s3:PutLifecycleConfiguration\n permission.

    \n

    You can also explicitly deny permissions. An explicit deny also\n supersedes any other permissions. If you want to block users or accounts\n from removing or deleting objects from your bucket, you must deny them\n permissions for the following actions:

    \n \n
  • \n
\n
    \n
  • \n

    \n Directory bucket permissions -\n You must have the s3express:PutLifecycleConfiguration\n permission in an IAM identity-based policy to use this operation.\n Cross-account access to this API operation isn't supported. The resource\n owner can optionally grant access permissions to others by creating a role\n or user for them as long as they are within the same account as the owner\n and resource.

    \n

    For more information about directory bucket policies and permissions, see\n Authorizing Regional endpoint APIs with IAM in the\n Amazon S3 User Guide.

    \n \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

    \n
    \n
  • \n
\n
\n
\n

\n Directory buckets - The HTTP Host\n header syntax is\n s3express-control.region.amazonaws.com.

\n

The following operations are related to\n PutBucketLifecycleConfiguration:

\n \n
\n
", "smithy.api#examples": [ { "title": "Put bucket lifecycle", @@ -30184,7 +30278,7 @@ "TransitionDefaultMinimumObjectSize": { "target": "com.amazonaws.s3#TransitionDefaultMinimumObjectSize", "traits": { - "smithy.api#documentation": "

Indicates which default minimum object size behavior is applied to the lifecycle configuration.

\n \n

To customize the minimum object size for any transition you can add a filter that specifies a custom ObjectSizeGreaterThan or ObjectSizeLessThan in the body of your transition rule. Custom filters always take precedence over the default transition behavior.

", + "smithy.api#documentation": "

Indicates which default minimum object size behavior is applied to the lifecycle\n configuration.

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
\n \n

To customize the minimum object size for any transition you can add a filter that\n specifies a custom ObjectSizeGreaterThan or ObjectSizeLessThan in\n the body of your transition rule. Custom filters always take precedence over the default\n transition behavior.

", "smithy.api#httpHeader": "x-amz-transition-default-minimum-object-size" } } @@ -30225,14 +30319,14 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } }, "TransitionDefaultMinimumObjectSize": { "target": "com.amazonaws.s3#TransitionDefaultMinimumObjectSize", "traits": { - "smithy.api#documentation": "

Indicates which default minimum object size behavior is applied to the lifecycle configuration.

\n \n

To customize the minimum object size for any transition you can add a filter that specifies a custom ObjectSizeGreaterThan or ObjectSizeLessThan in the body of your transition rule. Custom filters always take precedence over the default transition behavior.

", + "smithy.api#documentation": "

Indicates which default minimum object size behavior is applied to the lifecycle\n configuration.

\n \n

This parameter applies to general purpose buckets only. It is not supported for\n directory bucket lifecycle configurations.

\n
\n \n

To customize the minimum object size for any transition you can add a filter that\n specifies a custom ObjectSizeGreaterThan or ObjectSizeLessThan in\n the body of your transition rule. Custom filters always take precedence over the default\n transition behavior.

", "smithy.api#httpHeader": "x-amz-transition-default-minimum-object-size" } } @@ -30254,7 +30348,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Set the logging parameters for a bucket and to specify permissions for who can view and\n modify the logging parameters. All logs are saved to buckets in the same Amazon Web Services Region as\n the source bucket. To set the logging status of a bucket, you must be the bucket\n owner.

\n

The bucket owner is automatically granted FULL_CONTROL to all logs. You use the\n Grantee request element to grant access to other people. The\n Permissions request element specifies the kind of access the grantee has to\n the logs.

\n \n

If the target bucket for log delivery uses the bucket owner enforced setting for S3\n Object Ownership, you can't use the Grantee request element to grant access\n to others. Permissions can only be granted using policies. For more information, see\n Permissions for server access log delivery in the\n Amazon S3 User Guide.

\n
\n
\n
Grantee Values
\n
\n

You can specify the person (grantee) to whom you're assigning access rights (by\n using request elements) in the following ways:

\n
    \n
  • \n

    By the person's ID:

    \n

    \n <>ID<><>GranteesEmail<>\n \n

    \n

    \n DisplayName is optional and ignored in the request.

    \n
  • \n
  • \n

    By Email address:

    \n

    \n <>Grantees@email.com<>\n

    \n

    The grantee is resolved to the CanonicalUser and, in a\n response to a GETObjectAcl request, appears as the\n CanonicalUser.

    \n
  • \n
  • \n

    By URI:

    \n

    \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

    \n
  • \n
\n
\n
\n

To enable logging, you use LoggingEnabled and its children request\n elements. To disable logging, you use an empty BucketLoggingStatus request\n element:

\n

\n \n

\n

For more information about server access logging, see Server Access Logging in the\n Amazon S3 User Guide.

\n

For more information about creating a bucket, see CreateBucket. For more\n information about returning the logging status of a bucket, see GetBucketLogging.

\n

The following operations are related to PutBucketLogging:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Set the logging parameters for a bucket and to specify permissions for who can view and\n modify the logging parameters. All logs are saved to buckets in the same Amazon Web Services Region as\n the source bucket. To set the logging status of a bucket, you must be the bucket\n owner.

\n

The bucket owner is automatically granted FULL_CONTROL to all logs. You use the\n Grantee request element to grant access to other people. The\n Permissions request element specifies the kind of access the grantee has to\n the logs.

\n \n

If the target bucket for log delivery uses the bucket owner enforced setting for S3\n Object Ownership, you can't use the Grantee request element to grant access\n to others. Permissions can only be granted using policies. For more information, see\n Permissions for server access log delivery in the\n Amazon S3 User Guide.

\n
\n
\n
Grantee Values
\n
\n

You can specify the person (grantee) to whom you're assigning access rights (by\n using request elements) in the following ways:

\n
    \n
  • \n

    By the person's ID:

    \n

    \n <>ID<><>GranteesEmail<>\n \n

    \n

    \n DisplayName is optional and ignored in the request.

    \n
  • \n
  • \n

    By Email address:

    \n

    \n <>Grantees@email.com<>\n

    \n

    The grantee is resolved to the CanonicalUser and, in a\n response to a GETObjectAcl request, appears as the\n CanonicalUser.

    \n
  • \n
  • \n

    By URI:

    \n

    \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

    \n
  • \n
\n
\n
\n

To enable logging, you use LoggingEnabled and its children request\n elements. To disable logging, you use an empty BucketLoggingStatus request\n element:

\n

\n \n

\n

For more information about server access logging, see Server Access Logging in the\n Amazon S3 User Guide.

\n

For more information about creating a bucket, see CreateBucket. For more\n information about returning the logging status of a bucket, see GetBucketLogging.

\n

The following operations are related to PutBucketLogging:

\n ", "smithy.api#examples": [ { "title": "Set logging configuration for a bucket", @@ -30349,7 +30443,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Sets a metrics configuration (specified by the metrics configuration ID) for the bucket.\n You can have up to 1,000 metrics configurations per bucket. If you're updating an existing\n metrics configuration, note that this is a full replacement of the existing metrics\n configuration. If you don't include the elements you want to keep, they are erased.

\n

To use this operation, you must have permissions to perform the\n s3:PutMetricsConfiguration action. The bucket owner has this permission by\n default. The bucket owner can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about CloudWatch request metrics for Amazon S3, see Monitoring\n Metrics with Amazon CloudWatch.

\n

The following operations are related to\n PutBucketMetricsConfiguration:

\n \n

\n PutBucketMetricsConfiguration has the following special error:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets a metrics configuration (specified by the metrics configuration ID) for the bucket.\n You can have up to 1,000 metrics configurations per bucket. If you're updating an existing\n metrics configuration, note that this is a full replacement of the existing metrics\n configuration. If you don't include the elements you want to keep, they are erased.

\n

To use this operation, you must have permissions to perform the\n s3:PutMetricsConfiguration action. The bucket owner has this permission by\n default. The bucket owner can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

For information about CloudWatch request metrics for Amazon S3, see Monitoring\n Metrics with Amazon CloudWatch.

\n

The following operations are related to\n PutBucketMetricsConfiguration:

\n \n

\n PutBucketMetricsConfiguration has the following special error:

\n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?metrics", @@ -30414,7 +30508,7 @@ "target": "smithy.api#Unit" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Enables notifications of specified events for a bucket. For more information about event\n notifications, see Configuring Event\n Notifications.

\n

Using this API, you can replace an existing notification configuration. The\n configuration is an XML file that defines the event types that you want Amazon S3 to publish and\n the destination where you want Amazon S3 to publish an event notification when it detects an\n event of the specified type.

\n

By default, your bucket has no event notifications configured. That is, the notification\n configuration will be an empty NotificationConfiguration.

\n

\n \n

\n

\n \n

\n

This action replaces the existing notification configuration with the configuration you\n include in the request body.

\n

After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification\n Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and\n that the bucket owner has permission to publish to it by sending a test notification. In\n the case of Lambda destinations, Amazon S3 verifies that the Lambda function permissions\n grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information,\n see Configuring Notifications for Amazon S3 Events.

\n

You can disable notifications by adding the empty NotificationConfiguration\n element.

\n

For more information about the number of event notification configurations that you can\n create per bucket, see Amazon S3 service quotas in Amazon Web Services\n General Reference.

\n

By default, only the bucket owner can configure notifications on a bucket. However,\n bucket owners can use a bucket policy to grant permission to other users to set this\n configuration with the required s3:PutBucketNotification permission.

\n \n

The PUT notification is an atomic operation. For example, suppose your notification\n configuration includes SNS topic, SQS queue, and Lambda function configurations. When\n you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS\n topic. If the message fails, the entire PUT action will fail, and Amazon S3 will not add the\n configuration to your bucket.

\n
\n

If the configuration in the request body includes only one\n TopicConfiguration specifying only the\n s3:ReducedRedundancyLostObject event type, the response will also include\n the x-amz-sns-test-message-id header containing the message ID of the test\n notification sent to the topic.

\n

The following action is related to\n PutBucketNotificationConfiguration:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Enables notifications of specified events for a bucket. For more information about event\n notifications, see Configuring Event\n Notifications.

\n

Using this API, you can replace an existing notification configuration. The\n configuration is an XML file that defines the event types that you want Amazon S3 to publish and\n the destination where you want Amazon S3 to publish an event notification when it detects an\n event of the specified type.

\n

By default, your bucket has no event notifications configured. That is, the notification\n configuration will be an empty NotificationConfiguration.

\n

\n \n

\n

\n \n

\n

This action replaces the existing notification configuration with the configuration you\n include in the request body.

\n

After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification\n Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and\n that the bucket owner has permission to publish to it by sending a test notification. In\n the case of Lambda destinations, Amazon S3 verifies that the Lambda function permissions\n grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information,\n see Configuring Notifications for Amazon S3 Events.

\n

You can disable notifications by adding the empty NotificationConfiguration\n element.

\n

For more information about the number of event notification configurations that you can\n create per bucket, see Amazon S3 service quotas in Amazon Web Services\n General Reference.

\n

By default, only the bucket owner can configure notifications on a bucket. However,\n bucket owners can use a bucket policy to grant permission to other users to set this\n configuration with the required s3:PutBucketNotification permission.

\n \n

The PUT notification is an atomic operation. For example, suppose your notification\n configuration includes SNS topic, SQS queue, and Lambda function configurations. When\n you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS\n topic. If the message fails, the entire PUT action will fail, and Amazon S3 will not add the\n configuration to your bucket.

\n
\n

If the configuration in the request body includes only one\n TopicConfiguration specifying only the\n s3:ReducedRedundancyLostObject event type, the response will also include\n the x-amz-sns-test-message-id header containing the message ID of the test\n notification sent to the topic.

\n

The following action is related to\n PutBucketNotificationConfiguration:

\n ", "smithy.api#examples": [ { "title": "Set notification configuration for a bucket", @@ -30499,7 +30593,7 @@ "aws.protocols#httpChecksum": { "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this\n operation, you must have the s3:PutBucketOwnershipControls permission. For\n more information about Amazon S3 permissions, see Specifying permissions in a\n policy.

\n

For information about Amazon S3 Object Ownership, see Using object\n ownership.

\n

The following operations are related to PutBucketOwnershipControls:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this\n operation, you must have the s3:PutBucketOwnershipControls permission. For\n more information about Amazon S3 permissions, see Specifying permissions in a\n policy.

\n

For information about Amazon S3 Object Ownership, see Using object\n ownership.

\n

The following operations are related to PutBucketOwnershipControls:

\n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?ownershipControls", @@ -30567,7 +30661,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "

Applies an Amazon S3 bucket policy to an Amazon S3 bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

If you are using an identity other than the\n root user of the Amazon Web Services account that owns the bucket, the calling identity must both have the\n PutBucketPolicy permissions on the specified bucket and belong to the\n bucket owner's account in order to use this operation.

\n

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403\n Access Denied error. If you have the correct permissions, but you're not using an\n identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not\n Allowed error.

\n \n

To ensure that bucket owners don't inadvertently lock themselves out of their own\n buckets, the root principal in a bucket owner's Amazon Web Services account can perform the\n GetBucketPolicy, PutBucketPolicy, and\n DeleteBucketPolicy API actions, even if their bucket policy explicitly\n denies the root principal's access. Bucket owner root principals can only be blocked\n from performing these API actions by VPC endpoint policies and Amazon Web Services Organizations\n policies.

\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The s3:PutBucketPolicy permission is required in a policy. \n For more information about general purpose buckets bucket policies, see Using Bucket Policies and User\n Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation, you must have the s3express:PutBucketPolicy permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
Example bucket policies
\n
\n

\n General purpose buckets example bucket policies - See Bucket policy examples in the Amazon S3 User Guide.

\n

\n Directory bucket example bucket policies - See Example bucket policies for S3 Express One Zone in the Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to PutBucketPolicy:

\n ", + "smithy.api#documentation": "

Applies an Amazon S3 bucket policy to an Amazon S3 bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

If you are using an identity other than the root user of the Amazon Web Services account that\n owns the bucket, the calling identity must both have the\n PutBucketPolicy permissions on the specified bucket and belong to\n the bucket owner's account in order to use this operation.

\n

If you don't have PutBucketPolicy permissions, Amazon S3 returns a\n 403 Access Denied error. If you have the correct permissions, but\n you're not using an identity that belongs to the bucket owner's account, Amazon S3\n returns a 405 Method Not Allowed error.

\n \n

To ensure that bucket owners don't inadvertently lock themselves out of\n their own buckets, the root principal in a bucket owner's Amazon Web Services account can\n perform the GetBucketPolicy, PutBucketPolicy, and\n DeleteBucketPolicy API actions, even if their bucket policy\n explicitly denies the root principal's access. Bucket owner root principals can\n only be blocked from performing these API actions by VPC endpoint policies and\n Amazon Web Services Organizations policies.

\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:PutBucketPolicy permission is required in a policy. For\n more information about general purpose buckets bucket policies, see Using Bucket Policies and User Policies in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions -\n To grant access to this API operation, you must have the\n s3express:PutBucketPolicy permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
Example bucket policies
\n
\n

\n General purpose buckets example bucket policies\n - See Bucket policy\n examples in the Amazon S3 User Guide.

\n

\n Directory bucket example bucket policies\n - See Example bucket policies for S3 Express One Zone in the\n Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n

The following operations are related to PutBucketPolicy:

\n ", "smithy.api#examples": [ { "title": "Set bucket policy", @@ -30628,7 +30722,7 @@ "Policy": { "target": "com.amazonaws.s3#Policy", "traits": { - "smithy.api#documentation": "

The bucket policy as a JSON document.

\n

For directory buckets, the only IAM action supported in the bucket policy is s3express:CreateSession.

", + "smithy.api#documentation": "

The bucket policy as a JSON document.

\n

For directory buckets, the only IAM action supported in the bucket policy is\n s3express:CreateSession.

", "smithy.api#httpPayload": {}, "smithy.api#required": {} } @@ -30658,7 +30752,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Creates a replication configuration or replaces an existing one. For more information,\n see Replication in the Amazon S3 User Guide.

\n

Specify the replication configuration in the request body. In the replication\n configuration, you provide the name of the destination bucket or buckets where you want\n Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your\n behalf, and other relevant information. You can invoke this request for a specific\n Amazon Web Services Region by using the \n \n aws:RequestedRegion\n condition key.

\n

A replication configuration must include at least one rule, and can contain a maximum of\n 1,000. Each rule identifies a subset of objects to replicate by filtering the objects in\n the source bucket. To choose additional subsets of objects to replicate, add a rule for\n each subset.

\n

To specify a subset of the objects in the source bucket to apply a replication rule to,\n add the Filter element as a child of the Rule element. You can filter objects based on an\n object key prefix, one or more object tags, or both. When you add the Filter element in the\n configuration, you must also add the following elements:\n DeleteMarkerReplication, Status, and\n Priority.

\n \n

If you are using an earlier version of the replication configuration, Amazon S3 handles\n replication of delete markers differently. For more information, see Backward Compatibility.

\n
\n

For information about enabling versioning on a bucket, see Using Versioning.

\n
\n
Handling Replication of Encrypted Objects
\n
\n

By default, Amazon S3 doesn't replicate objects that are stored at rest using\n server-side encryption with KMS keys. To replicate Amazon Web Services KMS-encrypted objects,\n add the following: SourceSelectionCriteria,\n SseKmsEncryptedObjects, Status,\n EncryptionConfiguration, and ReplicaKmsKeyID. For\n information about replication configuration, see Replicating\n Objects Created with SSE Using KMS keys.

\n

For information on PutBucketReplication errors, see List of\n replication-related error codes\n

\n
\n
Permissions
\n
\n

To create a PutBucketReplication request, you must have\n s3:PutReplicationConfiguration permissions for the bucket.\n \n

\n

By default, a resource owner, in this case the Amazon Web Services account that created the\n bucket, can perform this operation. The resource owner can also grant others\n permissions to perform the operation. For more information about permissions, see\n Specifying Permissions in\n a Policy and Managing Access\n Permissions to Your Amazon S3 Resources.

\n \n

To perform this operation, the user or role performing the action must have\n the iam:PassRole\n permission.

\n
\n
\n
\n

The following operations are related to PutBucketReplication:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Creates a replication configuration or replaces an existing one. For more information,\n see Replication in the Amazon S3 User Guide.

\n

Specify the replication configuration in the request body. In the replication\n configuration, you provide the name of the destination bucket or buckets where you want\n Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your\n behalf, and other relevant information. You can invoke this request for a specific Amazon Web Services\n Region by using the \n aws:RequestedRegion\n condition key.

\n

A replication configuration must include at least one rule, and can contain a maximum of\n 1,000. Each rule identifies a subset of objects to replicate by filtering the objects in\n the source bucket. To choose additional subsets of objects to replicate, add a rule for\n each subset.

\n

To specify a subset of the objects in the source bucket to apply a replication rule to,\n add the Filter element as a child of the Rule element. You can filter objects based on an\n object key prefix, one or more object tags, or both. When you add the Filter element in the\n configuration, you must also add the following elements:\n DeleteMarkerReplication, Status, and\n Priority.

\n \n

If you are using an earlier version of the replication configuration, Amazon S3 handles\n replication of delete markers differently. For more information, see Backward Compatibility.

\n
\n

For information about enabling versioning on a bucket, see Using Versioning.

\n
\n
Handling Replication of Encrypted Objects
\n
\n

By default, Amazon S3 doesn't replicate objects that are stored at rest using\n server-side encryption with KMS keys. To replicate Amazon Web Services KMS-encrypted objects,\n add the following: SourceSelectionCriteria,\n SseKmsEncryptedObjects, Status,\n EncryptionConfiguration, and ReplicaKmsKeyID. For\n information about replication configuration, see Replicating\n Objects Created with SSE Using KMS keys.

\n

For information on PutBucketReplication errors, see List of\n replication-related error codes\n

\n
\n
Permissions
\n
\n

To create a PutBucketReplication request, you must have\n s3:PutReplicationConfiguration permissions for the bucket.\n \n

\n

By default, a resource owner, in this case the Amazon Web Services account that created the\n bucket, can perform this operation. The resource owner can also grant others\n permissions to perform the operation. For more information about permissions, see\n Specifying Permissions in\n a Policy and Managing Access\n Permissions to Your Amazon S3 Resources.

\n \n

To perform this operation, the user or role performing the action must have\n the iam:PassRole\n permission.

\n
\n
\n
\n

The following operations are related to PutBucketReplication:

\n ", "smithy.api#examples": [ { "title": "Set replication configuration on a bucket", @@ -30761,7 +30855,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Sets the request payment configuration for a bucket. By default, the bucket owner pays\n for downloads from the bucket. This configuration parameter enables the bucket owner (only)\n to specify that the person requesting the download will be charged for the download. For\n more information, see Requester Pays\n Buckets.

\n

The following operations are related to PutBucketRequestPayment:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the request payment configuration for a bucket. By default, the bucket owner pays\n for downloads from the bucket. This configuration parameter enables the bucket owner (only)\n to specify that the person requesting the download will be charged for the download. For\n more information, see Requester Pays\n Buckets.

\n

The following operations are related to PutBucketRequestPayment:

\n ", "smithy.api#examples": [ { "title": "Set request payment configuration on a bucket.", @@ -30848,7 +30942,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Sets the tags for a bucket.

\n

Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this,\n sign up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost\n of combined resources, organize your billing information according to resources with the\n same tag key values. For example, you can tag several resources with a specific application\n name, and then organize your billing information to see the total cost of that application\n across several services. For more information, see Cost Allocation and\n Tagging and Using Cost Allocation in Amazon S3\n Bucket Tags.

\n \n

When this operation sets the tags for a bucket, it will overwrite any current tags\n the bucket already has. You cannot use this operation to add tags to an existing list of\n tags.

\n
\n

To use this operation, you must have permissions to perform the\n s3:PutBucketTagging action. The bucket owner has this permission by default\n and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

\n PutBucketTagging has the following special errors. For more Amazon S3 errors\n see, Error\n Responses.

\n \n

The following operations are related to PutBucketTagging:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the tags for a bucket.

\n

Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this,\n sign up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost\n of combined resources, organize your billing information according to resources with the\n same tag key values. For example, you can tag several resources with a specific application\n name, and then organize your billing information to see the total cost of that application\n across several services. For more information, see Cost Allocation and\n Tagging and Using Cost Allocation in Amazon S3\n Bucket Tags.

\n \n

When this operation sets the tags for a bucket, it will overwrite any current tags\n the bucket already has. You cannot use this operation to add tags to an existing list of\n tags.

\n
\n

To use this operation, you must have permissions to perform the\n s3:PutBucketTagging action. The bucket owner has this permission by default\n and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

\n

\n PutBucketTagging has the following special errors. For more Amazon S3 errors\n see, Error\n Responses.

\n \n

The following operations are related to PutBucketTagging:

\n ", "smithy.api#examples": [ { "title": "Set tags on a bucket", @@ -30944,7 +31038,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n \n

When you enable versioning on a bucket for the first time, it might take a short\n amount of time for the change to be fully propagated. We recommend that you wait for 15\n minutes after enabling versioning before issuing write operations\n (PUT\n or\n DELETE)\n on objects in the bucket.

\n
\n

Sets the versioning state of an existing bucket.

\n

You can set the versioning state with one of the following values:

\n

\n Enabled—Enables versioning for the objects in the\n bucket. All objects added to the bucket receive a unique version ID.

\n

\n Suspended—Disables versioning for the objects in the\n bucket. All objects added to the bucket receive the version ID null.

\n

If the versioning state has never been set on a bucket, it has no versioning state; a\n GetBucketVersioning request does not return a versioning state value.

\n

In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner\n and want to enable MFA Delete in the bucket versioning configuration, you must include the\n x-amz-mfa request header and the Status and the\n MfaDelete request elements in a request to set the versioning state of the\n bucket.

\n \n

If you have an object expiration lifecycle configuration in your non-versioned bucket\n and you want to maintain the same permanent delete behavior when you enable versioning,\n you must add a noncurrent expiration policy. The noncurrent expiration lifecycle\n configuration will manage the deletes of the noncurrent object versions in the\n version-enabled bucket. (A version-enabled bucket maintains one current and zero or more\n noncurrent object versions.) For more information, see Lifecycle and Versioning.

\n
\n

The following operations are related to PutBucketVersioning:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n \n

When you enable versioning on a bucket for the first time, it might take a short\n amount of time for the change to be fully propagated. We recommend that you wait for 15\n minutes after enabling versioning before issuing write operations (PUT or\n DELETE) on objects in the bucket.

\n
\n

Sets the versioning state of an existing bucket.

\n

You can set the versioning state with one of the following values:

\n

\n Enabled—Enables versioning for the objects in the\n bucket. All objects added to the bucket receive a unique version ID.

\n

\n Suspended—Disables versioning for the objects in the\n bucket. All objects added to the bucket receive the version ID null.

\n

If the versioning state has never been set on a bucket, it has no versioning state; a\n GetBucketVersioning request does not return a versioning state value.

\n

In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner\n and want to enable MFA Delete in the bucket versioning configuration, you must include the\n x-amz-mfa request header and the Status and the\n MfaDelete request elements in a request to set the versioning state of the\n bucket.

\n \n

If you have an object expiration lifecycle configuration in your non-versioned bucket\n and you want to maintain the same permanent delete behavior when you enable versioning,\n you must add a noncurrent expiration policy. The noncurrent expiration lifecycle\n configuration will manage the deletes of the noncurrent object versions in the\n version-enabled bucket. (A version-enabled bucket maintains one current and zero or more\n noncurrent object versions.) For more information, see Lifecycle and Versioning.

\n
\n

The following operations are related to PutBucketVersioning:

\n ", "smithy.api#examples": [ { "title": "Set versioning configuration on a bucket", @@ -31039,7 +31133,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Sets the configuration of the website that is specified in the website\n subresource. To configure a bucket as a website, you can add this subresource on the bucket\n with website configuration information such as the file name of the index document and any\n redirect rules. For more information, see Hosting Websites on Amazon S3.

\n

This PUT action requires the S3:PutBucketWebsite permission. By default,\n only the bucket owner can configure the website attached to a bucket; however, bucket\n owners can allow other users to set the website configuration by writing a bucket policy\n that grants them the S3:PutBucketWebsite permission.

\n

To redirect all website requests sent to the bucket's website endpoint, you add a\n website configuration with the following elements. Because all requests are sent to another\n website, you don't need to provide index document name for the bucket.

\n \n

If you want granular control over redirects, you can use the following elements to add\n routing rules that describe conditions for redirecting requests and information about the\n redirect destination. In this case, the website configuration must provide an index\n document for the bucket, because some requests might not be redirected.

\n \n

Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more\n than 50 routing rules, you can use object redirect. For more information, see Configuring an\n Object Redirect in the Amazon S3 User Guide.

\n

The maximum request length is limited to 128 KB.

", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the configuration of the website that is specified in the website\n subresource. To configure a bucket as a website, you can add this subresource on the bucket\n with website configuration information such as the file name of the index document and any\n redirect rules. For more information, see Hosting Websites on Amazon S3.

\n

This PUT action requires the S3:PutBucketWebsite permission. By default,\n only the bucket owner can configure the website attached to a bucket; however, bucket\n owners can allow other users to set the website configuration by writing a bucket policy\n that grants them the S3:PutBucketWebsite permission.

\n

To redirect all website requests sent to the bucket's website endpoint, you add a\n website configuration with the following elements. Because all requests are sent to another\n website, you don't need to provide index document name for the bucket.

\n \n

If you want granular control over redirects, you can use the following elements to add\n routing rules that describe conditions for redirecting requests and information about the\n redirect destination. In this case, the website configuration must provide an index\n document for the bucket, because some requests might not be redirected.

\n \n

Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more\n than 50 routing rules, you can use object redirect. For more information, see Configuring an\n Object Redirect in the Amazon S3 User Guide.

\n

The maximum request length is limited to 128 KB.

", "smithy.api#examples": [ { "title": "Set website configuration on a bucket", @@ -31127,11 +31221,25 @@ "output": { "target": "com.amazonaws.s3#PutObjectOutput" }, + "errors": [ + { + "target": "com.amazonaws.s3#EncryptionTypeMismatch" + }, + { + "target": "com.amazonaws.s3#InvalidRequest" + }, + { + "target": "com.amazonaws.s3#InvalidWriteOffset" + }, + { + "target": "com.amazonaws.s3#TooManyParts" + } + ], "traits": { "aws.protocols#httpChecksum": { "requestAlgorithmMember": "ChecksumAlgorithm" }, - "smithy.api#documentation": "

Adds an object to a bucket.

\n \n \n \n

Amazon S3 is a distributed system. If it receives multiple write requests for the same object\n simultaneously, it overwrites all but the last object written. However, Amazon S3 provides features that can modify this behavior:

\n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The following permissions are required in your policies when your \n PutObject request includes specific headers.

    \n
      \n
    • \n

      \n \n s3:PutObject\n - To successfully complete the PutObject request, you must always have the s3:PutObject permission on a bucket to add an object\n to it.

      \n
    • \n
    • \n

      \n \n s3:PutObjectAcl\n - To successfully change the objects ACL of your PutObject request, you must have the s3:PutObjectAcl.

      \n
    • \n
    • \n

      \n \n s3:PutObjectTagging\n - To successfully set the tag-set with your PutObject request, you\n must have the s3:PutObjectTagging.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with\n SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key.

    \n
  • \n
\n
\n
Data integrity with Content-MD5
\n
\n
    \n
  • \n

    \n General purpose bucket - To ensure that data is not corrupted traversing the network, use the\n Content-MD5 header. When you use this header, Amazon S3 checks the object\n against the provided MD5 value and, if they do not match, Amazon S3 returns an error. Alternatively, when the object's ETag is its MD5 digest, \n you can calculate the MD5 while putting the object to Amazon S3 and compare the returned ETag to\n the calculated MD5 value.

    \n
  • \n
  • \n

    \n Directory bucket - This functionality is not supported for directory buckets.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

For more information about related Amazon S3 APIs, see the following:

\n ", + "smithy.api#documentation": "

Adds an object to a bucket.

\n \n \n \n

Amazon S3 is a distributed system. If it receives multiple write requests for the same object\n simultaneously, it overwrites all but the last object written. However, Amazon S3 provides\n features that can modify this behavior:

\n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n following permissions are required in your policies when your\n PutObject request includes specific headers.

    \n
      \n
    • \n

      \n \n s3:PutObject\n -\n To successfully complete the PutObject request, you must\n always have the s3:PutObject permission on a bucket to\n add an object to it.

      \n
    • \n
    • \n

      \n \n s3:PutObjectAcl\n - To successfully change the objects ACL of your\n PutObject request, you must have the\n s3:PutObjectAcl.

      \n
    • \n
    • \n

      \n \n s3:PutObjectTagging\n - To successfully set the tag-set with your\n PutObject request, you must have the\n s3:PutObjectTagging.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions\n in IAM identity-based policies and KMS key policies for the KMS\n key.

    \n
  • \n
\n
\n
Data integrity with Content-MD5
\n
\n
    \n
  • \n

    \n General purpose bucket - To ensure that\n data is not corrupted traversing the network, use the\n Content-MD5 header. When you use this header, Amazon S3 checks\n the object against the provided MD5 value and, if they do not match, Amazon S3\n returns an error. Alternatively, when the object's ETag is its MD5 digest,\n you can calculate the MD5 while putting the object to Amazon S3 and compare the\n returned ETag to the calculated MD5 value.

    \n
  • \n
  • \n

    \n Directory bucket -\n This functionality is not supported for directory buckets.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

For more information about related Amazon S3 APIs, see the following:

\n ", "smithy.api#examples": [ { "title": "To create an object.", @@ -31262,7 +31370,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Uses the acl subresource to set the access control list (ACL) permissions\n for a new or existing object in an S3 bucket. You must have the WRITE_ACP\n permission to set the ACL of an object. For more information, see What\n permissions can I grant? in the Amazon S3 User Guide.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

Depending on your application needs, you can choose to set the ACL on an object using\n either the request body or the headers. For example, if you have an existing application\n that updates a bucket ACL using the request body, you can continue to use that approach.\n For more information, see Access Control List (ACL) Overview\n in the Amazon S3 User Guide.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs\n are disabled and no longer affect permissions. You must use policies to grant access to\n your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return\n the AccessControlListNotSupported error code. Requests to read ACLs are\n still supported. For more information, see Controlling object\n ownership in the Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

You can set access permissions using one of the following methods:

\n
    \n
  • \n

    Specify a canned ACL with the x-amz-acl request header. Amazon S3\n supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has\n a predefined set of grantees and permissions. Specify the canned ACL name as\n the value of x-amz-acl. If you use this header, you cannot use\n other access control-specific headers in your request. For more information,\n see Canned\n ACL.

    \n
  • \n
  • \n

    Specify access permissions explicitly with the\n x-amz-grant-read, x-amz-grant-read-acp,\n x-amz-grant-write-acp, and\n x-amz-grant-full-control headers. When using these headers,\n you specify explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3\n groups) who will receive the permission. If you use these ACL-specific\n headers, you cannot use x-amz-acl header to set a canned ACL.\n These parameters map to the set of permissions that Amazon S3 supports in an ACL.\n For more information, see Access Control List (ACL)\n Overview.

    \n

    You specify each grantee as a type=value pair, where the type is one of\n the following:

    \n
      \n
    • \n

      \n id – if the value specified is the canonical user ID\n of an Amazon Web Services account

      \n
    • \n
    • \n

      \n uri – if you are granting permissions to a predefined\n group

      \n
    • \n
    • \n

      \n emailAddress – if the value specified is the email\n address of an Amazon Web Services account

      \n \n

      Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

      \n
        \n
      • \n

        US East (N. Virginia)

        \n
      • \n
      • \n

        US West (N. California)

        \n
      • \n
      • \n

        US West (Oregon)

        \n
      • \n
      • \n

        Asia Pacific (Singapore)

        \n
      • \n
      • \n

        Asia Pacific (Sydney)

        \n
      • \n
      • \n

        Asia Pacific (Tokyo)

        \n
      • \n
      • \n

        Europe (Ireland)

        \n
      • \n
      • \n

        South America (São Paulo)

        \n
      • \n
      \n

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

      \n
      \n
    • \n
    \n

    For example, the following x-amz-grant-read header grants\n list objects permission to the two Amazon Web Services accounts identified by their email\n addresses.

    \n

    \n x-amz-grant-read: emailAddress=\"xyz@amazon.com\",\n emailAddress=\"abc@amazon.com\" \n

    \n
  • \n
\n

You can use either a canned ACL or specify access permissions explicitly. You\n cannot do both.

\n
\n
Grantee Values
\n
\n

You can specify the person (grantee) to whom you're assigning access rights\n (using request elements) in the following ways:

\n
    \n
  • \n

    By the person's ID:

    \n

    \n <>ID<><>GranteesEmail<>\n \n

    \n

    DisplayName is optional and ignored in the request.

    \n
  • \n
  • \n

    By URI:

    \n

    \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

    \n
  • \n
  • \n

    By Email address:

    \n

    \n <>Grantees@email.com<>lt;/Grantee>\n

    \n

    The grantee is resolved to the CanonicalUser and, in a response to a GET\n Object acl request, appears as the CanonicalUser.

    \n \n

    Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

    \n
      \n
    • \n

      US East (N. Virginia)

      \n
    • \n
    • \n

      US West (N. California)

      \n
    • \n
    • \n

      US West (Oregon)

      \n
    • \n
    • \n

      Asia Pacific (Singapore)

      \n
    • \n
    • \n

      Asia Pacific (Sydney)

      \n
    • \n
    • \n

      Asia Pacific (Tokyo)

      \n
    • \n
    • \n

      Europe (Ireland)

      \n
    • \n
    • \n

      South America (São Paulo)

      \n
    • \n
    \n

    For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    \n
    \n
  • \n
\n
\n
Versioning
\n
\n

The ACL of an object is set at the object version level. By default, PUT sets\n the ACL of the current version of an object. To set the ACL of a different\n version, use the versionId subresource.

\n
\n
\n

The following operations are related to PutObjectAcl:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Uses the acl subresource to set the access control list (ACL) permissions\n for a new or existing object in an S3 bucket. You must have the WRITE_ACP\n permission to set the ACL of an object. For more information, see What\n permissions can I grant? in the Amazon S3 User Guide.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

Depending on your application needs, you can choose to set the ACL on an object using\n either the request body or the headers. For example, if you have an existing application\n that updates a bucket ACL using the request body, you can continue to use that approach.\n For more information, see Access Control List (ACL) Overview\n in the Amazon S3 User Guide.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs\n are disabled and no longer affect permissions. You must use policies to grant access to\n your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return\n the AccessControlListNotSupported error code. Requests to read ACLs are\n still supported. For more information, see Controlling object\n ownership in the Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

You can set access permissions using one of the following methods:

\n
    \n
  • \n

    Specify a canned ACL with the x-amz-acl request header. Amazon S3\n supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has\n a predefined set of grantees and permissions. Specify the canned ACL name as\n the value of x-amz-acl. If you use this header, you cannot use\n other access control-specific headers in your request. For more information,\n see Canned\n ACL.

    \n
  • \n
  • \n

    Specify access permissions explicitly with the\n x-amz-grant-read, x-amz-grant-read-acp,\n x-amz-grant-write-acp, and\n x-amz-grant-full-control headers. When using these headers,\n you specify explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3\n groups) who will receive the permission. If you use these ACL-specific\n headers, you cannot use x-amz-acl header to set a canned ACL.\n These parameters map to the set of permissions that Amazon S3 supports in an ACL.\n For more information, see Access Control List (ACL)\n Overview.

    \n

    You specify each grantee as a type=value pair, where the type is one of\n the following:

    \n
      \n
    • \n

      \n id – if the value specified is the canonical user ID\n of an Amazon Web Services account

      \n
    • \n
    • \n

      \n uri – if you are granting permissions to a predefined\n group

      \n
    • \n
    • \n

      \n emailAddress – if the value specified is the email\n address of an Amazon Web Services account

      \n \n

      Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

      \n
        \n
      • \n

        US East (N. Virginia)

        \n
      • \n
      • \n

        US West (N. California)

        \n
      • \n
      • \n

        US West (Oregon)

        \n
      • \n
      • \n

        Asia Pacific (Singapore)

        \n
      • \n
      • \n

        Asia Pacific (Sydney)

        \n
      • \n
      • \n

        Asia Pacific (Tokyo)

        \n
      • \n
      • \n

        Europe (Ireland)

        \n
      • \n
      • \n

        South America (São Paulo)

        \n
      • \n
      \n

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

      \n
      \n
    • \n
    \n

    For example, the following x-amz-grant-read header grants\n list objects permission to the two Amazon Web Services accounts identified by their email\n addresses.

    \n

    \n x-amz-grant-read: emailAddress=\"xyz@amazon.com\",\n emailAddress=\"abc@amazon.com\" \n

    \n
  • \n
\n

You can use either a canned ACL or specify access permissions explicitly. You\n cannot do both.

\n
\n
Grantee Values
\n
\n

You can specify the person (grantee) to whom you're assigning access rights\n (using request elements) in the following ways:

\n
    \n
  • \n

    By the person's ID:

    \n

    \n <>ID<><>GranteesEmail<>\n \n

    \n

    DisplayName is optional and ignored in the request.

    \n
  • \n
  • \n

    By URI:

    \n

    \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

    \n
  • \n
  • \n

    By Email address:

    \n

    \n <>Grantees@email.com<>lt;/Grantee>\n

    \n

    The grantee is resolved to the CanonicalUser and, in a response to a GET\n Object acl request, appears as the CanonicalUser.

    \n \n

    Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

    \n
      \n
    • \n

      US East (N. Virginia)

      \n
    • \n
    • \n

      US West (N. California)

      \n
    • \n
    • \n

      US West (Oregon)

      \n
    • \n
    • \n

      Asia Pacific (Singapore)

      \n
    • \n
    • \n

      Asia Pacific (Sydney)

      \n
    • \n
    • \n

      Asia Pacific (Tokyo)

      \n
    • \n
    • \n

      Europe (Ireland)

      \n
    • \n
    • \n

      South America (São Paulo)

      \n
    • \n
    \n

    For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    \n
    \n
  • \n
\n
\n
Versioning
\n
\n

The ACL of an object is set at the object version level. By default, PUT sets\n the ACL of the current version of an object. To set the ACL of a different\n version, use the versionId subresource.

\n
\n
\n

The following operations are related to PutObjectAcl:

\n ", "smithy.api#examples": [ { "title": "To grant permissions using object ACL", @@ -31425,7 +31533,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Applies a legal hold configuration to the specified object. For more information, see\n Locking\n Objects.

\n

This functionality is not supported for Amazon S3 on Outposts.

", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Applies a legal hold configuration to the specified object. For more information, see\n Locking\n Objects.

\n

This functionality is not supported for Amazon S3 on Outposts.

", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}/{Key+}?legal-hold", @@ -31529,7 +31637,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Places an Object Lock configuration on the specified bucket. The rule specified in the\n Object Lock configuration will be applied by default to every new object placed in the\n specified bucket. For more information, see Locking Objects.

\n \n \n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Places an Object Lock configuration on the specified bucket. The rule specified in the\n Object Lock configuration will be applied by default to every new object placed in the\n specified bucket. For more information, see Locking Objects.

\n \n \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?object-lock", @@ -31618,14 +31726,14 @@ "Expiration": { "target": "com.amazonaws.s3#Expiration", "traits": { - "smithy.api#documentation": "

If the expiration is configured for the object (see PutBucketLifecycleConfiguration) in the Amazon S3 User Guide, the response includes this header. It\n includes the expiry-date and rule-id key-value pairs that provide\n information about object expiration. The value of the rule-id is\n URL-encoded.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If the expiration is configured for the object (see PutBucketLifecycleConfiguration) in the Amazon S3 User Guide,\n the response includes this header. It includes the expiry-date and\n rule-id key-value pairs that provide information about object expiration.\n The value of the rule-id is URL-encoded.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-expiration" } }, "ETag": { "target": "com.amazonaws.s3#ETag", "traits": { - "smithy.api#documentation": "

Entity tag for the uploaded object.

\n

\n General purpose buckets - To ensure that data is not corrupted traversing the network, \n for objects where the \n ETag is the MD5 digest of the object, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to\n the calculated MD5 value.

\n

\n Directory buckets - The ETag for the object in a directory bucket isn't the MD5 digest of the object.

", + "smithy.api#documentation": "

Entity tag for the uploaded object.

\n

\n General purpose buckets - To ensure that data is not\n corrupted traversing the network, for objects where the ETag is the MD5 digest of the\n object, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned\n ETag to the calculated MD5 value.

\n

\n Directory buckets - The ETag for the object in\n a directory bucket isn't the MD5 digest of the object.

", "smithy.api#httpHeader": "ETag" } }, @@ -31667,7 +31775,7 @@ "VersionId": { "target": "com.amazonaws.s3#ObjectVersionId", "traits": { - "smithy.api#documentation": "

Version ID of the object.

\n

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID\n for the object being stored. Amazon S3 returns this ID in the response. When you enable\n versioning for a bucket, if Amazon S3 receives multiple write requests for the same object\n simultaneously, it stores all of the objects. For more information about versioning, see\n Adding Objects to\n Versioning-Enabled Buckets in the Amazon S3\n User Guide. For information about returning the versioning state\n of a bucket, see GetBucketVersioning.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

Version ID of the object.

\n

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID\n for the object being stored. Amazon S3 returns this ID in the response. When you enable\n versioning for a bucket, if Amazon S3 receives multiple write requests for the same object\n simultaneously, it stores all of the objects. For more information about versioning, see\n Adding Objects to\n Versioning-Enabled Buckets in the Amazon S3 User Guide. For\n information about returning the versioning state of a bucket, see GetBucketVersioning.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-version-id" } }, @@ -31681,7 +31789,7 @@ "SSECustomerKeyMD5": { "target": "com.amazonaws.s3#SSECustomerKeyMD5", "traits": { - "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification of\n the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification\n of the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" } }, @@ -31706,6 +31814,13 @@ "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" } }, + "Size": { + "target": "com.amazonaws.s3#Size", + "traits": { + "smithy.api#documentation": "

\n The size of the object in bytes. This will only be present if you append to an object.\n

\n \n

This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-size" + } + }, "RequestCharged": { "target": "com.amazonaws.s3#RequestCharged", "traits": { @@ -31723,7 +31838,7 @@ "ACL": { "target": "com.amazonaws.s3#ObjectCannedACL", "traits": { - "smithy.api#documentation": "

The canned ACL to apply to the object. For more information, see Canned\n ACL in the Amazon S3 User Guide.

\n

When adding a new object, you can use headers to grant ACL-based permissions to\n individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are\n then added to the ACL on the object. By default, all objects are private. Only the owner\n has full access control. For more information, see Access Control List (ACL) Overview\n and Managing\n ACLs Using the REST API in the Amazon S3 User Guide.

\n

If the bucket that you're uploading objects to uses the bucket owner enforced setting\n for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that\n use this setting only accept PUT requests that don't specify an ACL or PUT requests that\n specify bucket owner full control ACLs, such as the bucket-owner-full-control\n canned ACL or an equivalent form of this ACL expressed in the XML format. PUT requests that\n contain other ACLs (for example, custom grants to certain Amazon Web Services accounts) fail and return a\n 400 error with the error code AccessControlListNotSupported.\n For more information, see Controlling ownership of\n objects and disabling ACLs in the Amazon S3 User Guide.

\n \n \n ", + "smithy.api#documentation": "

The canned ACL to apply to the object. For more information, see Canned\n ACL in the Amazon S3 User Guide.

\n

When adding a new object, you can use headers to grant ACL-based permissions to\n individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are\n then added to the ACL on the object. By default, all objects are private. Only the owner\n has full access control. For more information, see Access Control List (ACL) Overview\n and Managing\n ACLs Using the REST API in the Amazon S3 User Guide.

\n

If the bucket that you're uploading objects to uses the bucket owner enforced setting\n for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that\n use this setting only accept PUT requests that don't specify an ACL or PUT requests that\n specify bucket owner full control ACLs, such as the bucket-owner-full-control\n canned ACL or an equivalent form of this ACL expressed in the XML format. PUT requests that\n contain other ACLs (for example, custom grants to certain Amazon Web Services accounts) fail and return a\n 400 error with the error code AccessControlListNotSupported.\n For more information, see Controlling ownership of\n objects and disabling ACLs in the Amazon S3 User Guide.

\n \n \n ", "smithy.api#httpHeader": "x-amz-acl" } }, @@ -31738,7 +31853,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The bucket name to which the PUT action was initiated.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The bucket name to which the PUT action was initiated.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -31784,7 +31899,7 @@ "ContentMD5": { "target": "com.amazonaws.s3#ContentMD5", "traits": { - "smithy.api#documentation": "

The base64-encoded 128-bit MD5 digest of the message (without the headers) according to\n RFC 1864. This header can be used as a message integrity check to verify that the data is\n the same data that was originally sent. Although it is optional, we recommend using the\n Content-MD5 mechanism as an end-to-end integrity check. For more information about REST\n request authentication, see REST Authentication.

\n \n

The Content-MD5 or x-amz-sdk-checksum-algorithm header is required for any request to upload an\n object with a retention period configured using Amazon S3 Object Lock. For more\n information, see Uploading objects to an Object Lock enabled bucket\n in the Amazon S3 User Guide.

\n
\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

The base64-encoded 128-bit MD5 digest of the message (without the headers) according to\n RFC 1864. This header can be used as a message integrity check to verify that the data is\n the same data that was originally sent. Although it is optional, we recommend using the\n Content-MD5 mechanism as an end-to-end integrity check. For more information about REST\n request authentication, see REST Authentication.

\n \n

The Content-MD5 or x-amz-sdk-checksum-algorithm header is\n required for any request to upload an object with a retention period configured using\n Amazon S3 Object Lock. For more information, see Uploading objects to an Object Lock enabled bucket in the\n Amazon S3 User Guide.

\n
\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "Content-MD5" } }, @@ -31798,7 +31913,7 @@ "ChecksumAlgorithm": { "target": "com.amazonaws.s3#ChecksumAlgorithm", "traits": { - "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum-algorithm\n or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request.

\n

For the x-amz-checksum-algorithm\n header, replace \n algorithm\n with the supported algorithm from the following list:

\n \n

For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If the individual checksum value you provide through x-amz-checksum-algorithm\n doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter and uses the checksum algorithm that matches the provided value in x-amz-checksum-algorithm\n .

\n \n

The Content-MD5 or x-amz-sdk-checksum-algorithm header is required for any request to upload an\n object with a retention period configured using Amazon S3 Object Lock. For more\n information, see Uploading objects to an Object Lock enabled bucket\n in the Amazon S3 User Guide.

\n
\n

For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance.

", + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum-algorithm\n or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request.

\n

For the x-amz-checksum-algorithm\n header, replace \n algorithm\n with the supported algorithm from the following list:

\n \n

For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If the individual checksum value you provide through x-amz-checksum-algorithm\n doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter and uses the checksum algorithm that matches the provided value in x-amz-checksum-algorithm\n .

\n \n

The Content-MD5 or x-amz-sdk-checksum-algorithm header is\n required for any request to upload an object with a retention period configured using\n Amazon S3 Object Lock. For more information, see Uploading objects to an Object Lock enabled bucket in the\n Amazon S3 User Guide.

\n
\n

For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance.

", "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" } }, @@ -31840,7 +31955,7 @@ "IfNoneMatch": { "target": "com.amazonaws.s3#IfNoneMatch", "traits": { - "smithy.api#documentation": "

Uploads the object only if the object key name does not already exist in the bucket specified. Otherwise, Amazon S3 returns a 412 Precondition Failed error.

\n

If a conflicting operation occurs during the upload S3 returns a 409 ConditionalRequestConflict response. On a 409 failure you should retry the upload.

\n

Expects the '*' (asterisk) character.

\n

For more information about conditional requests, see RFC 7232, or Conditional requests in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

Uploads the object only if the object key name does not already exist in the bucket\n specified. Otherwise, Amazon S3 returns a 412 Precondition Failed error.

\n

If a conflicting operation occurs during the upload S3 returns a 409\n ConditionalRequestConflict response. On a 409 failure you should retry the\n upload.

\n

Expects the '*' (asterisk) character.

\n

For more information about conditional requests, see RFC 7232, or Conditional requests in the Amazon S3 User Guide.

", "smithy.api#httpHeader": "If-None-Match" } }, @@ -31883,6 +31998,13 @@ } } }, + "WriteOffsetBytes": { + "target": "com.amazonaws.s3#WriteOffsetBytes", + "traits": { + "smithy.api#documentation": "

\n Specifies the offset for appending data to existing objects in bytes. \n The offset must be equal to the size of the existing object being appended to. \n If no object exists, setting this header to 0 will create a new object.\n

\n \n

This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-write-offset-bytes" + } + }, "Metadata": { "target": "com.amazonaws.s3#Metadata", "traits": { @@ -31893,28 +32015,28 @@ "ServerSideEncryption": { "target": "com.amazonaws.s3#ServerSideEncryption", "traits": { - "smithy.api#documentation": "

The server-side encryption algorithm that was used when you store this object in Amazon S3 (for example,\n AES256, aws:kms, aws:kms:dsse).

\n ", + "smithy.api#documentation": "

The server-side encryption algorithm that was used when you store this object in Amazon S3\n (for example, AES256, aws:kms, aws:kms:dsse).

\n ", "smithy.api#httpHeader": "x-amz-server-side-encryption" } }, "StorageClass": { "target": "com.amazonaws.s3#StorageClass", "traits": { - "smithy.api#documentation": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The\n STANDARD storage class provides high durability and high availability. Depending on\n performance needs, you can specify a different Storage Class. For more information, see Storage Classes in the\n Amazon S3 User Guide.

\n \n \n ", + "smithy.api#documentation": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The\n STANDARD storage class provides high durability and high availability. Depending on\n performance needs, you can specify a different Storage Class. For more information, see\n Storage\n Classes in the Amazon S3 User Guide.

\n \n \n ", "smithy.api#httpHeader": "x-amz-storage-class" } }, "WebsiteRedirectLocation": { "target": "com.amazonaws.s3#WebsiteRedirectLocation", "traits": { - "smithy.api#documentation": "

If the bucket is configured as a website, redirects requests for this object to another\n object in the same bucket or to an external URL. Amazon S3 stores the value of this header in\n the object metadata. For information about object metadata, see Object Key and Metadata in the Amazon S3\n User Guide.

\n

In the following example, the request header sets the redirect to an object\n (anotherPage.html) in the same bucket:

\n

\n x-amz-website-redirect-location: /anotherPage.html\n

\n

In the following example, the request header sets the object redirect to another\n website:

\n

\n x-amz-website-redirect-location: http://www.example.com/\n

\n

For more information about website hosting in Amazon S3, see Hosting Websites on Amazon S3 and\n How to\n Configure Website Page Redirects in the Amazon S3\n User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If the bucket is configured as a website, redirects requests for this object to another\n object in the same bucket or to an external URL. Amazon S3 stores the value of this header in\n the object metadata. For information about object metadata, see Object Key and Metadata in the\n Amazon S3 User Guide.

\n

In the following example, the request header sets the redirect to an object\n (anotherPage.html) in the same bucket:

\n

\n x-amz-website-redirect-location: /anotherPage.html\n

\n

In the following example, the request header sets the object redirect to another\n website:

\n

\n x-amz-website-redirect-location: http://www.example.com/\n

\n

For more information about website hosting in Amazon S3, see Hosting Websites on Amazon S3 and\n How to\n Configure Website Page Redirects in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-website-redirect-location" } }, "SSECustomerAlgorithm": { "target": "com.amazonaws.s3#SSECustomerAlgorithm", "traits": { - "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example,\n AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example,\n AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" } }, @@ -31983,7 +32105,7 @@ "ObjectLockLegalHoldStatus": { "target": "com.amazonaws.s3#ObjectLockLegalHoldStatus", "traits": { - "smithy.api#documentation": "

Specifies whether a legal hold will be applied to this object. For more information\n about S3 Object Lock, see Object Lock in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

Specifies whether a legal hold will be applied to this object. For more information\n about S3 Object Lock, see Object Lock in the\n Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-object-lock-legal-hold" } }, @@ -32012,7 +32134,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Places an Object Retention configuration on an object. For more information, see Locking Objects.\n Users or accounts require the s3:PutObjectRetention permission in order to\n place an Object Retention configuration on objects. Bypassing a Governance Retention\n configuration requires the s3:BypassGovernanceRetention permission.

\n

This functionality is not supported for Amazon S3 on Outposts.

", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Places an Object Retention configuration on an object. For more information, see Locking Objects.\n Users or accounts require the s3:PutObjectRetention permission in order to\n place an Object Retention configuration on objects. Bypassing a Governance Retention\n configuration requires the s3:BypassGovernanceRetention permission.

\n

This functionality is not supported for Amazon S3 on Outposts.

", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}/{Key+}?retention", @@ -32123,7 +32245,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Sets the supplied tag-set to an object that already exists in a bucket. A tag is a\n key-value pair. For more information, see Object Tagging.

\n

You can associate tags with an object by sending a PUT request against the tagging\n subresource that is associated with the object. You can retrieve tags by sending a GET\n request. For more information, see GetObjectTagging.

\n

For tagging-related restrictions related to characters and encodings, see Tag\n Restrictions. Note that Amazon S3 limits the maximum number of tags to 10 tags per\n object.

\n

To use this operation, you must have permission to perform the\n s3:PutObjectTagging action. By default, the bucket owner has this\n permission and can grant this permission to others.

\n

To put tags of any other version, use the versionId query parameter. You\n also need permission for the s3:PutObjectVersionTagging action.

\n

\n PutObjectTagging has the following special errors. For more Amazon S3 errors\n see, Error\n Responses.

\n \n

The following operations are related to PutObjectTagging:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the supplied tag-set to an object that already exists in a bucket. A tag is a\n key-value pair. For more information, see Object Tagging.

\n

You can associate tags with an object by sending a PUT request against the tagging\n subresource that is associated with the object. You can retrieve tags by sending a GET\n request. For more information, see GetObjectTagging.

\n

For tagging-related restrictions related to characters and encodings, see Tag\n Restrictions. Note that Amazon S3 limits the maximum number of tags to 10 tags per\n object.

\n

To use this operation, you must have permission to perform the\n s3:PutObjectTagging action. By default, the bucket owner has this\n permission and can grant this permission to others.

\n

To put tags of any other version, use the versionId query parameter. You\n also need permission for the s3:PutObjectVersionTagging action.

\n

\n PutObjectTagging has the following special errors. For more Amazon S3 errors\n see, Error\n Responses.

\n \n

The following operations are related to PutObjectTagging:

\n ", "smithy.api#examples": [ { "title": "To add tags to an existing object", @@ -32254,7 +32376,7 @@ "requestAlgorithmMember": "ChecksumAlgorithm", "requestChecksumRequired": true }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket.\n To use this operation, you must have the s3:PutBucketPublicAccessBlock\n permission. For more information about Amazon S3 permissions, see Specifying Permissions in a\n Policy.

\n \n

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or\n an object, it checks the PublicAccessBlock configuration for both the\n bucket (or the bucket that contains the object) and the bucket owner's account. If the\n PublicAccessBlock configurations are different between the bucket and\n the account, Amazon S3 uses the most restrictive combination of the bucket-level and\n account-level settings.

\n
\n

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

\n

The following operations are related to PutPublicAccessBlock:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket.\n To use this operation, you must have the s3:PutBucketPublicAccessBlock\n permission. For more information about Amazon S3 permissions, see Specifying Permissions in a\n Policy.

\n \n

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or\n an object, it checks the PublicAccessBlock configuration for both the\n bucket (or the bucket that contains the object) and the bucket owner's account. If the\n PublicAccessBlock configurations are different between the bucket and\n the account, Amazon S3 uses the most restrictive combination of the bucket-level and\n account-level settings.

\n
\n

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

\n

The following operations are related to PutPublicAccessBlock:

\n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?publicAccessBlock", @@ -32577,7 +32699,7 @@ "ExistingObjectReplication": { "target": "com.amazonaws.s3#ExistingObjectReplication", "traits": { - "smithy.api#documentation": "

Optional configuration to replicate existing source bucket objects.\n

\n \n

This parameter is no longer supported. To replicate existing objects, see Replicating existing objects with S3 Batch Replication in the Amazon S3 User Guide.

\n
" + "smithy.api#documentation": "

Optional configuration to replicate existing source bucket objects.

\n \n

This parameter is no longer supported. To replicate existing objects, see Replicating existing objects with S3 Batch Replication in the\n Amazon S3 User Guide.

\n
" } }, "Destination": { @@ -32779,7 +32901,7 @@ } }, "traits": { - "smithy.api#documentation": "

Confirms that the requester knows that they will be charged for the request. Bucket\n owners need not specify this parameter in their requests. If either the source or\n destination S3 bucket has Requester Pays enabled, the requester will pay for\n corresponding charges to copy the object. For information about downloading objects from\n Requester Pays buckets, see Downloading Objects in\n Requester Pays Buckets in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
" + "smithy.api#documentation": "

Confirms that the requester knows that they will be charged for the request. Bucket\n owners need not specify this parameter in their requests. If either the source or\n destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding\n charges to copy the object. For information about downloading objects from Requester Pays\n buckets, see Downloading Objects in\n Requester Pays Buckets in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
" } }, "com.amazonaws.s3#RequestPaymentConfiguration": { @@ -32861,7 +32983,7 @@ "aws.protocols#httpChecksum": { "requestAlgorithmMember": "ChecksumAlgorithm" }, - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Restores an archived copy of an object back into Amazon S3

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

This action performs the following types of requests:

\n \n

For more information about the S3 structure in the request body, see the\n following:

\n \n
\n
Permissions
\n
\n

To use this operation, you must have permissions to perform the\n s3:RestoreObject action. The bucket owner has this permission by\n default and can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the\n Amazon S3 User Guide.

\n
\n
Restoring objects
\n
\n

Objects that you archive to the S3 Glacier Flexible Retrieval Flexible Retrieval\n or S3 Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive or\n S3 Intelligent-Tiering Deep Archive tiers, are not accessible in real time. For objects in the\n S3 Glacier Flexible Retrieval Flexible Retrieval or S3 Glacier Deep Archive\n storage classes, you must first initiate a restore request, and then wait until a\n temporary copy of the object is available. If you want a permanent copy of the\n object, create a copy of it in the Amazon S3 Standard storage class in your S3 bucket.\n To access an archived object, you must restore the object for the duration (number\n of days) that you specify. For objects in the Archive Access or Deep Archive\n Access tiers of S3 Intelligent-Tiering, you must first initiate a restore request,\n and then wait until the object is moved into the Frequent Access tier.

\n

To restore a specific object version, you can provide a version ID. If you\n don't provide a version ID, Amazon S3 restores the current version.

\n

When restoring an archived object, you can specify one of the following data\n access tier options in the Tier element of the request body:

\n
    \n
  • \n

    \n Expedited - Expedited retrievals allow you to quickly access\n your data stored in the S3 Glacier Flexible Retrieval Flexible Retrieval\n storage class or S3 Intelligent-Tiering Archive tier when occasional urgent requests\n for restoring archives are required. For all but the largest archived\n objects (250 MB+), data accessed using Expedited retrievals is typically\n made available within 1–5 minutes. Provisioned capacity ensures that\n retrieval capacity for Expedited retrievals is available when you need it.\n Expedited retrievals and provisioned capacity are not available for objects\n stored in the S3 Glacier Deep Archive storage class or\n S3 Intelligent-Tiering Deep Archive tier.

    \n
  • \n
  • \n

    \n Standard - Standard retrievals allow you to access any of\n your archived objects within several hours. This is the default option for\n retrieval requests that do not specify the retrieval option. Standard\n retrievals typically finish within 3–5 hours for objects stored in the\n S3 Glacier Flexible Retrieval Flexible Retrieval storage class or\n S3 Intelligent-Tiering Archive tier. They typically finish within 12 hours for\n objects stored in the S3 Glacier Deep Archive storage class or\n S3 Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects stored\n in S3 Intelligent-Tiering.

    \n
  • \n
  • \n

    \n Bulk - Bulk retrievals free for objects stored in the\n S3 Glacier Flexible Retrieval and S3 Intelligent-Tiering storage classes,\n enabling you to retrieve large amounts, even petabytes, of data at no cost.\n Bulk retrievals typically finish within 5–12 hours for objects stored in the\n S3 Glacier Flexible Retrieval Flexible Retrieval storage class or\n S3 Intelligent-Tiering Archive tier. Bulk retrievals are also the lowest-cost\n retrieval option when restoring objects from\n S3 Glacier Deep Archive. They typically finish within 48 hours for\n objects stored in the S3 Glacier Deep Archive storage class or\n S3 Intelligent-Tiering Deep Archive tier.

    \n
  • \n
\n

For more information about archive retrieval options and provisioned capacity\n for Expedited data access, see Restoring Archived\n Objects in the Amazon S3 User Guide.

\n

You can use Amazon S3 restore speed upgrade to change the restore speed to a faster\n speed while it is in progress. For more information, see Upgrading the speed of an in-progress restore in the\n Amazon S3 User Guide.

\n

To get the status of object restoration, you can send a HEAD\n request. Operations return the x-amz-restore header, which provides\n information about the restoration status, in the response. You can use Amazon S3 event\n notifications to notify you when a restore is initiated or completed. For more\n information, see Configuring Amazon S3 Event\n Notifications in the Amazon S3 User Guide.

\n

After restoring an archived object, you can update the restoration period by\n reissuing the request with a new period. Amazon S3 updates the restoration period\n relative to the current time and charges only for the request-there are no\n data transfer charges. You cannot update the restoration period when Amazon S3 is\n actively processing your current restore request for the object.

\n

If your bucket has a lifecycle configuration with a rule that includes an\n expiration action, the object expiration overrides the life span that you specify\n in a restore request. For example, if you restore an object copy for 10 days, but\n the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days.\n For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle\n Management in Amazon S3 User Guide.

\n
\n
Responses
\n
\n

A successful action returns either the 200 OK or 202\n Accepted status code.

\n
    \n
  • \n

    If the object is not previously restored, then Amazon S3 returns 202\n Accepted in the response.

    \n
  • \n
  • \n

    If the object is previously restored, Amazon S3 returns 200 OK in\n the response.

    \n
  • \n
\n
    \n
  • \n

    Special errors:

    \n
      \n
    • \n

      \n Code: RestoreAlreadyInProgress\n

      \n
    • \n
    • \n

      \n Cause: Object restore is already in progress.\n

      \n
    • \n
    • \n

      \n HTTP Status Code: 409 Conflict\n

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client\n

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: GlacierExpeditedRetrievalNotAvailable\n

      \n
    • \n
    • \n

      \n Cause: expedited retrievals are currently not available.\n Try again later. (Returned if there is insufficient capacity to\n process the Expedited request. This error applies only to Expedited\n retrievals and not to S3 Standard or Bulk retrievals.)\n

      \n
    • \n
    • \n

      \n HTTP Status Code: 503\n

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: N/A\n

      \n
    • \n
    \n
  • \n
\n
\n
\n

The following operations are related to RestoreObject:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Restores an archived copy of an object back into Amazon S3

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

This action performs the following types of requests:

\n \n

For more information about the S3 structure in the request body, see the\n following:

\n \n
\n
Permissions
\n
\n

To use this operation, you must have permissions to perform the\n s3:RestoreObject action. The bucket owner has this permission by\n default and can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the\n Amazon S3 User Guide.

\n
\n
Restoring objects
\n
\n

Objects that you archive to the S3 Glacier Flexible Retrieval Flexible Retrieval\n or S3 Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive or\n S3 Intelligent-Tiering Deep Archive tiers, are not accessible in real time. For objects in the\n S3 Glacier Flexible Retrieval Flexible Retrieval or S3 Glacier Deep Archive\n storage classes, you must first initiate a restore request, and then wait until a\n temporary copy of the object is available. If you want a permanent copy of the\n object, create a copy of it in the Amazon S3 Standard storage class in your S3 bucket.\n To access an archived object, you must restore the object for the duration (number\n of days) that you specify. For objects in the Archive Access or Deep Archive\n Access tiers of S3 Intelligent-Tiering, you must first initiate a restore request,\n and then wait until the object is moved into the Frequent Access tier.

\n

To restore a specific object version, you can provide a version ID. If you\n don't provide a version ID, Amazon S3 restores the current version.

\n

When restoring an archived object, you can specify one of the following data\n access tier options in the Tier element of the request body:

\n
    \n
  • \n

    \n Expedited - Expedited retrievals allow you to quickly access\n your data stored in the S3 Glacier Flexible Retrieval Flexible Retrieval\n storage class or S3 Intelligent-Tiering Archive tier when occasional urgent requests\n for restoring archives are required. For all but the largest archived\n objects (250 MB+), data accessed using Expedited retrievals is typically\n made available within 1–5 minutes. Provisioned capacity ensures that\n retrieval capacity for Expedited retrievals is available when you need it.\n Expedited retrievals and provisioned capacity are not available for objects\n stored in the S3 Glacier Deep Archive storage class or\n S3 Intelligent-Tiering Deep Archive tier.

    \n
  • \n
  • \n

    \n Standard - Standard retrievals allow you to access any of\n your archived objects within several hours. This is the default option for\n retrieval requests that do not specify the retrieval option. Standard\n retrievals typically finish within 3–5 hours for objects stored in the\n S3 Glacier Flexible Retrieval Flexible Retrieval storage class or\n S3 Intelligent-Tiering Archive tier. They typically finish within 12 hours for\n objects stored in the S3 Glacier Deep Archive storage class or\n S3 Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects stored\n in S3 Intelligent-Tiering.

    \n
  • \n
  • \n

    \n Bulk - Bulk retrievals free for objects stored in the\n S3 Glacier Flexible Retrieval and S3 Intelligent-Tiering storage classes,\n enabling you to retrieve large amounts, even petabytes, of data at no cost.\n Bulk retrievals typically finish within 5–12 hours for objects stored in the\n S3 Glacier Flexible Retrieval Flexible Retrieval storage class or\n S3 Intelligent-Tiering Archive tier. Bulk retrievals are also the lowest-cost\n retrieval option when restoring objects from\n S3 Glacier Deep Archive. They typically finish within 48 hours for\n objects stored in the S3 Glacier Deep Archive storage class or\n S3 Intelligent-Tiering Deep Archive tier.

    \n
  • \n
\n

For more information about archive retrieval options and provisioned capacity\n for Expedited data access, see Restoring Archived\n Objects in the Amazon S3 User Guide.

\n

You can use Amazon S3 restore speed upgrade to change the restore speed to a faster\n speed while it is in progress. For more information, see Upgrading the speed of an in-progress restore in the\n Amazon S3 User Guide.

\n

To get the status of object restoration, you can send a HEAD\n request. Operations return the x-amz-restore header, which provides\n information about the restoration status, in the response. You can use Amazon S3 event\n notifications to notify you when a restore is initiated or completed. For more\n information, see Configuring Amazon S3 Event\n Notifications in the Amazon S3 User Guide.

\n

After restoring an archived object, you can update the restoration period by\n reissuing the request with a new period. Amazon S3 updates the restoration period\n relative to the current time and charges only for the request-there are no\n data transfer charges. You cannot update the restoration period when Amazon S3 is\n actively processing your current restore request for the object.

\n

If your bucket has a lifecycle configuration with a rule that includes an\n expiration action, the object expiration overrides the life span that you specify\n in a restore request. For example, if you restore an object copy for 10 days, but\n the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days.\n For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle\n Management in Amazon S3 User Guide.

\n
\n
Responses
\n
\n

A successful action returns either the 200 OK or 202\n Accepted status code.

\n
    \n
  • \n

    If the object is not previously restored, then Amazon S3 returns 202\n Accepted in the response.

    \n
  • \n
  • \n

    If the object is previously restored, Amazon S3 returns 200 OK in\n the response.

    \n
  • \n
\n
    \n
  • \n

    Special errors:

    \n
      \n
    • \n

      \n Code: RestoreAlreadyInProgress\n

      \n
    • \n
    • \n

      \n Cause: Object restore is already in progress.\n

      \n
    • \n
    • \n

      \n HTTP Status Code: 409 Conflict\n

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client\n

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: GlacierExpeditedRetrievalNotAvailable\n

      \n
    • \n
    • \n

      \n Cause: expedited retrievals are currently not available.\n Try again later. (Returned if there is insufficient capacity to\n process the Expedited request. This error applies only to Expedited\n retrievals and not to S3 Standard or Bulk retrievals.)\n

      \n
    • \n
    • \n

      \n HTTP Status Code: 503\n

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: N/A\n

      \n
    • \n
    \n
  • \n
\n
\n
\n

The following operations are related to RestoreObject:

\n ", "smithy.api#examples": [ { "title": "To restore an archived object", @@ -33049,7 +33171,7 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies the restoration status of an object. Objects in certain storage classes must\n be restored before they can be retrieved. For more information about these storage classes\n and how to work with archived objects, see Working with archived\n objects in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" + "smithy.api#documentation": "

Specifies the restoration status of an object. Objects in certain storage classes must\n be restored before they can be retrieved. For more information about these storage classes\n and how to work with archived objects, see Working with archived\n objects in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.\n Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

\n
" } }, "com.amazonaws.s3#Role": { @@ -33232,7 +33354,7 @@ "target": "com.amazonaws.s3#SelectObjectContentOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

This action filters the contents of an Amazon S3 object based on a simple structured query\n language (SQL) statement. In the request, along with the SQL expression, you must also\n specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses\n this format to parse object data into records, and returns only records that match the\n specified SQL expression. You must also specify the data serialization format for the\n response.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

For more information about Amazon S3 Select, see Selecting Content from\n Objects and SELECT\n Command in the Amazon S3 User Guide.

\n

\n
\n
Permissions
\n
\n

You must have the s3:GetObject permission for this operation. Amazon S3\n Select does not support anonymous access. For more information about permissions,\n see Specifying Permissions in\n a Policy in the Amazon S3 User Guide.

\n
\n
Object Data Formats
\n
\n

You can use Amazon S3 Select to query objects that have the following format\n properties:

\n
    \n
  • \n

    \n CSV, JSON, and Parquet - Objects must be in CSV,\n JSON, or Parquet format.

    \n
  • \n
  • \n

    \n UTF-8 - UTF-8 is the only encoding type Amazon S3 Select\n supports.

    \n
  • \n
  • \n

    \n GZIP or BZIP2 - CSV and JSON files can be compressed\n using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats that\n Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports columnar\n compression for Parquet using GZIP or Snappy. Amazon S3 Select does not support\n whole-object compression for Parquet objects.

    \n
  • \n
  • \n

    \n Server-side encryption - Amazon S3 Select supports\n querying objects that are protected with server-side encryption.

    \n

    For objects that are encrypted with customer-provided encryption keys\n (SSE-C), you must use HTTPS, and you must use the headers that are\n documented in the GetObject. For more\n information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys)\n in the Amazon S3 User Guide.

    \n

    For objects that are encrypted with Amazon S3 managed keys (SSE-S3) and\n Amazon Web Services KMS keys (SSE-KMS), server-side encryption is handled transparently,\n so you don't need to specify anything. For more information about\n server-side encryption, including SSE-S3 and SSE-KMS, see Protecting Data Using Server-Side Encryption in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
Working with the Response Body
\n
\n

Given the response size is unknown, Amazon S3 Select streams the response as a\n series of messages and includes a Transfer-Encoding header with\n chunked as its value in the response. For more information, see\n Appendix:\n SelectObjectContent\n Response.

\n
\n
GetObject Support
\n
\n

The SelectObjectContent action does not support the following\n GetObject functionality. For more information, see GetObject.

\n
    \n
  • \n

    \n Range: Although you can specify a scan range for an Amazon S3 Select\n request (see SelectObjectContentRequest - ScanRange in the request\n parameters), you cannot specify the range of bytes of an object to return.\n

    \n
  • \n
  • \n

    The GLACIER, DEEP_ARCHIVE, and\n REDUCED_REDUNDANCY storage classes, or the\n ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS access\n tiers of the INTELLIGENT_TIERING storage class: You cannot\n query objects in the GLACIER, DEEP_ARCHIVE, or\n REDUCED_REDUNDANCY storage classes, nor objects in the\n ARCHIVE_ACCESS or DEEP_ARCHIVE_ACCESS access\n tiers of the INTELLIGENT_TIERING storage class. For more\n information about storage classes, see Using Amazon S3\n storage classes in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
Special Errors
\n
\n

For a list of special errors for this operation, see List of SELECT Object Content Error Codes\n

\n
\n
\n

The following operations are related to SelectObjectContent:

\n ", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

This action filters the contents of an Amazon S3 object based on a simple structured query\n language (SQL) statement. In the request, along with the SQL expression, you must also\n specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses\n this format to parse object data into records, and returns only records that match the\n specified SQL expression. You must also specify the data serialization format for the\n response.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

For more information about Amazon S3 Select, see Selecting Content from\n Objects and SELECT\n Command in the Amazon S3 User Guide.

\n

\n
\n
Permissions
\n
\n

You must have the s3:GetObject permission for this operation. Amazon S3\n Select does not support anonymous access. For more information about permissions,\n see Specifying Permissions in\n a Policy in the Amazon S3 User Guide.

\n
\n
Object Data Formats
\n
\n

You can use Amazon S3 Select to query objects that have the following format\n properties:

\n
    \n
  • \n

    \n CSV, JSON, and Parquet - Objects must be in CSV,\n JSON, or Parquet format.

    \n
  • \n
  • \n

    \n UTF-8 - UTF-8 is the only encoding type Amazon S3 Select\n supports.

    \n
  • \n
  • \n

    \n GZIP or BZIP2 - CSV and JSON files can be compressed\n using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats that\n Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports columnar\n compression for Parquet using GZIP or Snappy. Amazon S3 Select does not support\n whole-object compression for Parquet objects.

    \n
  • \n
  • \n

    \n Server-side encryption - Amazon S3 Select supports\n querying objects that are protected with server-side encryption.

    \n

    For objects that are encrypted with customer-provided encryption keys\n (SSE-C), you must use HTTPS, and you must use the headers that are\n documented in the GetObject. For more\n information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys)\n in the Amazon S3 User Guide.

    \n

    For objects that are encrypted with Amazon S3 managed keys (SSE-S3) and\n Amazon Web Services KMS keys (SSE-KMS), server-side encryption is handled transparently,\n so you don't need to specify anything. For more information about\n server-side encryption, including SSE-S3 and SSE-KMS, see Protecting Data Using Server-Side Encryption in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
Working with the Response Body
\n
\n

Given the response size is unknown, Amazon S3 Select streams the response as a\n series of messages and includes a Transfer-Encoding header with\n chunked as its value in the response. For more information, see\n Appendix:\n SelectObjectContent\n Response.

\n
\n
GetObject Support
\n
\n

The SelectObjectContent action does not support the following\n GetObject functionality. For more information, see GetObject.

\n
    \n
  • \n

    \n Range: Although you can specify a scan range for an Amazon S3 Select\n request (see SelectObjectContentRequest - ScanRange in the request\n parameters), you cannot specify the range of bytes of an object to return.\n

    \n
  • \n
  • \n

    The GLACIER, DEEP_ARCHIVE, and\n REDUCED_REDUNDANCY storage classes, or the\n ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS access\n tiers of the INTELLIGENT_TIERING storage class: You cannot\n query objects in the GLACIER, DEEP_ARCHIVE, or\n REDUCED_REDUNDANCY storage classes, nor objects in the\n ARCHIVE_ACCESS or DEEP_ARCHIVE_ACCESS access\n tiers of the INTELLIGENT_TIERING storage class. For more\n information about storage classes, see Using Amazon S3\n storage classes in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
Special Errors
\n
\n

For a list of special errors for this operation, see List of SELECT Object Content Error Codes\n

\n
\n
\n

The following operations are related to SelectObjectContent:

\n ", "smithy.api#http": { "method": "POST", "uri": "/{Bucket}/{Key+}?select&select-type=2", @@ -33462,12 +33584,12 @@ "KMSMasterKeyID": { "target": "com.amazonaws.s3#SSEKMSKeyId", "traits": { - "smithy.api#documentation": "

Amazon Web Services Key Management Service (KMS) customer managed key ID to use for the default\n encryption.

\n \n \n \n

You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS\n key.

\n \n

If you are using encryption with cross-account or Amazon Web Services service operations, you must use\n a fully qualified KMS key ARN. For more information, see Using encryption for cross-account operations.

\n \n \n \n \n

Amazon S3 only supports symmetric encryption KMS keys. For more information, see Asymmetric keys in Amazon Web Services KMS in the Amazon Web Services Key Management Service\n Developer Guide.

\n
" + "smithy.api#documentation": "

Amazon Web Services Key Management Service (KMS) customer managed key ID to use for the default\n encryption.

\n \n \n \n

You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS\n key.

\n \n

If you are using encryption with cross-account or Amazon Web Services service operations, you must use\n a fully qualified KMS key ARN. For more information, see Using encryption for cross-account operations.

\n \n \n \n \n

Amazon S3 only supports symmetric encryption KMS keys. For more information, see Asymmetric keys in Amazon Web Services KMS in the Amazon Web Services Key Management Service\n Developer Guide.

\n
" } } }, "traits": { - "smithy.api#documentation": "

Describes the default server-side encryption to apply to new objects in the bucket. If a\n PUT Object request doesn't specify any server-side encryption, this default encryption will\n be applied. For more\n information, see PutBucketEncryption.

\n \n \n " + "smithy.api#documentation": "

Describes the default server-side encryption to apply to new objects in the bucket. If a\n PUT Object request doesn't specify any server-side encryption, this default encryption will\n be applied. For more information, see PutBucketEncryption.

\n \n \n " } }, "com.amazonaws.s3#ServerSideEncryptionConfiguration": { @@ -33499,12 +33621,12 @@ "BucketKeyEnabled": { "target": "com.amazonaws.s3#BucketKeyEnabled", "traits": { - "smithy.api#documentation": "

Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS\n (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the\n BucketKeyEnabled element to true causes Amazon S3 to use an S3\n Bucket Key.

\n \n \n " + "smithy.api#documentation": "

Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS\n (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the\n BucketKeyEnabled element to true causes Amazon S3 to use an S3\n Bucket Key.

\n \n \n " } } }, "traits": { - "smithy.api#documentation": "

Specifies the default server-side encryption configuration.

\n \n \n " + "smithy.api#documentation": "

Specifies the default server-side encryption configuration.

\n \n \n " } }, "com.amazonaws.s3#ServerSideEncryptionRules": { @@ -33525,7 +33647,7 @@ "AccessKeyId": { "target": "com.amazonaws.s3#AccessKeyIdValue", "traits": { - "smithy.api#documentation": "

A unique identifier that's associated with a secret access key. The access key ID and the secret access key are used together to sign programmatic Amazon Web Services requests cryptographically.

", + "smithy.api#documentation": "

A unique identifier that's associated with a secret access key. The access key ID and\n the secret access key are used together to sign programmatic Amazon Web Services requests\n cryptographically.

", "smithy.api#required": {}, "smithy.api#xmlName": "AccessKeyId" } @@ -33533,7 +33655,7 @@ "SecretAccessKey": { "target": "com.amazonaws.s3#SessionCredentialValue", "traits": { - "smithy.api#documentation": "

A key that's used with the access key ID to cryptographically sign programmatic Amazon Web Services requests. Signing a request identifies the sender and prevents the request from being altered.

", + "smithy.api#documentation": "

A key that's used with the access key ID to cryptographically sign programmatic Amazon Web Services\n requests. Signing a request identifies the sender and prevents the request from being\n altered.

", "smithy.api#required": {}, "smithy.api#xmlName": "SecretAccessKey" } @@ -33541,7 +33663,7 @@ "SessionToken": { "target": "com.amazonaws.s3#SessionCredentialValue", "traits": { - "smithy.api#documentation": "

A part of the temporary security credentials. The session token is used to validate the temporary security credentials. \n \n

", + "smithy.api#documentation": "

A part of the temporary security credentials. The session token is used to validate the\n temporary security credentials.\n \n

", "smithy.api#required": {}, "smithy.api#xmlName": "SessionToken" } @@ -33549,14 +33671,14 @@ "Expiration": { "target": "com.amazonaws.s3#SessionExpiration", "traits": { - "smithy.api#documentation": "

Temporary security credentials expire after a specified interval. After temporary credentials expire, any calls that you make with those credentials will fail. So you must generate a new set of temporary credentials. \n Temporary credentials cannot be extended or refreshed beyond the original specified interval.

", + "smithy.api#documentation": "

Temporary security credentials expire after a specified interval. After temporary\n credentials expire, any calls that you make with those credentials will fail. So you must\n generate a new set of temporary credentials. Temporary credentials cannot be extended or\n refreshed beyond the original specified interval.

", "smithy.api#required": {}, "smithy.api#xmlName": "Expiration" } } }, "traits": { - "smithy.api#documentation": "

The established temporary security credentials of the session.

\n \n

\n Directory buckets - These session credentials are only supported for the authentication and authorization of Zonal endpoint API operations on directory buckets.

\n
" + "smithy.api#documentation": "

The established temporary security credentials of the session.

\n \n

\n Directory buckets - These session\n credentials are only supported for the authentication and authorization of Zonal endpoint API operations\n on directory buckets.

\n
" } }, "com.amazonaws.s3#SessionExpiration": { @@ -33586,7 +33708,7 @@ "type": "structure", "members": {}, "traits": { - "smithy.api#documentation": "

To use simple format for S3 keys for log objects, set SimplePrefix to an empty object.

\n

\n [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]\n

", + "smithy.api#documentation": "

To use simple format for S3 keys for log objects, set SimplePrefix to an empty\n object.

\n

\n [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]\n

", "smithy.api#xmlName": "SimplePrefix" } }, @@ -33933,7 +34055,7 @@ "SimplePrefix": { "target": "com.amazonaws.s3#SimplePrefix", "traits": { - "smithy.api#documentation": "

To use the simple format for S3 keys for log objects. To specify SimplePrefix format, set SimplePrefix to {}.

", + "smithy.api#documentation": "

To use the simple format for S3 keys for log objects. To specify SimplePrefix format,\n set SimplePrefix to {}.

", "smithy.api#xmlName": "SimplePrefix" } }, @@ -33946,7 +34068,7 @@ } }, "traits": { - "smithy.api#documentation": "

Amazon S3 key format for log objects. Only one format, PartitionedPrefix or SimplePrefix, is allowed.

" + "smithy.api#documentation": "

Amazon S3 key format for log objects. Only one format, PartitionedPrefix or\n SimplePrefix, is allowed.

" } }, "com.amazonaws.s3#TargetPrefix": { @@ -34006,6 +34128,15 @@ "com.amazonaws.s3#Token": { "type": "string" }, + "com.amazonaws.s3#TooManyParts": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

\n You have attempted to add more parts than the maximum of 10000 \n that are allowed for this object. You can use the CopyObject operation \n to copy this object to another and then add more data to the newly copied object.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.s3#TopicArn": { "type": "string" }, @@ -34177,7 +34308,7 @@ "aws.protocols#httpChecksum": { "requestAlgorithmMember": "ChecksumAlgorithm" }, - "smithy.api#documentation": "

Uploads a part in a multipart upload.

\n \n

In this operation, you provide new data as a part of an object in your request. However, you have an option\n to specify your existing Amazon S3 object as a data source for the part you are uploading. To\n upload a part from an existing object, you use the UploadPartCopy operation.\n

\n
\n

You must initiate a multipart upload (see CreateMultipartUpload)\n before you can upload any part. In response to your initiate request, Amazon S3 returns an\n upload ID, a unique identifier that you must include in your upload part request.

\n

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely\n identifies a part and also defines its position within the object being created. If you\n upload a new part using the same part number that was used with a previous part, the\n previously uploaded part is overwritten.

\n

For information about maximum and minimum part sizes and other multipart upload\n specifications, see Multipart upload limits in the Amazon S3 User Guide.

\n \n

After you initiate multipart upload and upload\n one or more parts, you must either complete or abort multipart upload in order to stop\n getting charged for storage of the uploaded parts. Only after you either complete or abort\n multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts\n storage.

\n
\n

For more information on multipart uploads, go to Multipart Upload Overview in the\n Amazon S3 User Guide .

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To\n perform a multipart upload with encryption using an Key Management Service key, the\n requester must have permission to the kms:Decrypt and\n kms:GenerateDataKey actions on the key. The requester must\n also have permissions for the kms:GenerateDataKey action for\n the CreateMultipartUpload API. Then, the requester needs\n permissions for the kms:Decrypt action on the\n UploadPart and UploadPartCopy APIs.

    \n

    These permissions are required because Amazon S3 must decrypt and read data\n from the encrypted file parts before it completes the multipart upload. For\n more information about KMS permissions, see Protecting data\n using server-side encryption with KMS in the\n Amazon S3 User Guide. For information about the\n permissions required to use the multipart upload API, see Multipart upload and permissions and Multipart upload API and permissions in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with\n SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key.

    \n
  • \n
\n
\n
Data integrity
\n
\n

\n General purpose bucket - To ensure that data is not corrupted traversing the network, specify the\n Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error. If the upload request is signed with Signature Version 4, then Amazon Web Services S3 uses the\n x-amz-content-sha256 header as a checksum instead of\n Content-MD5. For more information see Authenticating\n Requests: Using the Authorization Header (Amazon Web Services Signature Version 4).

\n \n

\n Directory buckets - MD5 is not supported by directory buckets. You can use checksum algorithms to check object integrity.

\n
\n
\n
Encryption
\n
\n
    \n
  • \n

    \n General purpose bucket - Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it\n writes it to disks in its data centers and decrypts it when you access it. You have \n mutually exclusive options to protect data using server-side encryption in Amazon S3, depending\n on how you choose to manage the encryption keys. Specifically, the encryption key options\n are Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS), and Customer-Provided Keys\n (SSE-C). Amazon S3 encrypts data with server-side encryption using Amazon S3 managed keys (SSE-S3) by\n default. You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption\n with other key options. The option you use depends on whether you want to use KMS keys\n (SSE-KMS) or provide your own encryption key (SSE-C).

    \n

    Server-side encryption is supported by the S3 Multipart Upload operations. Unless you are\n using a customer-provided encryption key (SSE-C), you don't need to specify the encryption\n parameters in each UploadPart request. Instead, you only need to specify the server-side\n encryption parameters in the initial Initiate Multipart request. For more information, see\n CreateMultipartUpload.

    \n

    If you request server-side encryption using a customer-provided encryption key (SSE-C)\n in your initiate multipart upload request, you must provide identical encryption\n information in each part upload using the following request headers.

    \n
      \n
    • \n

      x-amz-server-side-encryption-customer-algorithm

      \n
    • \n
    • \n

      x-amz-server-side-encryption-customer-key

      \n
    • \n
    • \n

      x-amz-server-side-encryption-customer-key-MD5

      \n
    • \n
    \n

    \n For more information, see Using Server-Side\n Encryption in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms).

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    • \n

      SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to UploadPart:

\n ", + "smithy.api#documentation": "

Uploads a part in a multipart upload.

\n \n

In this operation, you provide new data as a part of an object in your request.\n However, you have an option to specify your existing Amazon S3 object as a data source for\n the part you are uploading. To upload a part from an existing object, you use the UploadPartCopy operation.

\n
\n

You must initiate a multipart upload (see CreateMultipartUpload)\n before you can upload any part. In response to your initiate request, Amazon S3 returns an\n upload ID, a unique identifier that you must include in your upload part request.

\n

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely\n identifies a part and also defines its position within the object being created. If you\n upload a new part using the same part number that was used with a previous part, the\n previously uploaded part is overwritten.

\n

For information about maximum and minimum part sizes and other multipart upload\n specifications, see Multipart upload limits in the Amazon S3 User Guide.

\n \n

After you initiate multipart upload and upload one or more parts, you must either\n complete or abort multipart upload in order to stop getting charged for storage of the\n uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up\n the parts storage and stops charging you for the parts storage.

\n
\n

For more information on multipart uploads, go to Multipart Upload Overview in the\n Amazon S3 User Guide .

\n \n

\n Directory buckets -\n For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To\n perform a multipart upload with encryption using an Key Management Service key, the\n requester must have permission to the kms:Decrypt and\n kms:GenerateDataKey actions on the key. The requester must\n also have permissions for the kms:GenerateDataKey action for\n the CreateMultipartUpload API. Then, the requester needs\n permissions for the kms:Decrypt action on the\n UploadPart and UploadPartCopy APIs.

    \n

    These permissions are required because Amazon S3 must decrypt and read data\n from the encrypted file parts before it completes the multipart upload. For\n more information about KMS permissions, see Protecting data\n using server-side encryption with KMS in the\n Amazon S3 User Guide. For information about the\n permissions required to use the multipart upload API, see Multipart upload and permissions and Multipart upload API and permissions in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions\n in IAM identity-based policies and KMS key policies for the KMS\n key.

    \n
  • \n
\n
\n
Data integrity
\n
\n

\n General purpose bucket - To ensure that data\n is not corrupted traversing the network, specify the Content-MD5\n header in the upload part request. Amazon S3 checks the part data against the provided\n MD5 value. If they do not match, Amazon S3 returns an error. If the upload request is\n signed with Signature Version 4, then Amazon Web Services S3 uses the\n x-amz-content-sha256 header as a checksum instead of\n Content-MD5. For more information see Authenticating Requests: Using the Authorization Header (Amazon Web Services Signature\n Version 4).

\n \n

\n Directory buckets - MD5 is not supported by directory buckets. You can use checksum algorithms to check object integrity.

\n
\n
\n
Encryption
\n
\n
    \n
  • \n

    \n General purpose bucket - Server-side\n encryption is for data encryption at rest. Amazon S3 encrypts your data as it\n writes it to disks in its data centers and decrypts it when you access it.\n You have mutually exclusive options to protect data using server-side\n encryption in Amazon S3, depending on how you choose to manage the encryption\n keys. Specifically, the encryption key options are Amazon S3 managed keys\n (SSE-S3), Amazon Web Services KMS keys (SSE-KMS), and Customer-Provided Keys (SSE-C).\n Amazon S3 encrypts data with server-side encryption using Amazon S3 managed keys\n (SSE-S3) by default. You can optionally tell Amazon S3 to encrypt data at rest\n using server-side encryption with other key options. The option you use\n depends on whether you want to use KMS keys (SSE-KMS) or provide your own\n encryption key (SSE-C).

    \n

    Server-side encryption is supported by the S3 Multipart Upload\n operations. Unless you are using a customer-provided encryption key (SSE-C),\n you don't need to specify the encryption parameters in each UploadPart\n request. Instead, you only need to specify the server-side encryption\n parameters in the initial Initiate Multipart request. For more information,\n see CreateMultipartUpload.

    \n

    If you request server-side encryption using a customer-provided\n encryption key (SSE-C) in your initiate multipart upload request, you must\n provide identical encryption information in each part upload using the\n following request headers.

    \n
      \n
    • \n

      x-amz-server-side-encryption-customer-algorithm

      \n
    • \n
    • \n

      x-amz-server-side-encryption-customer-key

      \n
    • \n
    • \n

      x-amz-server-side-encryption-customer-key-MD5

      \n
    • \n
    \n

    For more information, see Using\n Server-Side Encryption in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory buckets -\n For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms).

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The\n upload ID might be invalid, or the multipart upload might have been\n aborted or completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    • \n

      SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to UploadPart:

\n ", "smithy.api#examples": [ { "title": "To upload a part", @@ -34210,7 +34341,7 @@ "target": "com.amazonaws.s3#UploadPartCopyOutput" }, "traits": { - "smithy.api#documentation": "

Uploads a part by copying data from an existing object as data source. To specify the\n data source, you add the request header x-amz-copy-source in your request. To specify \n a byte range, you add the request header x-amz-copy-source-range in your\n request.

\n

For information about maximum and minimum part sizes and other multipart upload\n specifications, see Multipart upload limits in the Amazon S3 User Guide.

\n \n

Instead of copying data from an existing object as part data, you might use the UploadPart\n action to upload new data as a part of an object in your request.

\n
\n

You must initiate a multipart upload before you can upload any part. In response to your\n initiate request, Amazon S3 returns the upload ID, a unique identifier that you must include in\n your upload part request.

\n

For conceptual information about multipart uploads, see Uploading\n Objects Using Multipart Upload in the\n Amazon S3 User Guide. For information about copying objects using a single atomic action vs. a multipart\n upload, see Operations on Objects in\n the Amazon S3 User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Authentication and authorization
\n
\n

All UploadPartCopy requests must be authenticated and signed by using IAM credentials (access key ID and secret access key for the IAM identities). All headers with the x-amz- prefix, including\n x-amz-copy-source, must be signed. For more information, see REST Authentication.

\n

\n Directory buckets - You must use IAM credentials to authenticate and authorize your access to the UploadPartCopy API operation, instead of using the \n temporary security credentials through the CreateSession API operation.

\n

Amazon Web Services CLI or SDKs handles authentication and authorization on your behalf.

\n
\n
Permissions
\n
\n

You must have READ access to the source object and WRITE\n access to the destination bucket.

\n
    \n
  • \n

    \n General purpose bucket permissions - You\n must have the permissions in a policy based on the bucket types of your\n source bucket and destination bucket in an UploadPartCopy\n operation.

    \n
      \n
    • \n

      If the source object is in a general purpose bucket, you must have the\n \n s3:GetObject\n \n permission to read the source object that is being copied.

      \n
    • \n
    • \n

      If the destination bucket is a general purpose bucket, you must have the\n \n s3:PutObject\n \n permission to write the object copy to the destination bucket.

      \n
    • \n
    • \n

      To perform a multipart upload with encryption using an Key Management Service\n key, the requester must have permission to the\n kms:Decrypt and kms:GenerateDataKey\n actions on the key. The requester must also have permissions for the\n kms:GenerateDataKey action for the\n CreateMultipartUpload API. Then, the requester needs\n permissions for the kms:Decrypt action on the\n UploadPart and UploadPartCopy APIs. These\n permissions are required because Amazon S3 must decrypt and read data from\n the encrypted file parts before it completes the multipart upload. For\n more information about KMS permissions, see Protecting\n data using server-side encryption with KMS in the\n Amazon S3 User Guide. For information about the\n permissions required to use the multipart upload API, see Multipart upload\n and permissions and Multipart upload API and permissions in the\n Amazon S3 User Guide.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions -\n You must have permissions in a bucket policy or an IAM identity-based policy based on the source and destination\n bucket types in an UploadPartCopy operation.

    \n
      \n
    • \n

      If the source object that you want to copy is in a\n directory bucket, you must have the \n s3express:CreateSession\n permission in\n the Action element of a policy to read the object. By\n default, the session is in the ReadWrite mode. If you\n want to restrict the access, you can explicitly set the\n s3express:SessionMode condition key to\n ReadOnly on the copy source bucket.

      \n
    • \n
    • \n

      If the copy destination is a directory bucket, you must have the \n \n s3express:CreateSession\n permission in the\n Action element of a policy to write the object\n to the destination. The s3express:SessionMode condition\n key cannot be set to ReadOnly on the copy destination.

      \n
    • \n
    \n

    If the object is encrypted with\n SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key.

    \n

    For example policies, see Example bucket policies for S3 Express One Zone and Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
Encryption
\n
\n
    \n
  • \n

    \n General purpose buckets - \n \n For information about using server-side encryption with customer-provided\n encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.\n

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

    \n \n

    For directory buckets, when you perform a CreateMultipartUpload operation and an UploadPartCopy operation, \n the request headers you provide in the CreateMultipartUpload request must match the default encryption configuration of the destination bucket.

    \n
    \n

    S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through UploadPartCopy. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The\n upload ID might be invalid, or the multipart upload might have been\n aborted or completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidRequest\n

    \n
      \n
    • \n

      Description: The specified copy source is not supported as a\n byte-range copy source.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to UploadPartCopy:

\n ", + "smithy.api#documentation": "

Uploads a part by copying data from an existing object as data source. To specify the\n data source, you add the request header x-amz-copy-source in your request. To\n specify a byte range, you add the request header x-amz-copy-source-range in\n your request.

\n

For information about maximum and minimum part sizes and other multipart upload\n specifications, see Multipart upload limits in the Amazon S3 User Guide.

\n \n

Instead of copying data from an existing object as part data, you might use the\n UploadPart action to upload new data as a part of an object in your\n request.

\n
\n

You must initiate a multipart upload before you can upload any part. In response to your\n initiate request, Amazon S3 returns the upload ID, a unique identifier that you must include in\n your upload part request.

\n

For conceptual information about multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3 User Guide. For information about\n copying objects using a single atomic action vs. a multipart upload, see Operations on\n Objects in the Amazon S3 User Guide.

\n \n

\n Directory buckets -\n For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Authentication and authorization
\n
\n

All UploadPartCopy requests must be authenticated and signed by\n using IAM credentials (access key ID and secret access key for the IAM\n identities). All headers with the x-amz- prefix, including\n x-amz-copy-source, must be signed. For more information, see\n REST Authentication.

\n

\n Directory buckets - You must use IAM\n credentials to authenticate and authorize your access to the\n UploadPartCopy API operation, instead of using the temporary\n security credentials through the CreateSession API operation.

\n

Amazon Web Services CLI or SDKs handles authentication and authorization on your\n behalf.

\n
\n
Permissions
\n
\n

You must have READ access to the source object and\n WRITE access to the destination bucket.

\n
    \n
  • \n

    \n General purpose bucket permissions - You\n must have the permissions in a policy based on the bucket types of your\n source bucket and destination bucket in an UploadPartCopy\n operation.

    \n
      \n
    • \n

      If the source object is in a general purpose bucket, you must have the\n \n s3:GetObject\n \n permission to read the source object that is being copied.

      \n
    • \n
    • \n

      If the destination bucket is a general purpose bucket, you must have the\n \n s3:PutObject\n \n permission to write the object copy to the destination bucket.

      \n
    • \n
    • \n

      To perform a multipart upload with encryption using an Key Management Service\n key, the requester must have permission to the\n kms:Decrypt and kms:GenerateDataKey\n actions on the key. The requester must also have permissions for the\n kms:GenerateDataKey action for the\n CreateMultipartUpload API. Then, the requester needs\n permissions for the kms:Decrypt action on the\n UploadPart and UploadPartCopy APIs. These\n permissions are required because Amazon S3 must decrypt and read data from\n the encrypted file parts before it completes the multipart upload. For\n more information about KMS permissions, see Protecting\n data using server-side encryption with KMS in the\n Amazon S3 User Guide. For information about the\n permissions required to use the multipart upload API, see Multipart upload\n and permissions and Multipart upload API and permissions in the\n Amazon S3 User Guide.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions -\n You must have permissions in a bucket policy or an IAM identity-based policy based on the\n source and destination bucket types in an UploadPartCopy\n operation.

    \n
      \n
    • \n

      If the source object that you want to copy is in a\n directory bucket, you must have the \n s3express:CreateSession\n permission in\n the Action element of a policy to read the object. By\n default, the session is in the ReadWrite mode. If you\n want to restrict the access, you can explicitly set the\n s3express:SessionMode condition key to\n ReadOnly on the copy source bucket.

      \n
    • \n
    • \n

      If the copy destination is a directory bucket, you must have the\n \n s3express:CreateSession\n permission in the\n Action element of a policy to write the object to the\n destination. The s3express:SessionMode condition key\n cannot be set to ReadOnly on the copy destination.\n

      \n
    • \n
    \n

    If the object is encrypted with SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions\n in IAM identity-based policies and KMS key policies for the KMS\n key.

    \n

    For example policies, see Example bucket policies for S3 Express One Zone and Amazon Web Services Identity and Access Management (IAM) identity-based policies for\n S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
Encryption
\n
\n
    \n
  • \n

    \n General purpose buckets -\n For information about using\n server-side encryption with customer-provided encryption keys with the\n UploadPartCopy operation, see CopyObject and\n UploadPart.

    \n
  • \n
  • \n

    \n Directory buckets -\n For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

    \n \n

    For directory buckets, when you perform a\n CreateMultipartUpload operation and an\n UploadPartCopy operation, the request headers you provide\n in the CreateMultipartUpload request must match the default\n encryption configuration of the destination bucket.

    \n
    \n

    S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through UploadPartCopy. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The\n upload ID might be invalid, or the multipart upload might have been\n aborted or completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidRequest\n

    \n
      \n
    • \n

      Description: The specified copy source is not supported as a\n byte-range copy source.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to UploadPartCopy:

\n ", "smithy.api#examples": [ { "title": "To upload a part by copying byte range from an existing object as data source", @@ -34280,7 +34411,7 @@ "ServerSideEncryption": { "target": "com.amazonaws.s3#ServerSideEncryption", "traits": { - "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example,\n AES256, aws:kms).

", + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for\n example, AES256, aws:kms).

", "smithy.api#httpHeader": "x-amz-server-side-encryption" } }, @@ -34294,7 +34425,7 @@ "SSECustomerKeyMD5": { "target": "com.amazonaws.s3#SSECustomerKeyMD5", "traits": { - "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification of\n the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification\n of the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" } }, @@ -34329,7 +34460,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The bucket name.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The bucket name.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -34340,7 +34471,7 @@ "CopySource": { "target": "com.amazonaws.s3#CopySource", "traits": { - "smithy.api#documentation": "

Specifies the source object for the copy operation. You specify the value in one of two\n formats, depending on whether you want to access the source object through an access point:

\n \n

If your bucket has versioning enabled, you could have multiple versions of the\n same object. By default, x-amz-copy-source identifies the current\n version of the source object to copy. \n To copy a specific version of the source object to copy, append ?versionId=\n to the x-amz-copy-source request header (for example, \n x-amz-copy-source: /awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893).\n

\n

If the current version is a delete marker and you\n don't specify a versionId in the x-amz-copy-source request header, Amazon S3 returns a\n 404 Not Found error, because the object does not exist. If you specify versionId in the\n x-amz-copy-source and the versionId is a delete marker, Amazon S3\n returns an HTTP 400 Bad Request error, because you are not allowed to specify a delete marker\n as a version for the x-amz-copy-source.

\n \n

\n Directory buckets - S3 Versioning isn't enabled and supported for directory buckets.

\n
", + "smithy.api#documentation": "

Specifies the source object for the copy operation. You specify the value in one of two\n formats, depending on whether you want to access the source object through an access point:

\n \n

If your bucket has versioning enabled, you could have multiple versions of the same\n object. By default, x-amz-copy-source identifies the current version of the\n source object to copy. To copy a specific version of the source object to copy, append\n ?versionId= to the x-amz-copy-source request\n header (for example, x-amz-copy-source:\n /awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893).

\n

If the current version is a delete marker and you don't specify a versionId in the\n x-amz-copy-source request header, Amazon S3 returns a 404 Not Found\n error, because the object does not exist. If you specify versionId in the\n x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns an\n HTTP 400 Bad Request error, because you are not allowed to specify a delete\n marker as a version for the x-amz-copy-source.

\n \n

\n Directory buckets -\n S3 Versioning isn't enabled and supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-copy-source", "smithy.api#required": {} } @@ -34348,28 +34479,28 @@ "CopySourceIfMatch": { "target": "com.amazonaws.s3#CopySourceIfMatch", "traits": { - "smithy.api#documentation": "

Copies the object if its entity tag (ETag) matches the specified tag.

\n

If both of the\n x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the\n request as follows:

\n

\n x-amz-copy-source-if-match condition evaluates to true,\n and;

\n

\n x-amz-copy-source-if-unmodified-since condition evaluates to\n false;

\n

Amazon S3 returns 200 OK and copies the data.\n

", + "smithy.api#documentation": "

Copies the object if its entity tag (ETag) matches the specified tag.

\n

If both of the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the request as\n follows:

\n

\n x-amz-copy-source-if-match condition evaluates to true,\n and;

\n

\n x-amz-copy-source-if-unmodified-since condition evaluates to\n false;

\n

Amazon S3 returns 200 OK and copies the data.\n

", "smithy.api#httpHeader": "x-amz-copy-source-if-match" } }, "CopySourceIfModifiedSince": { "target": "com.amazonaws.s3#CopySourceIfModifiedSince", "traits": { - "smithy.api#documentation": "

Copies the object if it has been modified since the specified time.

\n

If both of the\n x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the\n request as follows:

\n

\n x-amz-copy-source-if-none-match condition evaluates to\n false, and;

\n

\n x-amz-copy-source-if-modified-since condition evaluates to\n true;

\n

Amazon S3 returns 412 Precondition Failed response code.\n

", + "smithy.api#documentation": "

Copies the object if it has been modified since the specified time.

\n

If both of the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the request as\n follows:

\n

\n x-amz-copy-source-if-none-match condition evaluates to false,\n and;

\n

\n x-amz-copy-source-if-modified-since condition evaluates to\n true;

\n

Amazon S3 returns 412 Precondition Failed response code.\n

", "smithy.api#httpHeader": "x-amz-copy-source-if-modified-since" } }, "CopySourceIfNoneMatch": { "target": "com.amazonaws.s3#CopySourceIfNoneMatch", "traits": { - "smithy.api#documentation": "

Copies the object if its entity tag (ETag) is different than the specified ETag.

\n

If both of the\n x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the\n request as follows:

\n

\n x-amz-copy-source-if-none-match condition evaluates to\n false, and;

\n

\n x-amz-copy-source-if-modified-since condition evaluates to\n true;

\n

Amazon S3 returns 412 Precondition Failed response code.\n

", + "smithy.api#documentation": "

Copies the object if its entity tag (ETag) is different than the specified ETag.

\n

If both of the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the request as\n follows:

\n

\n x-amz-copy-source-if-none-match condition evaluates to false,\n and;

\n

\n x-amz-copy-source-if-modified-since condition evaluates to\n true;

\n

Amazon S3 returns 412 Precondition Failed response code.\n

", "smithy.api#httpHeader": "x-amz-copy-source-if-none-match" } }, "CopySourceIfUnmodifiedSince": { "target": "com.amazonaws.s3#CopySourceIfUnmodifiedSince", "traits": { - "smithy.api#documentation": "

Copies the object if it hasn't been modified since the specified time.

\n

If both of the\n x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the\n request as follows:

\n

\n x-amz-copy-source-if-match condition evaluates to true,\n and;

\n

\n x-amz-copy-source-if-unmodified-since condition evaluates to\n false;

\n

Amazon S3 returns 200 OK and copies the data.\n

", + "smithy.api#documentation": "

Copies the object if it hasn't been modified since the specified time.

\n

If both of the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the request as\n follows:

\n

\n x-amz-copy-source-if-match condition evaluates to true,\n and;

\n

\n x-amz-copy-source-if-unmodified-since condition evaluates to\n false;

\n

Amazon S3 returns 200 OK and copies the data.\n

", "smithy.api#httpHeader": "x-amz-copy-source-if-unmodified-since" } }, @@ -34407,7 +34538,7 @@ "SSECustomerAlgorithm": { "target": "com.amazonaws.s3#SSECustomerAlgorithm", "traits": { - "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example,\n AES256).

\n \n

This functionality is not supported when the destination bucket is a directory bucket.

\n
", + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

\n \n

This functionality is not supported when the destination bucket is a directory bucket.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" } }, @@ -34428,7 +34559,7 @@ "CopySourceSSECustomerAlgorithm": { "target": "com.amazonaws.s3#CopySourceSSECustomerAlgorithm", "traits": { - "smithy.api#documentation": "

Specifies the algorithm to use when decrypting the source object (for example,\n AES256).

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#documentation": "

Specifies the algorithm to use when decrypting the source object (for example,\n AES256).

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", "smithy.api#httpHeader": "x-amz-copy-source-server-side-encryption-customer-algorithm" } }, @@ -34477,7 +34608,7 @@ "ServerSideEncryption": { "target": "com.amazonaws.s3#ServerSideEncryption", "traits": { - "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example,\n AES256, aws:kms).

", + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for\n example, AES256, aws:kms).

", "smithy.api#httpHeader": "x-amz-server-side-encryption" } }, @@ -34526,7 +34657,7 @@ "SSECustomerKeyMD5": { "target": "com.amazonaws.s3#SSECustomerKeyMD5", "traits": { - "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification of\n the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the\n response will include this header to provide the round-trip message integrity verification\n of the customer-provided encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" } }, @@ -34569,7 +34700,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

The name of the bucket to which the multipart upload was initiated.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#documentation": "

The name of the bucket to which the multipart upload was initiated.

\n

\n Directory buckets -\n When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format \n bucket_base_name--az-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Access points and Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {}, "smithy.rules#contextParam": { @@ -34656,7 +34787,7 @@ "SSECustomerAlgorithm": { "target": "com.amazonaws.s3#SSECustomerAlgorithm", "traits": { - "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example,\n AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" } }, @@ -34779,7 +34910,7 @@ "smithy.api#auth": [ "aws.auth#sigv4" ], - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Passes transformed objects to a GetObject operation when using Object Lambda access points. For\n information about Object Lambda access points, see Transforming objects with\n Object Lambda access points in the Amazon S3 User Guide.

\n

This operation supports metadata that can be returned by GetObject, in addition to\n RequestRoute, RequestToken, StatusCode,\n ErrorCode, and ErrorMessage. The GetObject\n response metadata is supported so that the WriteGetObjectResponse caller,\n typically an Lambda function, can provide the same metadata when it internally invokes\n GetObject. When WriteGetObjectResponse is called by a\n customer-owned Lambda function, the metadata returned to the end user\n GetObject call might differ from what Amazon S3 would normally return.

\n

You can include any number of metadata headers. When including a metadata header, it\n should be prefaced with x-amz-meta. For example,\n x-amz-meta-my-custom-header: MyCustomValue. The primary use case for this\n is to forward GetObject metadata.

\n

Amazon Web Services provides some prebuilt Lambda functions that you can use with S3 Object Lambda to\n detect and redact personally identifiable information (PII) and decompress S3 objects.\n These Lambda functions are available in the Amazon Web Services Serverless Application Repository, and\n can be selected through the Amazon Web Services Management Console when you create your Object Lambda access point.

\n

Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, a\n natural language processing (NLP) service using machine learning to find insights and\n relationships in text. It automatically detects personally identifiable information (PII)\n such as names, addresses, dates, credit card numbers, and social security numbers from\n documents in your Amazon S3 bucket.

\n

Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a natural\n language processing (NLP) service using machine learning to find insights and relationships\n in text. It automatically redacts personally identifiable information (PII) such as names,\n addresses, dates, credit card numbers, and social security numbers from documents in your\n Amazon S3 bucket.

\n

Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, is\n equipped to decompress objects stored in S3 in one of six compressed file formats including\n bzip2, gzip, snappy, zlib, zstandard and ZIP.

\n

For information on how to view and use these functions, see Using Amazon Web Services built Lambda\n functions in the Amazon S3 User Guide.

", + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Passes transformed objects to a GetObject operation when using Object Lambda access points. For\n information about Object Lambda access points, see Transforming objects with\n Object Lambda access points in the Amazon S3 User Guide.

\n

This operation supports metadata that can be returned by GetObject, in addition to\n RequestRoute, RequestToken, StatusCode,\n ErrorCode, and ErrorMessage. The GetObject\n response metadata is supported so that the WriteGetObjectResponse caller,\n typically an Lambda function, can provide the same metadata when it internally invokes\n GetObject. When WriteGetObjectResponse is called by a\n customer-owned Lambda function, the metadata returned to the end user\n GetObject call might differ from what Amazon S3 would normally return.

\n

You can include any number of metadata headers. When including a metadata header, it\n should be prefaced with x-amz-meta. For example,\n x-amz-meta-my-custom-header: MyCustomValue. The primary use case for this\n is to forward GetObject metadata.

\n

Amazon Web Services provides some prebuilt Lambda functions that you can use with S3 Object Lambda to\n detect and redact personally identifiable information (PII) and decompress S3 objects.\n These Lambda functions are available in the Amazon Web Services Serverless Application Repository, and\n can be selected through the Amazon Web Services Management Console when you create your Object Lambda access point.

\n

Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, a\n natural language processing (NLP) service using machine learning to find insights and\n relationships in text. It automatically detects personally identifiable information (PII)\n such as names, addresses, dates, credit card numbers, and social security numbers from\n documents in your Amazon S3 bucket.

\n

Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a natural\n language processing (NLP) service using machine learning to find insights and relationships\n in text. It automatically redacts personally identifiable information (PII) such as names,\n addresses, dates, credit card numbers, and social security numbers from documents in your\n Amazon S3 bucket.

\n

Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, is\n equipped to decompress objects stored in S3 in one of six compressed file formats including\n bzip2, gzip, snappy, zlib, zstandard and ZIP.

\n

For information on how to view and use these functions, see Using Amazon Web Services built Lambda\n functions in the Amazon S3 User Guide.

", "smithy.api#endpoint": { "hostPrefix": "{RequestRoute}." }, @@ -35042,7 +35173,7 @@ "SSEKMSKeyId": { "target": "com.amazonaws.s3#SSEKMSKeyId", "traits": { - "smithy.api#documentation": "

If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric\n encryption customer managed key that was used for stored in Amazon S3 object.

", + "smithy.api#documentation": "

If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the Amazon Web Services Key\n Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for stored in\n Amazon S3 object.

", "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id" } }, @@ -35086,6 +35217,9 @@ "smithy.api#input": {} } }, + "com.amazonaws.s3#WriteOffsetBytes": { + "type": "long" + }, "com.amazonaws.s3#Years": { "type": "integer" } diff --git a/codegen/sdk-codegen/aws-models/ssm-quicksetup.json b/codegen/sdk-codegen/aws-models/ssm-quicksetup.json index be928d72056..82995476bad 100644 --- a/codegen/sdk-codegen/aws-models/ssm-quicksetup.json +++ b/codegen/sdk-codegen/aws-models/ssm-quicksetup.json @@ -80,7 +80,7 @@ "Parameters": { "target": "com.amazonaws.ssmquicksetup#ConfigurationParametersMap", "traits": { - "smithy.api#documentation": "

The parameters for the configuration definition type. Parameters for configuration\n definitions vary based the configuration type. The following tables outline the\n parameters for each configuration type.

\n
\n
OpsCenter (Type: Amazon Web ServicesQuickSetupType-SSMOpsCenter)
\n
\n
    \n
  • \n

    \n DelegatedAccountId\n

    \n
      \n
    • \n

      Description: (Required) The ID of the\n delegated administrator account.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Resource Scheduler (Type: Amazon Web ServicesQuickSetupType-Scheduler)
\n
\n
    \n
  • \n

    \n TargetTagKey\n

    \n
      \n
    • \n

      Description: (Required) The tag key assigned\n to the instances you want to target.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagValue\n

    \n
      \n
    • \n

      Description: (Required) The value of the tag\n key assigned to the instances you want to\n target.

      \n
    • \n
    \n
  • \n
  • \n

    \n ICalendarString\n

    \n
      \n
    • \n

      Description: (Required) An iCalendar\n formatted string containing the schedule you want\n Change Manager to use.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Default Host Management Configuration (Type: Amazon Web ServicesQuickSetupType-DHMC)
\n
\n
    \n
  • \n

    \n UpdateSSMAgent\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the SSM Agent is updated on the\n target instances every 2 weeks. The default value\n is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Resource Explorer (Type: Amazon Web ServicesQuickSetupType-ResourceExplorer)
\n
\n
    \n
  • \n

    \n SelectedAggregatorRegion\n

    \n
      \n
    • \n

      Description: (Required) The Amazon Web Services Region where you want to create the\n aggregator index.

      \n
    • \n
    \n
  • \n
  • \n

    \n ReplaceExistingAggregator\n

    \n
      \n
    • \n

      Description: (Required) A boolean value that\n determines whether to demote an existing\n aggregator if it is in a Region that differs from\n the value you specify for the\n SelectedAggregatorRegion.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Change Manager (Type: Amazon Web ServicesQuickSetupType-SSMChangeMgr)
\n
\n
    \n
  • \n

    \n DelegatedAccountId\n

    \n
      \n
    • \n

      Description: (Required) The ID of the\n delegated administrator account.

      \n
    • \n
    \n
  • \n
  • \n

    \n JobFunction\n

    \n
      \n
    • \n

      Description: (Required) The name for the\n Change Manager job function.

      \n
    • \n
    \n
  • \n
  • \n

    \n PermissionType\n

    \n
      \n
    • \n

      Description: (Optional) Specifies whether\n you want to use default administrator permissions\n for the job function role, or provide a custom\n IAM policy. The valid values are\n CustomPermissions and\n AdminPermissions. The default value\n for the parameter is\n CustomerPermissions.

      \n
    • \n
    \n
  • \n
  • \n

    \n CustomPermissions\n

    \n
      \n
    • \n

      Description: (Optional) A JSON string\n containing the IAM policy you want\n your job function to use. You must provide a value\n for this parameter if you specify\n CustomPermissions for the\n PermissionType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
DevOps Guru (Type: Amazon Web ServicesQuickSetupType-DevOpsGuru)
\n
\n
    \n
  • \n

    \n AnalyseAllResources\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether DevOps Guru analyzes all\n CloudFormation stacks in the account. The\n default value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n EnableSnsNotifications\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether DevOps Guru sends\n notifications when an insight is created. The\n default value is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n EnableSsmOpsItems\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether DevOps Guru creates an\n OpsCenter OpsItem when an insight is created. The\n default value is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n EnableDriftRemediation\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether a drift remediation schedule is\n used. The default value is\n \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n RemediationSchedule\n

    \n
      \n
    • \n

      Description: (Optional) A rate expression\n that defines the schedule for drift remediation.\n The valid values are rate(30 days),\n rate(14 days), rate(1\n days), and none. The default\n value is \"none\".

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Conformance Packs (Type: Amazon Web ServicesQuickSetupType-CFGCPacks)
\n
\n
    \n
  • \n

    \n DelegatedAccountId\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n delegated administrator account. This parameter is\n required for Organization deployments.

      \n
    • \n
    \n
  • \n
  • \n

    \n RemediationSchedule\n

    \n
      \n
    • \n

      Description: (Optional) A rate expression\n that defines the schedule for drift remediation.\n The valid values are rate(30 days),\n rate(14 days), rate(2\n days), and none. The default\n value is \"none\".

      \n
    • \n
    \n
  • \n
  • \n

    \n CPackNames\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Config conformance\n packs.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the root\n of your Organization. This configuration type\n doesn't currently support choosing specific OUs.\n The configuration will be deployed to all the OUs\n in the Organization.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Config Recording (Type: Amazon Web ServicesQuickSetupType-CFGRecording)
\n
\n
    \n
  • \n

    \n RecordAllResources\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether all supported resources are\n recorded. The default value is\n \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n ResourceTypesToRecord\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of resource types you want to record.

      \n
    • \n
    \n
  • \n
  • \n

    \n RecordGlobalResourceTypes\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether global resources are recorded\n with all resource configurations. The default\n value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n GlobalResourceTypesRegion\n

    \n
      \n
    • \n

      Description: (Optional) Determines the\n Amazon Web Services Region where global resources\n are recorded.

      \n
    • \n
    \n
  • \n
  • \n

    \n UseCustomBucket\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether a custom Amazon S3\n bucket is used for delivery. The default value is\n \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n DeliveryBucketName\n

    \n
      \n
    • \n

      Description: (Optional) The name of the\n Amazon S3 bucket you want Config to deliver configuration snapshots and\n configuration history files to.

      \n
    • \n
    \n
  • \n
  • \n

    \n DeliveryBucketPrefix\n

    \n
      \n
    • \n

      Description: (Optional) The key prefix you\n want to use in the custom Amazon S3\n bucket.

      \n
    • \n
    \n
  • \n
  • \n

    \n NotificationOptions\n

    \n
      \n
    • \n

      Description: (Optional) Determines the\n notification configuration for the recorder. The\n valid values are NoStreaming,\n UseExistingTopic, and\n CreateTopic. The default value is\n NoStreaming.

      \n
    • \n
    \n
  • \n
  • \n

    \n CustomDeliveryTopicAccountId\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account where the Amazon SNS topic you want to use for notifications\n resides. You must specify a value for this\n parameter if you use the\n UseExistingTopic notification\n option.

      \n
    • \n
    \n
  • \n
  • \n

    \n CustomDeliveryTopicName\n

    \n
      \n
    • \n

      Description: (Optional) The name of the\n Amazon SNS topic you want to use for\n notifications. You must specify a value for this\n parameter if you use the\n UseExistingTopic notification\n option.

      \n
    • \n
    \n
  • \n
  • \n

    \n RemediationSchedule\n

    \n
      \n
    • \n

      Description: (Optional) A rate expression\n that defines the schedule for drift remediation.\n The valid values are rate(30 days),\n rate(7 days), rate(1\n days), and none. The default\n value is \"none\".

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the root\n of your Organization. This configuration type\n doesn't currently support choosing specific OUs.\n The configuration will be deployed to all the OUs\n in the Organization.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Host Management (Type: Amazon Web ServicesQuickSetupType-SSMHostMgmt)
\n
\n
    \n
  • \n

    \n UpdateSSMAgent\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the SSM Agent is updated on the\n target instances every 2 weeks. The default value\n is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n UpdateEc2LaunchAgent\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the EC2 Launch agent is updated\n on the target instances every month. The default\n value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n CollectInventory\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the EC2 Launch agent is updated\n on the target instances every month. The default\n value is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n ScanInstances\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the target instances are\n scanned daily for available patches. The default\n value is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n InstallCloudWatchAgent\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the Amazon CloudWatch agent\n is installed on the target instances. The default\n value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n UpdateCloudWatchAgent\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the Amazon CloudWatch agent\n is updated on the target instances every month.\n The default value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n IsPolicyAttachAllowed\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether Quick Setup attaches policies\n to instances profiles already associated with the\n target instances. The default value is\n \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetType\n

    \n
      \n
    • \n

      Description: (Optional) Determines how\n instances are targeted for local account\n deployments. Don't specify a value for this\n parameter if you're deploying to OUs. The valid\n values are *,\n InstanceIds,\n ResourceGroups, and\n Tags. Use * to target\n all instances in the account.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetInstances\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of instance IDs. You must provide a value for\n this parameter if you specify\n InstanceIds for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagKey\n

    \n
      \n
    • \n

      Description: (Optional) The tag key assigned\n to the instances you want to target. You must\n provide a value for this parameter if you specify\n Tags for the TargetType\n parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagValue\n

    \n
      \n
    • \n

      Description: (Optional) The value of the tag\n key assigned to the instances you want to target.\n You must provide a value for this parameter if you\n specify Tags for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n ResourceGroupName\n

    \n
      \n
    • \n

      Description: (Optional) The name of the\n resource group associated with the instances you\n want to target. You must provide a value for this\n parameter if you specify\n ResourceGroups for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Distributor (Type: Amazon Web ServicesQuickSetupType-Distributor)
\n
\n
    \n
  • \n

    \n PackagesToInstall\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of packages you want to install on the target\n instances. The valid values are\n AWSEFSTools, AWSCWAgent,\n and AWSEC2LaunchAgent.

      \n
    • \n
    \n
  • \n
  • \n

    \n RemediationSchedule\n

    \n
      \n
    • \n

      Description: (Optional) A rate expression\n that defines the schedule for drift remediation.\n The valid values are rate(30 days),\n rate(14 days), rate(2\n days), and none. The default\n value is \"rate(30 days)\".

      \n
    • \n
    \n
  • \n
  • \n

    \n IsPolicyAttachAllowed\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether Quick Setup attaches policies\n to instances profiles already associated with the\n target instances. The default value is\n \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetType\n

    \n
      \n
    • \n

      Description: (Optional) Determines how\n instances are targeted for local account\n deployments. Don't specify a value for this\n parameter if you're deploying to OUs. The valid\n values are *,\n InstanceIds,\n ResourceGroups, and\n Tags. Use * to target\n all instances in the account.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetInstances\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of instance IDs. You must provide a value for\n this parameter if you specify\n InstanceIds for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagKey\n

    \n
      \n
    • \n

      Description: (Required) The tag key assigned\n to the instances you want to target. You must\n provide a value for this parameter if you specify\n Tags for the TargetType\n parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagValue\n

    \n
      \n
    • \n

      Description: (Required) The value of the tag\n key assigned to the instances you want to target.\n You must provide a value for this parameter if you\n specify Tags for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n ResourceGroupName\n

    \n
      \n
    • \n

      Description: (Required) The name of the\n resource group associated with the instances you\n want to target. You must provide a value for this\n parameter if you specify\n ResourceGroups for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Patch Policy (Type: Amazon Web ServicesQuickSetupType-PatchPolicy)
\n
\n
    \n
  • \n

    \n PatchPolicyName\n

    \n
      \n
    • \n

      Description: (Required) A name for the patch\n policy. The value you provide is applied to target\n Amazon EC2 instances as a tag.

      \n
    • \n
    \n
  • \n
  • \n

    \n SelectedPatchBaselines\n

    \n
      \n
    • \n

      Description: (Required) An array of JSON\n objects containing the information for the patch\n baselines to include in your patch policy.

      \n
    • \n
    \n
  • \n
  • \n

    \n PatchBaselineUseDefault\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the selected patch baselines\n are all Amazon Web Services provided.

      \n
    • \n
    \n
  • \n
  • \n

    \n ConfigurationOptionsPatchOperation\n

    \n
      \n
    • \n

      Description: (Optional) Determines whether\n target instances scan for available patches, or\n scan and install available patches. The valid\n values are Scan and\n ScanAndInstall. The default value for\n the parameter is Scan.

      \n
    • \n
    \n
  • \n
  • \n

    \n ConfigurationOptionsScanValue\n

    \n
      \n
    • \n

      Description: (Optional) A cron expression\n that is used as the schedule for when instances\n scan for available patches.

      \n
    • \n
    \n
  • \n
  • \n

    \n ConfigurationOptionsInstallValue\n

    \n
      \n
    • \n

      Description: (Optional) A cron expression\n that is used as the schedule for when instances\n install available patches.

      \n
    • \n
    \n
  • \n
  • \n

    \n ConfigurationOptionsScanNextInterval\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether instances should scan for\n available patches at the next cron interval. The\n default value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n ConfigurationOptionsInstallNextInterval\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether instances should scan for\n available patches at the next cron interval. The\n default value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n RebootOption\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether instances are rebooted after\n patches are installed. The default value is\n \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n IsPolicyAttachAllowed\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether Quick Setup attaches policies\n to instances profiles already associated with the\n target instances. The default value is\n \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n OutputLogEnableS3\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether command output logs are sent to\n Amazon S3.

      \n
    • \n
    \n
  • \n
  • \n

    \n OutputS3Location\n

    \n
      \n
    • \n

      Description: (Optional) A JSON string\n containing information about the Amazon S3\n bucket where you want to store the output details\n of the request.

      \n
        \n
      • \n

        \n OutputS3BucketRegion\n

        \n
          \n
        • \n

          Description: (Optional) The Amazon Web Services Region where the Amazon S3\n bucket you want Config to deliver\n command output to is located.

          \n
        • \n
        \n
      • \n
      • \n

        \n OutputS3BucketName\n

        \n
          \n
        • \n

          Description: (Optional) The name of the\n Amazon S3 bucket you want Config to deliver command output to.

          \n
        • \n
        \n
      • \n
      • \n

        \n OutputS3KeyPrefix\n

        \n
          \n
        • \n

          Description: (Optional) The key prefix you\n want to use in the custom Amazon S3\n bucket.

          \n
        • \n
        \n
      • \n
      \n
    • \n
    \n
  • \n
  • \n

    \n TargetType\n

    \n
      \n
    • \n

      Description: (Optional) Determines how\n instances are targeted for local account\n deployments. Don't specify a value for this\n parameter if you're deploying to OUs. The valid\n values are *,\n InstanceIds,\n ResourceGroups, and\n Tags. Use * to target\n all instances in the account.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetInstances\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of instance IDs. You must provide a value for\n this parameter if you specify\n InstanceIds for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagKey\n

    \n
      \n
    • \n

      Description: (Required) The tag key assigned\n to the instances you want to target. You must\n provide a value for this parameter if you specify\n Tags for the TargetType\n parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagValue\n

    \n
      \n
    • \n

      Description: (Required) The value of the tag\n key assigned to the instances you want to target.\n You must provide a value for this parameter if you\n specify Tags for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n ResourceGroupName\n

    \n
      \n
    • \n

      Description: (Required) The name of the\n resource group associated with the instances you\n want to target. You must provide a value for this\n parameter if you specify\n ResourceGroups for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
", + "smithy.api#documentation": "

The parameters for the configuration definition type. Parameters for configuration\n definitions vary based the configuration type. The following tables outline the\n parameters for each configuration type.

\n
\n
OpsCenter (Type: Amazon Web ServicesQuickSetupType-SSMOpsCenter)
\n
\n
    \n
  • \n

    \n DelegatedAccountId\n

    \n
      \n
    • \n

      Description: (Required) The ID of the\n delegated administrator account.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Resource Scheduler (Type: Amazon Web ServicesQuickSetupType-Scheduler)
\n
\n
    \n
  • \n

    \n TargetTagKey\n

    \n
      \n
    • \n

      Description: (Required) The tag key assigned\n to the instances you want to target.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagValue\n

    \n
      \n
    • \n

      Description: (Required) The value of the tag\n key assigned to the instances you want to\n target.

      \n
    • \n
    \n
  • \n
  • \n

    \n ICalendarString\n

    \n
      \n
    • \n

      Description: (Required) An iCalendar\n formatted string containing the schedule you want\n Change Manager to use.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Default Host Management Configuration (Type: Amazon Web ServicesQuickSetupType-DHMC)
\n
\n
    \n
  • \n

    \n UpdateSSMAgent\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the SSM Agent is updated on the\n target instances every 2 weeks. The default value\n is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Resource Explorer (Type: Amazon Web ServicesQuickSetupType-ResourceExplorer)
\n
\n
    \n
  • \n

    \n SelectedAggregatorRegion\n

    \n
      \n
    • \n

      Description: (Required) The Amazon Web Services Region where you want to create the\n aggregator index.

      \n
    • \n
    \n
  • \n
  • \n

    \n ReplaceExistingAggregator\n

    \n
      \n
    • \n

      Description: (Required) A boolean value that\n determines whether to demote an existing\n aggregator if it is in a Region that differs from\n the value you specify for the\n SelectedAggregatorRegion.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Change Manager (Type: Amazon Web ServicesQuickSetupType-SSMChangeMgr)
\n
\n
    \n
  • \n

    \n DelegatedAccountId\n

    \n
      \n
    • \n

      Description: (Required) The ID of the\n delegated administrator account.

      \n
    • \n
    \n
  • \n
  • \n

    \n JobFunction\n

    \n
      \n
    • \n

      Description: (Required) The name for the\n Change Manager job function.

      \n
    • \n
    \n
  • \n
  • \n

    \n PermissionType\n

    \n
      \n
    • \n

      Description: (Optional) Specifies whether\n you want to use default administrator permissions\n for the job function role, or provide a custom\n IAM policy. The valid values are\n CustomPermissions and\n AdminPermissions. The default value\n for the parameter is\n CustomerPermissions.

      \n
    • \n
    \n
  • \n
  • \n

    \n CustomPermissions\n

    \n
      \n
    • \n

      Description: (Optional) A JSON string\n containing the IAM policy you want\n your job function to use. You must provide a value\n for this parameter if you specify\n CustomPermissions for the\n PermissionType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
DevOps Guru (Type: Amazon Web ServicesQuickSetupType-DevOpsGuru)
\n
\n
    \n
  • \n

    \n AnalyseAllResources\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether DevOps Guru analyzes all\n CloudFormation stacks in the account. The\n default value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n EnableSnsNotifications\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether DevOps Guru sends\n notifications when an insight is created. The\n default value is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n EnableSsmOpsItems\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether DevOps Guru creates an\n OpsCenter OpsItem when an insight is created. The\n default value is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n EnableDriftRemediation\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether a drift remediation schedule is\n used. The default value is\n \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n RemediationSchedule\n

    \n
      \n
    • \n

      Description: (Optional) A rate expression\n that defines the schedule for drift remediation.\n The valid values are rate(30 days),\n rate(14 days), rate(1\n days), and none. The default\n value is \"none\".

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Conformance Packs (Type: Amazon Web ServicesQuickSetupType-CFGCPacks)
\n
\n
    \n
  • \n

    \n DelegatedAccountId\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n delegated administrator account. This parameter is\n required for Organization deployments.

      \n
    • \n
    \n
  • \n
  • \n

    \n RemediationSchedule\n

    \n
      \n
    • \n

      Description: (Optional) A rate expression\n that defines the schedule for drift remediation.\n The valid values are rate(30 days),\n rate(14 days), rate(2\n days), and none. The default\n value is \"none\".

      \n
    • \n
    \n
  • \n
  • \n

    \n CPackNames\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Config conformance\n packs.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the root\n of your Organization. This configuration type\n doesn't currently support choosing specific OUs.\n The configuration will be deployed to all the OUs\n in the Organization.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Config Recording (Type: Amazon Web ServicesQuickSetupType-CFGRecording)
\n
\n
    \n
  • \n

    \n RecordAllResources\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether all supported resources are\n recorded. The default value is\n \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n ResourceTypesToRecord\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of resource types you want to record.

      \n
    • \n
    \n
  • \n
  • \n

    \n RecordGlobalResourceTypes\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether global resources are recorded\n with all resource configurations. The default\n value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n GlobalResourceTypesRegion\n

    \n
      \n
    • \n

      Description: (Optional) Determines the\n Amazon Web Services Region where global resources\n are recorded.

      \n
    • \n
    \n
  • \n
  • \n

    \n UseCustomBucket\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether a custom Amazon S3\n bucket is used for delivery. The default value is\n \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n DeliveryBucketName\n

    \n
      \n
    • \n

      Description: (Optional) The name of the\n Amazon S3 bucket you want Config to deliver configuration snapshots and\n configuration history files to.

      \n
    • \n
    \n
  • \n
  • \n

    \n DeliveryBucketPrefix\n

    \n
      \n
    • \n

      Description: (Optional) The key prefix you\n want to use in the custom Amazon S3\n bucket.

      \n
    • \n
    \n
  • \n
  • \n

    \n NotificationOptions\n

    \n
      \n
    • \n

      Description: (Optional) Determines the\n notification configuration for the recorder. The\n valid values are NoStreaming,\n UseExistingTopic, and\n CreateTopic. The default value is\n NoStreaming.

      \n
    • \n
    \n
  • \n
  • \n

    \n CustomDeliveryTopicAccountId\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account where the Amazon SNS topic you want to use for notifications\n resides. You must specify a value for this\n parameter if you use the\n UseExistingTopic notification\n option.

      \n
    • \n
    \n
  • \n
  • \n

    \n CustomDeliveryTopicName\n

    \n
      \n
    • \n

      Description: (Optional) The name of the\n Amazon SNS topic you want to use for\n notifications. You must specify a value for this\n parameter if you use the\n UseExistingTopic notification\n option.

      \n
    • \n
    \n
  • \n
  • \n

    \n RemediationSchedule\n

    \n
      \n
    • \n

      Description: (Optional) A rate expression\n that defines the schedule for drift remediation.\n The valid values are rate(30 days),\n rate(7 days), rate(1\n days), and none. The default\n value is \"none\".

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the root\n of your Organization. This configuration type\n doesn't currently support choosing specific OUs.\n The configuration will be deployed to all the OUs\n in the Organization.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Host Management (Type: Amazon Web ServicesQuickSetupType-SSMHostMgmt)
\n
\n
    \n
  • \n

    \n UpdateSSMAgent\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the SSM Agent is updated on the\n target instances every 2 weeks. The default value\n is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n UpdateEc2LaunchAgent\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the EC2 Launch agent is updated\n on the target instances every month. The default\n value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n CollectInventory\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the EC2 Launch agent is updated\n on the target instances every month. The default\n value is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n ScanInstances\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the target instances are\n scanned daily for available patches. The default\n value is \"true\".

      \n
    • \n
    \n
  • \n
  • \n

    \n InstallCloudWatchAgent\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the Amazon CloudWatch agent\n is installed on the target instances. The default\n value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n UpdateCloudWatchAgent\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the Amazon CloudWatch agent\n is updated on the target instances every month.\n The default value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n IsPolicyAttachAllowed\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether Quick Setup attaches policies\n to instances profiles already associated with the\n target instances. The default value is\n \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetType\n

    \n
      \n
    • \n

      Description: (Optional) Determines how\n instances are targeted for local account\n deployments. Don't specify a value for this\n parameter if you're deploying to OUs. The valid\n values are *,\n InstanceIds,\n ResourceGroups, and\n Tags. Use * to target\n all instances in the account.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetInstances\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of instance IDs. You must provide a value for\n this parameter if you specify\n InstanceIds for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagKey\n

    \n
      \n
    • \n

      Description: (Optional) The tag key assigned\n to the instances you want to target. You must\n provide a value for this parameter if you specify\n Tags for the TargetType\n parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagValue\n

    \n
      \n
    • \n

      Description: (Optional) The value of the tag\n key assigned to the instances you want to target.\n You must provide a value for this parameter if you\n specify Tags for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n ResourceGroupName\n

    \n
      \n
    • \n

      Description: (Optional) The name of the\n resource group associated with the instances you\n want to target. You must provide a value for this\n parameter if you specify\n ResourceGroups for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Distributor (Type: Amazon Web ServicesQuickSetupType-Distributor)
\n
\n
    \n
  • \n

    \n PackagesToInstall\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of packages you want to install on the target\n instances. The valid values are\n AWSEFSTools, AWSCWAgent,\n and AWSEC2LaunchAgent.

      \n
    • \n
    \n
  • \n
  • \n

    \n RemediationSchedule\n

    \n
      \n
    • \n

      Description: (Optional) A rate expression\n that defines the schedule for drift remediation.\n The valid values are rate(30 days),\n rate(14 days), rate(2\n days), and none. The default\n value is \"rate(30 days)\".

      \n
    • \n
    \n
  • \n
  • \n

    \n IsPolicyAttachAllowed\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether Quick Setup attaches policies\n to instances profiles already associated with the\n target instances. The default value is\n \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetType\n

    \n
      \n
    • \n

      Description: (Optional) Determines how\n instances are targeted for local account\n deployments. Don't specify a value for this\n parameter if you're deploying to OUs. The valid\n values are *,\n InstanceIds,\n ResourceGroups, and\n Tags. Use * to target\n all instances in the account.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetInstances\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of instance IDs. You must provide a value for\n this parameter if you specify\n InstanceIds for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagKey\n

    \n
      \n
    • \n

      Description: (Required) The tag key assigned\n to the instances you want to target. You must\n provide a value for this parameter if you specify\n Tags for the TargetType\n parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagValue\n

    \n
      \n
    • \n

      Description: (Required) The value of the tag\n key assigned to the instances you want to target.\n You must provide a value for this parameter if you\n specify Tags for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n ResourceGroupName\n

    \n
      \n
    • \n

      Description: (Required) The name of the\n resource group associated with the instances you\n want to target. You must provide a value for this\n parameter if you specify\n ResourceGroups for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
Patch Policy (Type: Amazon Web ServicesQuickSetupType-PatchPolicy)
\n
\n
    \n
  • \n

    \n PatchPolicyName\n

    \n
      \n
    • \n

      Description: (Required) A name for the patch\n policy. The value you provide is applied to target\n Amazon EC2 instances as a tag.

      \n
    • \n
    \n
  • \n
  • \n

    \n SelectedPatchBaselines\n

    \n
      \n
    • \n

      Description: (Required) An array of JSON\n objects containing the information for the patch\n baselines to include in your patch policy.

      \n
    • \n
    \n
  • \n
  • \n

    \n PatchBaselineUseDefault\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether the selected patch baselines\n are all Amazon Web Services provided.

      \n
    • \n
    \n
  • \n
  • \n

    \n ConfigurationOptionsPatchOperation\n

    \n
      \n
    • \n

      Description: (Optional) Determines whether\n target instances scan for available patches, or\n scan and install available patches. The valid\n values are Scan and\n ScanAndInstall. The default value for\n the parameter is Scan.

      \n
    • \n
    \n
  • \n
  • \n

    \n ConfigurationOptionsScanValue\n

    \n
      \n
    • \n

      Description: (Optional) A cron expression\n that is used as the schedule for when instances\n scan for available patches.

      \n
    • \n
    \n
  • \n
  • \n

    \n ConfigurationOptionsInstallValue\n

    \n
      \n
    • \n

      Description: (Optional) A cron expression\n that is used as the schedule for when instances\n install available patches.

      \n
    • \n
    \n
  • \n
  • \n

    \n ConfigurationOptionsScanNextInterval\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether instances should scan for\n available patches at the next cron interval. The\n default value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n ConfigurationOptionsInstallNextInterval\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether instances should scan for\n available patches at the next cron interval. The\n default value is \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n RebootOption\n

    \n
      \n
    • \n

      Description: (Optional) Determines whether\n instances are rebooted after patches are\n installed. Valid values are\n RebootIfNeeded and\n NoReboot.

      \n
    • \n
    \n
  • \n
  • \n

    \n IsPolicyAttachAllowed\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether Quick Setup attaches policies\n to instances profiles already associated with the\n target instances. The default value is\n \"false\".

      \n
    • \n
    \n
  • \n
  • \n

    \n OutputLogEnableS3\n

    \n
      \n
    • \n

      Description: (Optional) A boolean value that\n determines whether command output logs are sent to\n Amazon S3.

      \n
    • \n
    \n
  • \n
  • \n

    \n OutputS3Location\n

    \n
      \n
    • \n

      Description: (Optional) A JSON string\n containing information about the Amazon S3\n bucket where you want to store the output details\n of the request.

      \n
        \n
      • \n

        \n OutputS3BucketRegion\n

        \n
          \n
        • \n

          Description: (Optional) The Amazon Web Services Region where the Amazon S3\n bucket you want Config to deliver\n command output to is located.

          \n
        • \n
        \n
      • \n
      • \n

        \n OutputS3BucketName\n

        \n
          \n
        • \n

          Description: (Optional) The name of the\n Amazon S3 bucket you want Config to deliver command output to.

          \n
        • \n
        \n
      • \n
      • \n

        \n OutputS3KeyPrefix\n

        \n
          \n
        • \n

          Description: (Optional) The key prefix you\n want to use in the custom Amazon S3\n bucket.

          \n
        • \n
        \n
      • \n
      \n
    • \n
    \n
  • \n
  • \n

    \n TargetType\n

    \n
      \n
    • \n

      Description: (Optional) Determines how\n instances are targeted for local account\n deployments. Don't specify a value for this\n parameter if you're deploying to OUs. The valid\n values are *,\n InstanceIds,\n ResourceGroups, and\n Tags. Use * to target\n all instances in the account.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetInstances\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of instance IDs. You must provide a value for\n this parameter if you specify\n InstanceIds for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagKey\n

    \n
      \n
    • \n

      Description: (Required) The tag key assigned\n to the instances you want to target. You must\n provide a value for this parameter if you specify\n Tags for the TargetType\n parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetTagValue\n

    \n
      \n
    • \n

      Description: (Required) The value of the tag\n key assigned to the instances you want to target.\n You must provide a value for this parameter if you\n specify Tags for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n ResourceGroupName\n

    \n
      \n
    • \n

      Description: (Required) The name of the\n resource group associated with the instances you\n want to target. You must provide a value for this\n parameter if you specify\n ResourceGroups for the\n TargetType parameter.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetAccounts\n

    \n
      \n
    • \n

      Description: (Optional) The ID of the\n Amazon Web Services account initiating the\n configuration deployment. You only need to provide\n a value for this parameter if you want to deploy\n the configuration locally. A value must be\n provided for either TargetAccounts or\n TargetOrganizationalUnits.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetOrganizationalUnits\n

    \n
      \n
    • \n

      Description: (Optional) A comma separated\n list of organizational units (OUs) you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
  • \n

    \n TargetRegions\n

    \n
      \n
    • \n

      Description: (Required) A comma separated\n list of Amazon Web Services Regions you want to\n deploy the configuration to.

      \n
    • \n
    \n
  • \n
\n
\n
", "smithy.api#required": {} } }, @@ -228,6 +228,81 @@ } } }, + "com.amazonaws.ssmquicksetup#ConfigurationSummary": { + "type": "structure", + "members": { + "Id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A service generated identifier for the configuration.

" + } + }, + "ManagerArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ARN of the configuration manager.

" + } + }, + "ConfigurationDefinitionId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the configuration definition.

" + } + }, + "Type": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The type of the Quick Setup configuration.

" + } + }, + "TypeVersion": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The version of the Quick Setup type used.

" + } + }, + "Region": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region where the configuration was deployed.

" + } + }, + "Account": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account where the configuration was deployed.

" + } + }, + "CreatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The datetime stamp when the configuration was created.

", + "smithy.api#timestampFormat": "date-time" + } + }, + "FirstClassParameters": { + "target": "com.amazonaws.ssmquicksetup#ConfigurationParametersMap", + "traits": { + "smithy.api#documentation": "

The common parameters and values for the configuration definition.

" + } + }, + "StatusSummaries": { + "target": "com.amazonaws.ssmquicksetup#StatusSummariesList", + "traits": { + "smithy.api#documentation": "

A summary of the state of the configuration manager. This includes deployment\n statuses, association statuses, drift statuses, health checks, and more.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details for a Quick Setup configuration.

" + } + }, + "com.amazonaws.ssmquicksetup#ConfigurationsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssmquicksetup#ConfigurationSummary" + } + }, "com.amazonaws.ssmquicksetup#ConflictException": { "type": "structure", "members": { @@ -424,6 +499,61 @@ "target": "com.amazonaws.ssmquicksetup#Filter" } }, + "com.amazonaws.ssmquicksetup#GetConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssmquicksetup#GetConfigurationInput" + }, + "output": { + "target": "com.amazonaws.ssmquicksetup#GetConfigurationOutput" + }, + "errors": [ + { + "target": "com.amazonaws.ssmquicksetup#AccessDeniedException" + }, + { + "target": "com.amazonaws.ssmquicksetup#ConflictException" + }, + { + "target": "com.amazonaws.ssmquicksetup#InternalServerException" + }, + { + "target": "com.amazonaws.ssmquicksetup#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.ssmquicksetup#ThrottlingException" + }, + { + "target": "com.amazonaws.ssmquicksetup#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns details about the specified configuration.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/getConfiguration/{ConfigurationId}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ssmquicksetup#GetConfigurationInput": { + "type": "structure", + "members": { + "ConfigurationId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A service generated identifier for the configuration.

", + "smithy.api#httpLabel": {}, + "smithy.api#pattern": "^[a-zA-Z0-9-_/:]{1,100}$", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.ssmquicksetup#GetConfigurationManager": { "type": "operation", "input": { @@ -558,6 +688,82 @@ "smithy.api#output": {} } }, + "com.amazonaws.ssmquicksetup#GetConfigurationOutput": { + "type": "structure", + "members": { + "Id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A service generated identifier for the configuration.

" + } + }, + "ManagerArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ARN of the configuration manager.

" + } + }, + "ConfigurationDefinitionId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the configuration definition.

" + } + }, + "Type": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The type of the Quick Setup configuration.

" + } + }, + "TypeVersion": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The version of the Quick Setup type used.

" + } + }, + "Account": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account where the configuration was deployed.

" + } + }, + "Region": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region where the configuration was deployed.

" + } + }, + "CreatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The datetime stamp when the configuration manager was created.

", + "smithy.api#timestampFormat": "date-time" + } + }, + "LastModifiedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The datetime stamp when the configuration manager was last updated.

", + "smithy.api#timestampFormat": "date-time" + } + }, + "StatusSummaries": { + "target": "com.amazonaws.ssmquicksetup#StatusSummariesList", + "traits": { + "smithy.api#documentation": "

A summary of the state of the configuration manager. This includes deployment\n statuses, association statuses, drift statuses, health checks, and more.

" + } + }, + "Parameters": { + "target": "com.amazonaws.ssmquicksetup#ConfigurationParametersMap", + "traits": { + "smithy.api#documentation": "

The parameters for the configuration definition type.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ssmquicksetup#GetServiceSettings": { "type": "operation", "input": { @@ -733,6 +939,115 @@ "smithy.api#output": {} } }, + "com.amazonaws.ssmquicksetup#ListConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssmquicksetup#ListConfigurationsInput" + }, + "output": { + "target": "com.amazonaws.ssmquicksetup#ListConfigurationsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.ssmquicksetup#AccessDeniedException" + }, + { + "target": "com.amazonaws.ssmquicksetup#InternalServerException" + }, + { + "target": "com.amazonaws.ssmquicksetup#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.ssmquicksetup#ThrottlingException" + }, + { + "target": "com.amazonaws.ssmquicksetup#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns configurations deployed by Quick Setup in the requesting Amazon Web Services account and Amazon Web Services Region.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/listConfigurations" + }, + "smithy.api#paginated": { + "items": "ConfigurationsList", + "inputToken": "StartingToken", + "outputToken": "NextToken", + "pageSize": "MaxItems" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ssmquicksetup#ListConfigurationsInput": { + "type": "structure", + "members": { + "StartingToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The token to use when requesting a specific set of items from a list.

", + "smithy.api#length": { + "max": 1024 + }, + "smithy.api#pattern": "^[A-Za-z0-9+=@_|\\/\\s-]*$" + } + }, + "MaxItems": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Specifies the maximum number of configurations that are returned by the\n request.

", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "Filters": { + "target": "com.amazonaws.ssmquicksetup#FiltersList", + "traits": { + "smithy.api#documentation": "

Filters the results returned by the request.

" + } + }, + "ManagerArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ARN of the configuration manager.

", + "smithy.api#pattern": "^arn:aws:ssm-quicksetup:([^:]+):(\\d{12}):configuration-manager/[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$" + } + }, + "ConfigurationDefinitionId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the configuration definition.

", + "smithy.api#pattern": "^[a-z0-9-]{1,20}$" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ssmquicksetup#ListConfigurationsOutput": { + "type": "structure", + "members": { + "ConfigurationsList": { + "target": "com.amazonaws.ssmquicksetup#ConfigurationsList", + "traits": { + "smithy.api#documentation": "

An array of configurations.

" + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The token to use when requesting the next set of items. If there are no additional items to\n return, the string is empty.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ssmquicksetup#ListQuickSetupTypes": { "type": "operation", "input": { @@ -870,6 +1185,9 @@ { "target": "com.amazonaws.ssmquicksetup#DeleteConfigurationManager" }, + { + "target": "com.amazonaws.ssmquicksetup#GetConfiguration" + }, { "target": "com.amazonaws.ssmquicksetup#GetConfigurationManager" }, @@ -879,6 +1197,9 @@ { "target": "com.amazonaws.ssmquicksetup#ListConfigurationManagers" }, + { + "target": "com.amazonaws.ssmquicksetup#ListConfigurations" + }, { "target": "com.amazonaws.ssmquicksetup#ListQuickSetupTypes" }, @@ -1749,7 +2070,7 @@ "StatusMessage": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

When applicable, returns an informational message relevant to the current status and status type of the status summary object. We don't recommend implementing parsing logic around this value since the messages returned can vary in format.

" + "smithy.api#documentation": "

When applicable, returns an informational message relevant to the current status\n and status type of the status summary object. We don't recommend implementing\n parsing logic around this value since the messages returned can vary in\n format.

" } }, "LastUpdatedAt": { diff --git a/codegen/sdk-codegen/aws-models/ssm.json b/codegen/sdk-codegen/aws-models/ssm.json index 1e1a78ef1ee..fb11af8ac7d 100644 --- a/codegen/sdk-codegen/aws-models/ssm.json +++ b/codegen/sdk-codegen/aws-models/ssm.json @@ -270,6 +270,21 @@ } } }, + "com.amazonaws.ssm#AgentType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.ssm#AgentVersion": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[0-9]{1,6}(\\.[0-9]{1,6}){2,3}$" + } + }, "com.amazonaws.ssm#AggregatorSchemaOnly": { "type": "boolean", "traits": { @@ -608,6 +623,9 @@ { "target": "com.amazonaws.ssm#GetDocument" }, + { + "target": "com.amazonaws.ssm#GetExecutionPreview" + }, { "target": "com.amazonaws.ssm#GetInventory" }, @@ -695,6 +713,12 @@ { "target": "com.amazonaws.ssm#ListInventoryEntries" }, + { + "target": "com.amazonaws.ssm#ListNodes" + }, + { + "target": "com.amazonaws.ssm#ListNodesSummary" + }, { "target": "com.amazonaws.ssm#ListOpsItemEvents" }, @@ -764,6 +788,9 @@ { "target": "com.amazonaws.ssm#StartChangeRequestExecution" }, + { + "target": "com.amazonaws.ssm#StartExecutionPreview" + }, { "target": "com.amazonaws.ssm#StartSession" }, @@ -3695,6 +3722,50 @@ } } }, + "com.amazonaws.ssm#AutomationExecutionInputs": { + "type": "structure", + "members": { + "Parameters": { + "target": "com.amazonaws.ssm#AutomationParameterMap", + "traits": { + "smithy.api#documentation": "

Information about parameters that can be specified for the preview operation.\n

" + } + }, + "TargetParameterName": { + "target": "com.amazonaws.ssm#AutomationParameterKey", + "traits": { + "smithy.api#documentation": "

The name of the parameter used as the target resource for the rate-controlled execution.\n Required if you specify targets.

" + } + }, + "Targets": { + "target": "com.amazonaws.ssm#Targets", + "traits": { + "smithy.api#documentation": "

Information about the resources that would be included in the actual runbook execution, if\n it were to be run. Both Targets and TargetMaps can't be specified together.

" + } + }, + "TargetMaps": { + "target": "com.amazonaws.ssm#TargetMaps", + "traits": { + "smithy.api#documentation": "

A key-value mapping of document parameters to target resources. Both Targets and TargetMaps\n can't be specified together.

" + } + }, + "TargetLocations": { + "target": "com.amazonaws.ssm#TargetLocations", + "traits": { + "smithy.api#documentation": "

Information about the Amazon Web Services Regions and Amazon Web Services accounts targeted by the Automation execution\n preview operation.

" + } + }, + "TargetLocationsURL": { + "target": "com.amazonaws.ssm#TargetLocationsURL", + "traits": { + "smithy.api#documentation": "

A publicly accessible URL for a file that contains the TargetLocations body.\n Currently, only files in presigned Amazon S3 buckets are supported.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the optional inputs that can be specified for an automation execution\n preview.

" + } + }, "com.amazonaws.ssm#AutomationExecutionLimitExceededException": { "type": "structure", "members": { @@ -3927,6 +3998,39 @@ "smithy.api#error": "client" } }, + "com.amazonaws.ssm#AutomationExecutionPreview": { + "type": "structure", + "members": { + "StepPreviews": { + "target": "com.amazonaws.ssm#StepPreviewMap", + "traits": { + "smithy.api#documentation": "

Information about the type of impact a runbook step would have on a resource.

\n " + } + }, + "Regions": { + "target": "com.amazonaws.ssm#RegionList", + "traits": { + "smithy.api#documentation": "

Information about the Amazon Web Services Regions targeted by the execution preview.

" + } + }, + "TargetPreviews": { + "target": "com.amazonaws.ssm#TargetPreviewList", + "traits": { + "smithy.api#documentation": "

Information that provides a preview of what the impact of running the specified Automation\n runbook would be.

" + } + }, + "TotalAccounts": { + "target": "com.amazonaws.ssm#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Information about the Amazon Web Services accounts that were included in the execution\n preview.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the results of the execution preview.

" + } + }, "com.amazonaws.ssm#AutomationExecutionStatus": { "type": "enum", "members": { @@ -6662,7 +6766,7 @@ "GlobalFilters": { "target": "com.amazonaws.ssm#PatchFilterGroup", "traits": { - "smithy.api#documentation": "

A set of global filters used to include patches in the baseline.

" + "smithy.api#documentation": "

A set of global filters used to include patches in the baseline.

\n \n

The GlobalFilters parameter can be configured only by using the CLI or an Amazon Web Services SDK. It can't be configured from the Patch Manager\n console, and its value isn't displayed in the console.

\n
" } }, "ApprovalRules": { @@ -6769,7 +6873,7 @@ } ], "traits": { - "smithy.api#documentation": "

A resource data sync helps you view data from multiple sources in a single location.\n Amazon Web Services Systems Manager offers two types of resource data sync: SyncToDestination and\n SyncFromSource.

\n

You can configure Systems Manager Inventory to use the SyncToDestination type to\n synchronize Inventory data from multiple Amazon Web Services Regions to a single Amazon Simple Storage Service (Amazon S3) bucket. For more information, see Creatinga a\n resource data sync for Inventory in the Amazon Web Services Systems Manager User Guide.

\n

You can configure Systems Manager Explorer to use the SyncFromSource type to synchronize\n operational work items (OpsItems) and operational data (OpsData) from multiple Amazon Web Services Regions to a\n single Amazon S3 bucket. This type can synchronize OpsItems and OpsData from multiple\n Amazon Web Services accounts and Amazon Web Services Regions or EntireOrganization by using Organizations. For more\n information, see Setting up Systems Manager\n Explorer to display data from multiple accounts and Regions in the\n Amazon Web Services Systems Manager User Guide.

\n

A resource data sync is an asynchronous operation that returns immediately. After a\n successful initial sync is completed, the system continuously syncs data. To check the status of\n a sync, use the ListResourceDataSync.

\n \n

By default, data isn't encrypted in Amazon S3. We strongly recommend that you\n enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you\n secure access to the Amazon S3 bucket by creating a restrictive bucket policy.

\n
" + "smithy.api#documentation": "

A resource data sync helps you view data from multiple sources in a single location.\n Amazon Web Services Systems Manager offers two types of resource data sync: SyncToDestination and\n SyncFromSource.

\n

You can configure Systems Manager Inventory to use the SyncToDestination type to\n synchronize Inventory data from multiple Amazon Web Services Regions to a single Amazon Simple Storage Service (Amazon S3) bucket. For more information, see Creating a\n resource data sync for Inventory in the Amazon Web Services Systems Manager User Guide.

\n

You can configure Systems Manager Explorer to use the SyncFromSource type to synchronize\n operational work items (OpsItems) and operational data (OpsData) from multiple Amazon Web Services Regions to a\n single Amazon S3 bucket. This type can synchronize OpsItems and OpsData from multiple\n Amazon Web Services accounts and Amazon Web Services Regions or EntireOrganization by using Organizations. For more\n information, see Setting up Systems Manager\n Explorer to display data from multiple accounts and Regions in the\n Amazon Web Services Systems Manager User Guide.

\n

A resource data sync is an asynchronous operation that returns immediately. After a\n successful initial sync is completed, the system continuously syncs data. To check the status of\n a sync, use the ListResourceDataSync.

\n \n

By default, data isn't encrypted in Amazon S3. We strongly recommend that you\n enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you\n secure access to the Amazon S3 bucket by creating a restrictive bucket policy.

\n
" } }, "com.amazonaws.ssm#CreateResourceDataSyncRequest": { @@ -11830,6 +11934,20 @@ } } }, + "com.amazonaws.ssm#ExecutionInputs": { + "type": "union", + "members": { + "Automation": { + "target": "com.amazonaws.ssm#AutomationExecutionInputs", + "traits": { + "smithy.api#documentation": "

Information about the optional inputs that can be specified for an automation execution\n preview.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the inputs for an execution preview.

" + } + }, "com.amazonaws.ssm#ExecutionMode": { "type": "enum", "members": { @@ -11847,6 +11965,59 @@ } } }, + "com.amazonaws.ssm#ExecutionPreview": { + "type": "union", + "members": { + "Automation": { + "target": "com.amazonaws.ssm#AutomationExecutionPreview", + "traits": { + "smithy.api#documentation": "

Information about the changes that would be made if an Automation workflow were run.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the changes that would be made if an execution were run.

" + } + }, + "com.amazonaws.ssm#ExecutionPreviewId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 36 + }, + "smithy.api#pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" + } + }, + "com.amazonaws.ssm#ExecutionPreviewStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Pending" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InProgress" + } + }, + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Success" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Failed" + } + } + } + }, "com.amazonaws.ssm#ExecutionRoleName": { "type": "string", "traits": { @@ -12688,6 +12859,76 @@ "smithy.api#output": {} } }, + "com.amazonaws.ssm#GetExecutionPreview": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssm#GetExecutionPreviewRequest" + }, + "output": { + "target": "com.amazonaws.ssm#GetExecutionPreviewResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ssm#InternalServerError" + }, + { + "target": "com.amazonaws.ssm#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Initiates the process of retrieving an existing preview that shows the effects that running\n a specified Automation runbook would have on the targeted resources.

" + } + }, + "com.amazonaws.ssm#GetExecutionPreviewRequest": { + "type": "structure", + "members": { + "ExecutionPreviewId": { + "target": "com.amazonaws.ssm#ExecutionPreviewId", + "traits": { + "smithy.api#documentation": "

The ID of the existing execution preview.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ssm#GetExecutionPreviewResponse": { + "type": "structure", + "members": { + "ExecutionPreviewId": { + "target": "com.amazonaws.ssm#ExecutionPreviewId", + "traits": { + "smithy.api#documentation": "

The generated ID for the existing execution preview.

" + } + }, + "EndedAt": { + "target": "com.amazonaws.ssm#DateTime", + "traits": { + "smithy.api#documentation": "

A UTC timestamp indicating when the execution preview operation ended.

" + } + }, + "Status": { + "target": "com.amazonaws.ssm#ExecutionPreviewStatus", + "traits": { + "smithy.api#documentation": "

The current status of the execution preview operation.

" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ssm#String", + "traits": { + "smithy.api#documentation": "

Supplemental information about the current status of the execution preview.

" + } + }, + "ExecutionPreview": { + "target": "com.amazonaws.ssm#ExecutionPreview" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ssm#GetInventory": { "type": "operation", "input": { @@ -14419,7 +14660,7 @@ "SettingId": { "target": "com.amazonaws.ssm#ServiceSettingId", "traits": { - "smithy.api#documentation": "

The ID of the service setting to get. The setting ID can be one of the following.

\n ", + "smithy.api#documentation": "

The ID of the service setting to get. The setting ID can be one of the following.

\n ", "smithy.api#required": {} } } @@ -14530,6 +14771,29 @@ "smithy.api#error": "client" } }, + "com.amazonaws.ssm#ImpactType": { + "type": "enum", + "members": { + "MUTATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Mutating" + } + }, + "NON_MUTATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NonMutating" + } + }, + "UNDETERMINED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Undetermined" + } + } + } + }, "com.amazonaws.ssm#IncompatiblePolicyException": { "type": "structure", "members": { @@ -14770,6 +15034,74 @@ } } }, + "com.amazonaws.ssm#InstanceInfo": { + "type": "structure", + "members": { + "AgentType": { + "target": "com.amazonaws.ssm#AgentType", + "traits": { + "smithy.api#documentation": "

The type of agent installed on the node.

" + } + }, + "AgentVersion": { + "target": "com.amazonaws.ssm#AgentVersion", + "traits": { + "smithy.api#documentation": "

The version number of the agent installed on the node.

" + } + }, + "ComputerName": { + "target": "com.amazonaws.ssm#ComputerName", + "traits": { + "smithy.api#documentation": "

The fully qualified host name of the managed node.

" + } + }, + "InstanceStatus": { + "target": "com.amazonaws.ssm#InstanceStatus", + "traits": { + "smithy.api#documentation": "

The current status of the managed node.

" + } + }, + "IpAddress": { + "target": "com.amazonaws.ssm#IPAddress", + "traits": { + "smithy.api#documentation": "

The IP address of the managed node.

" + } + }, + "ManagedStatus": { + "target": "com.amazonaws.ssm#ManagedStatus", + "traits": { + "smithy.api#documentation": "

Indicates whether the node is managed by Systems Manager.

" + } + }, + "PlatformType": { + "target": "com.amazonaws.ssm#PlatformType", + "traits": { + "smithy.api#documentation": "

The operating system platform type of the managed node.

" + } + }, + "PlatformName": { + "target": "com.amazonaws.ssm#PlatformName", + "traits": { + "smithy.api#documentation": "

The name of the operating system platform running on your managed node.

" + } + }, + "PlatformVersion": { + "target": "com.amazonaws.ssm#PlatformVersion", + "traits": { + "smithy.api#documentation": "

The version of the OS platform running on your managed node.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.ssm#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of instance, either an EC2 instance or another supported machine type in a hybrid\n fleet.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about a specific managed node.

" + } + }, "com.amazonaws.ssm#InstanceInformation": { "type": "structure", "members": { @@ -14807,7 +15139,7 @@ "PlatformType": { "target": "com.amazonaws.ssm#PlatformType", "traits": { - "smithy.api#documentation": "

The operating system platform type.

" + "smithy.api#documentation": "

The operating system platform type.

" } }, "PlatformName": { @@ -15435,7 +15767,7 @@ "PlatformType": { "target": "com.amazonaws.ssm#PlatformType", "traits": { - "smithy.api#documentation": "

The operating system platform type of the managed node. For example, Windows.

" + "smithy.api#documentation": "

The operating system platform type of the managed node. For example, Windows Server or\n Amazon Linux 2.

" } }, "PlatformName": { @@ -15745,11 +16077,20 @@ } } }, - "com.amazonaws.ssm#InstanceTagName": { + "com.amazonaws.ssm#InstanceStatus": { "type": "string", "traits": { "smithy.api#length": { - "min": 0, + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.ssm#InstanceTagName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, "max": 255 } } @@ -15819,7 +16160,7 @@ "code": "InvalidActivationId", "httpResponseCode": 404 }, - "smithy.api#documentation": "

The activation ID isn't valid. Verify the you entered the correct ActivationId or\n ActivationCode and try again.

", + "smithy.api#documentation": "

The activation ID isn't valid. Verify that you entered the correct ActivationId or\n ActivationCode and try again.

", "smithy.api#error": "client" } }, @@ -15835,7 +16176,7 @@ "code": "InvalidAggregator", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The specified aggregator isn't valid for inventory groups. Verify that the aggregator uses a\n valid inventory type such as AWS:Application or\n AWS:InstanceInformation.

", + "smithy.api#documentation": "

The specified aggregator isn't valid for the group type. Verify that the aggregator you\n provided is supported.

", "smithy.api#error": "client" } }, @@ -16096,7 +16437,7 @@ "code": "InvalidFilter", "httpResponseCode": 441 }, - "smithy.api#documentation": "

The filter name isn't valid. Verify the you entered the correct name and try again.

", + "smithy.api#documentation": "

The filter name isn't valid. Verify that you entered the correct name and try again.

", "smithy.api#error": "client" } }, @@ -18362,6 +18703,229 @@ "smithy.api#output": {} } }, + "com.amazonaws.ssm#ListNodes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssm#ListNodesRequest" + }, + "output": { + "target": "com.amazonaws.ssm#ListNodesResult" + }, + "errors": [ + { + "target": "com.amazonaws.ssm#InternalServerError" + }, + { + "target": "com.amazonaws.ssm#InvalidFilter" + }, + { + "target": "com.amazonaws.ssm#InvalidNextToken" + }, + { + "target": "com.amazonaws.ssm#ResourceDataSyncNotFoundException" + }, + { + "target": "com.amazonaws.ssm#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Takes in filters and returns a list of managed nodes matching the filter criteria.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Nodes", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ssm#ListNodesRequest": { + "type": "structure", + "members": { + "SyncName": { + "target": "com.amazonaws.ssm#ResourceDataSyncName", + "traits": { + "smithy.api#documentation": "

The name of the resource data sync to retrieve information about. Required for\n cross-account/cross-Region configurations. Optional for single account/single-Region\n configurations.

" + } + }, + "Filters": { + "target": "com.amazonaws.ssm#NodeFilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Use a filter to return a more specific list of managed nodes.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ssm#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ssm#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this call. The call also returns a token that you\n can specify in a subsequent call to get the next set of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ssm#ListNodesResult": { + "type": "structure", + "members": { + "Nodes": { + "target": "com.amazonaws.ssm#NodeList", + "traits": { + "smithy.api#documentation": "

A list of managed nodes that match the specified filter criteria.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ssm#NextToken", + "traits": { + "smithy.api#documentation": "

The token to use when requesting the next set of items. If there are no additional items to\n return, the string is empty.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ssm#ListNodesSummary": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssm#ListNodesSummaryRequest" + }, + "output": { + "target": "com.amazonaws.ssm#ListNodesSummaryResult" + }, + "errors": [ + { + "target": "com.amazonaws.ssm#InternalServerError" + }, + { + "target": "com.amazonaws.ssm#InvalidAggregatorException" + }, + { + "target": "com.amazonaws.ssm#InvalidFilter" + }, + { + "target": "com.amazonaws.ssm#InvalidNextToken" + }, + { + "target": "com.amazonaws.ssm#ResourceDataSyncNotFoundException" + }, + { + "target": "com.amazonaws.ssm#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Generates a summary of managed instance/node metadata based on the filters and aggregators\n you specify. Results are grouped by the input aggregator you specify.

", + "smithy.api#examples": [ + { + "title": "ListNodesSummary", + "documentation": "This example illustrates one usage of ListNodesSummary", + "input": { + "SyncName": "AWS-QuickSetup-ManagedNode", + "Aggregators": [ + { + "AggregatorType": "Count", + "TypeName": "Instance", + "AttributeName": "Region" + } + ], + "Filters": [ + { + "Key": "InstanceStatus", + "Values": [ + "Active" + ], + "Type": "Equal" + } + ], + "MaxResults": 2, + "NextToken": "A9lT8CAxj9aDFRi+MNAoFq08I---EXAMPLE" + }, + "output": { + "Summary": [ + { + "Count": "26", + "Region": "us-east-1" + }, + { + "Count": "7", + "Region": "us-east-2" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Summary", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ssm#ListNodesSummaryRequest": { + "type": "structure", + "members": { + "SyncName": { + "target": "com.amazonaws.ssm#ResourceDataSyncName", + "traits": { + "smithy.api#documentation": "

The name of the resource data sync to retrieve information about. Required for\n cross-account/cross-Region configuration. Optional for single account/single-Region\n configurations.

" + } + }, + "Filters": { + "target": "com.amazonaws.ssm#NodeFilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Use a filter to generate a summary that matches your specified filter\n criteria.

" + } + }, + "Aggregators": { + "target": "com.amazonaws.ssm#NodeAggregatorList", + "traits": { + "smithy.api#documentation": "

Specify one or more aggregators to return a count of managed nodes that match that\n expression. For example, a count of managed nodes by operating system.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.ssm#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.) The call also returns a token that you can specify in a subsequent call to get the next\n set of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ssm#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this call. The call also returns a token that you\n can specify in a subsequent call to get the next set of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ssm#ListNodesSummaryResult": { + "type": "structure", + "members": { + "Summary": { + "target": "com.amazonaws.ssm#NodeSummaryList", + "traits": { + "smithy.api#documentation": "

A collection of objects reporting information about your managed nodes, such as the count of\n nodes by operating system.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ssm#NextToken", + "traits": { + "smithy.api#documentation": "

The token to use when requesting the next set of items. If there are no additional items to\n return, the string is empty.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ssm#ListOpsItemEvents": { "type": "operation", "input": { @@ -20008,6 +20572,29 @@ "smithy.api#pattern": "^(^mi-[0-9a-f]{17}$)|(^eks_c:[0-9A-Za-z][A-Za-z0-9\\-_]{0,99}_\\w{17}$)$" } }, + "com.amazonaws.ssm#ManagedStatus": { + "type": "enum", + "members": { + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "All" + } + }, + "MANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Managed" + } + }, + "UNMANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Unmanaged" + } + } + } + }, "com.amazonaws.ssm#MaxConcurrency": { "type": "string", "traits": { @@ -20082,135 +20669,594 @@ "smithy.api#pattern": "^(?!\\s*$).+$" } }, - "com.amazonaws.ssm#MetadataKeysToDeleteList": { + "com.amazonaws.ssm#MetadataKeysToDeleteList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#MetadataKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.ssm#MetadataMap": { + "type": "map", + "key": { + "target": "com.amazonaws.ssm#MetadataKey" + }, + "value": { + "target": "com.amazonaws.ssm#MetadataValue" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.ssm#MetadataValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ssm#MetadataValueString", + "traits": { + "smithy.api#documentation": "

Metadata value to assign to an Application Manager application.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Metadata to assign to an Application Manager application.

" + } + }, + "com.amazonaws.ssm#MetadataValueString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4096 + } + } + }, + "com.amazonaws.ssm#ModifyDocumentPermission": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssm#ModifyDocumentPermissionRequest" + }, + "output": { + "target": "com.amazonaws.ssm#ModifyDocumentPermissionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ssm#DocumentLimitExceeded" + }, + { + "target": "com.amazonaws.ssm#DocumentPermissionLimit" + }, + { + "target": "com.amazonaws.ssm#InternalServerError" + }, + { + "target": "com.amazonaws.ssm#InvalidDocument" + }, + { + "target": "com.amazonaws.ssm#InvalidPermissionType" + } + ], + "traits": { + "smithy.api#documentation": "

Shares a Amazon Web Services Systems Manager document (SSM document)publicly or privately. If you share a document\n privately, you must specify the Amazon Web Services user IDs for those people who can use the document. If\n you share a document publicly, you must specify All as the account\n ID.

" + } + }, + "com.amazonaws.ssm#ModifyDocumentPermissionRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.ssm#DocumentName", + "traits": { + "smithy.api#documentation": "

The name of the document that you want to share.

", + "smithy.api#required": {} + } + }, + "PermissionType": { + "target": "com.amazonaws.ssm#DocumentPermissionType", + "traits": { + "smithy.api#documentation": "

The permission type for the document. The permission type can be\n Share.

", + "smithy.api#required": {} + } + }, + "AccountIdsToAdd": { + "target": "com.amazonaws.ssm#AccountIdList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services users that should have access to the document. The account IDs can either be a\n group of account IDs or All.

" + } + }, + "AccountIdsToRemove": { + "target": "com.amazonaws.ssm#AccountIdList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services users that should no longer have access to the document. The Amazon Web Services user\n can either be a group of account IDs or All. This action has a higher\n priority than AccountIdsToAdd. If you specify an ID to add and the same ID to\n remove, the system removes access to the document.

" + } + }, + "SharedDocumentVersion": { + "target": "com.amazonaws.ssm#SharedDocumentVersion", + "traits": { + "smithy.api#documentation": "

(Optional) The version of the document to share. If it isn't specified, the system choose\n the Default version to share.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ssm#ModifyDocumentPermissionResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ssm#NextToken": { + "type": "string" + }, + "com.amazonaws.ssm#Node": { + "type": "structure", + "members": { + "CaptureTime": { + "target": "com.amazonaws.ssm#NodeCaptureTime", + "traits": { + "smithy.api#documentation": "

The UTC timestamp for when the managed node data was last captured.

" + } + }, + "Id": { + "target": "com.amazonaws.ssm#NodeId", + "traits": { + "smithy.api#documentation": "

The ID of the managed node.

" + } + }, + "Owner": { + "target": "com.amazonaws.ssm#NodeOwnerInfo", + "traits": { + "smithy.api#documentation": "

Information about the ownership of the managed node.

" + } + }, + "Region": { + "target": "com.amazonaws.ssm#NodeRegion", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region that a managed node was created in or assigned to.

" + } + }, + "NodeType": { + "target": "com.amazonaws.ssm#NodeType", + "traits": { + "smithy.api#documentation": "

Information about the type of node.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about an individual managed node.

" + } + }, + "com.amazonaws.ssm#NodeAccountId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[0-9]{12}$" + } + }, + "com.amazonaws.ssm#NodeAggregator": { + "type": "structure", + "members": { + "AggregatorType": { + "target": "com.amazonaws.ssm#NodeAggregatorType", + "traits": { + "smithy.api#documentation": "

The aggregator type for limiting a node summary. Currently, only Count is\n supported.

", + "smithy.api#required": {} + } + }, + "TypeName": { + "target": "com.amazonaws.ssm#NodeTypeName", + "traits": { + "smithy.api#documentation": "

The data type name to use for viewing counts of nodes. Currently, only Instance\n is supported.

", + "smithy.api#required": {} + } + }, + "AttributeName": { + "target": "com.amazonaws.ssm#NodeAttributeName", + "traits": { + "smithy.api#documentation": "

The name of a node attribute on which to limit the count of nodes.

", + "smithy.api#required": {} + } + }, + "Aggregators": { + "target": "com.amazonaws.ssm#NodeAggregatorList", + "traits": { + "smithy.api#documentation": "

Information about aggregators used to refine a node summary.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

One or more aggregators for viewing counts of nodes using different\n dimensions.

" + } + }, + "com.amazonaws.ssm#NodeAggregatorList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#NodeAggregator", + "traits": { + "smithy.api#xmlName": "NodeAggregator" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, + "com.amazonaws.ssm#NodeAggregatorType": { + "type": "enum", + "members": { + "COUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Count" + } + } + } + }, + "com.amazonaws.ssm#NodeAttributeName": { + "type": "enum", + "members": { + "AGENT_VERSION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AgentVersion" + } + }, + "PLATFORM_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PlatformName" + } + }, + "PLATFORM_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PlatformType" + } + }, + "PLATFORM_VERSION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PlatformVersion" + } + }, + "REGION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Region" + } + }, + "RESOURCE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResourceType" + } + } + } + }, + "com.amazonaws.ssm#NodeCaptureTime": { + "type": "timestamp" + }, + "com.amazonaws.ssm#NodeFilter": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ssm#NodeFilterKey", + "traits": { + "smithy.api#documentation": "

The name of the filter.

", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.ssm#NodeFilterValueList", + "traits": { + "smithy.api#documentation": "

A filter value supported by the specified key. For example, for the key\n PlatformType, supported values include Linux and\n Windows.

", + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.ssm#NodeFilterOperatorType", + "traits": { + "smithy.api#documentation": "

The type of filter operator.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The filters for the operation.

" + } + }, + "com.amazonaws.ssm#NodeFilterKey": { + "type": "enum", + "members": { + "AGENT_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AgentType" + } + }, + "AGENT_VERSION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AgentVersion" + } + }, + "COMPUTER_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ComputerName" + } + }, + "INSTANCE_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InstanceId" + } + }, + "INSTANCE_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InstanceStatus" + } + }, + "IP_ADDRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IpAddress" + } + }, + "MANAGED_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ManagedStatus" + } + }, + "PLATFORM_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PlatformName" + } + }, + "PLATFORM_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PlatformType" + } + }, + "PLATFORM_VERSION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PlatformVersion" + } + }, + "RESOURCE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResourceType" + } + }, + "ORGANIZATIONAL_UNIT_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OrganizationalUnitId" + } + }, + "ORGANIZATIONAL_UNIT_PATH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OrganizationalUnitPath" + } + }, + "REGION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Region" + } + }, + "ACCOUNT_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AccountId" + } + } + } + }, + "com.amazonaws.ssm#NodeFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#NodeFilter", + "traits": { + "smithy.api#xmlName": "NodeFilter" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.ssm#NodeFilterOperatorType": { + "type": "enum", + "members": { + "EQUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Equal" + } + }, + "NOT_EQUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NotEqual" + } + }, + "BEGIN_WITH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BeginWith" + } + } + } + }, + "com.amazonaws.ssm#NodeFilterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 512 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + } + }, + "com.amazonaws.ssm#NodeFilterValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#NodeFilterValue", + "traits": { + "smithy.api#xmlName": "FilterValue" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.ssm#NodeId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(^i-(\\w{8}|\\w{17})$)|(^mi-\\w{17}$)$" + } + }, + "com.amazonaws.ssm#NodeList": { "type": "list", "member": { - "target": "com.amazonaws.ssm#MetadataKey" + "target": "com.amazonaws.ssm#Node" }, "traits": { "smithy.api#length": { - "min": 1, - "max": 10 + "min": 0, + "max": 50 } } }, - "com.amazonaws.ssm#MetadataMap": { - "type": "map", - "key": { - "target": "com.amazonaws.ssm#MetadataKey" - }, - "value": { - "target": "com.amazonaws.ssm#MetadataValue" - }, + "com.amazonaws.ssm#NodeOrganizationalUnitId": { + "type": "string", "traits": { "smithy.api#length": { "min": 1, - "max": 5 + "max": 68 + }, + "smithy.api#pattern": "^ou-[0-9a-z]{4,32}-[a-z0-9]{8,32}$" + } + }, + "com.amazonaws.ssm#NodeOrganizationalUnitPath": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 } } }, - "com.amazonaws.ssm#MetadataValue": { + "com.amazonaws.ssm#NodeOwnerInfo": { "type": "structure", "members": { - "Value": { - "target": "com.amazonaws.ssm#MetadataValueString", + "AccountId": { + "target": "com.amazonaws.ssm#NodeAccountId", "traits": { - "smithy.api#documentation": "

Metadata value to assign to an Application Manager application.

" + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the managed node.

" + } + }, + "OrganizationalUnitId": { + "target": "com.amazonaws.ssm#NodeOrganizationalUnitId", + "traits": { + "smithy.api#documentation": "

The ID of the organization unit (OU) that the account is part of.

" + } + }, + "OrganizationalUnitPath": { + "target": "com.amazonaws.ssm#NodeOrganizationalUnitPath", + "traits": { + "smithy.api#documentation": "

The path for the organizational unit (OU) that owns the managed node. The path for the OU is\n built using the IDs of the organization, root, and all OUs in the path down to and including the\n OU. For example:

\n

\n o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/ou-jkl0-awsddddd/\n

" } } }, "traits": { - "smithy.api#documentation": "

Metadata to assign to an Application Manager application.

" + "smithy.api#documentation": "

Information about ownership of a managed node.

" } }, - "com.amazonaws.ssm#MetadataValueString": { + "com.amazonaws.ssm#NodeRegion": { "type": "string", "traits": { "smithy.api#length": { "min": 1, - "max": 4096 + "max": 64 } } }, - "com.amazonaws.ssm#ModifyDocumentPermission": { - "type": "operation", - "input": { - "target": "com.amazonaws.ssm#ModifyDocumentPermissionRequest" + "com.amazonaws.ssm#NodeSummary": { + "type": "map", + "key": { + "target": "com.amazonaws.ssm#AttributeName" }, - "output": { - "target": "com.amazonaws.ssm#ModifyDocumentPermissionResponse" + "value": { + "target": "com.amazonaws.ssm#AttributeValue" }, - "errors": [ - { - "target": "com.amazonaws.ssm#DocumentLimitExceeded" - }, - { - "target": "com.amazonaws.ssm#DocumentPermissionLimit" - }, - { - "target": "com.amazonaws.ssm#InternalServerError" - }, - { - "target": "com.amazonaws.ssm#InvalidDocument" - }, - { - "target": "com.amazonaws.ssm#InvalidPermissionType" + "traits": { + "smithy.api#length": { + "min": 0, + "max": 3 } - ], + } + }, + "com.amazonaws.ssm#NodeSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#NodeSummary" + }, "traits": { - "smithy.api#documentation": "

Shares a Amazon Web Services Systems Manager document (SSM document)publicly or privately. If you share a document\n privately, you must specify the Amazon Web Services user IDs for those people who can use the document. If\n you share a document publicly, you must specify All as the account\n ID.

" + "smithy.api#length": { + "min": 0, + "max": 50 + } } }, - "com.amazonaws.ssm#ModifyDocumentPermissionRequest": { - "type": "structure", + "com.amazonaws.ssm#NodeType": { + "type": "union", "members": { - "Name": { - "target": "com.amazonaws.ssm#DocumentName", - "traits": { - "smithy.api#documentation": "

The name of the document that you want to share.

", - "smithy.api#required": {} - } - }, - "PermissionType": { - "target": "com.amazonaws.ssm#DocumentPermissionType", - "traits": { - "smithy.api#documentation": "

The permission type for the document. The permission type can be\n Share.

", - "smithy.api#required": {} - } - }, - "AccountIdsToAdd": { - "target": "com.amazonaws.ssm#AccountIdList", - "traits": { - "smithy.api#documentation": "

The Amazon Web Services users that should have access to the document. The account IDs can either be a\n group of account IDs or All.

" - } - }, - "AccountIdsToRemove": { - "target": "com.amazonaws.ssm#AccountIdList", - "traits": { - "smithy.api#documentation": "

The Amazon Web Services users that should no longer have access to the document. The Amazon Web Services user\n can either be a group of account IDs or All. This action has a higher\n priority than AccountIdsToAdd. If you specify an ID to add and the same ID to\n remove, the system removes access to the document.

" - } - }, - "SharedDocumentVersion": { - "target": "com.amazonaws.ssm#SharedDocumentVersion", + "Instance": { + "target": "com.amazonaws.ssm#InstanceInfo", "traits": { - "smithy.api#documentation": "

(Optional) The version of the document to share. If it isn't specified, the system choose\n the Default version to share.

" + "smithy.api#documentation": "

Information about a specific managed node.

" } } }, "traits": { - "smithy.api#input": {} + "smithy.api#documentation": "

Information about a managed node's type.

" } }, - "com.amazonaws.ssm#ModifyDocumentPermissionResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} + "com.amazonaws.ssm#NodeTypeName": { + "type": "enum", + "members": { + "INSTANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Instance" + } + } } }, - "com.amazonaws.ssm#NextToken": { - "type": "string" - }, "com.amazonaws.ssm#NonCompliantSummary": { "type": "structure", "members": { @@ -22666,7 +23712,7 @@ "ARN": { "target": "com.amazonaws.ssm#String", "traits": { - "smithy.api#documentation": "

The (ARN) of the last user to update the parameter.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the parameter.

" } }, "Type": { @@ -24832,6 +25878,18 @@ "com.amazonaws.ssm#Region": { "type": "string" }, + "com.amazonaws.ssm#RegionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#Region" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, "com.amazonaws.ssm#Regions": { "type": "list", "member": { @@ -25407,7 +26465,7 @@ "SettingId": { "target": "com.amazonaws.ssm#ServiceSettingId", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service setting to reset. The setting ID can be one of\n the following.

\n ", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service setting to reset. The setting ID can be one of\n the following.

\n ", "smithy.api#required": {} } } @@ -27761,6 +28819,79 @@ "smithy.api#output": {} } }, + "com.amazonaws.ssm#StartExecutionPreview": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssm#StartExecutionPreviewRequest" + }, + "output": { + "target": "com.amazonaws.ssm#StartExecutionPreviewResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ssm#InternalServerError" + }, + { + "target": "com.amazonaws.ssm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Initiates the process of creating a preview showing the effects that running a specified\n Automation runbook would have on the targeted resources.

", + "smithy.api#examples": [ + { + "title": "StartExecutionPreview", + "documentation": "This example illustrates one usage of StartExecutionPreview", + "input": { + "DocumentName": "AWS-StartEC2Instance" + }, + "output": { + "ExecutionPreviewId": "2f27d6e5-9676-4708-b8bd-aef0ab47bb26" + } + } + ] + } + }, + "com.amazonaws.ssm#StartExecutionPreviewRequest": { + "type": "structure", + "members": { + "DocumentName": { + "target": "com.amazonaws.ssm#DocumentName", + "traits": { + "smithy.api#documentation": "

The name of the Automation runbook to run. The result of the execution preview indicates\n what the impact would be of running this runbook.

", + "smithy.api#required": {} + } + }, + "DocumentVersion": { + "target": "com.amazonaws.ssm#DocumentVersion", + "traits": { + "smithy.api#documentation": "

The version of the Automation runbook to run. The default value is\n $DEFAULT.

" + } + }, + "ExecutionInputs": { + "target": "com.amazonaws.ssm#ExecutionInputs", + "traits": { + "smithy.api#documentation": "

Information about the inputs that can be specified for the preview operation.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ssm#StartExecutionPreviewResponse": { + "type": "structure", + "members": { + "ExecutionPreviewId": { + "target": "com.amazonaws.ssm#ExecutionPreviewId", + "traits": { + "smithy.api#documentation": "

The ID of the execution preview generated by the system.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ssm#StartSession": { "type": "operation", "input": { @@ -28161,6 +29292,15 @@ "target": "com.amazonaws.ssm#StepExecution" } }, + "com.amazonaws.ssm#StepPreviewMap": { + "type": "map", + "key": { + "target": "com.amazonaws.ssm#ImpactType" + }, + "value": { + "target": "com.amazonaws.ssm#Integer" + } + }, "com.amazonaws.ssm#StopAutomationExecution": { "type": "operation", "input": { @@ -28538,6 +29678,39 @@ "target": "com.amazonaws.ssm#ParameterValue" } }, + "com.amazonaws.ssm#TargetPreview": { + "type": "structure", + "members": { + "Count": { + "target": "com.amazonaws.ssm#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of resources of a certain type included in an execution preview.

" + } + }, + "TargetType": { + "target": "com.amazonaws.ssm#String", + "traits": { + "smithy.api#documentation": "

A type of resource that was included in the execution preview.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the resources that would be included in the actual runbook execution, if\n it were to be run.

" + } + }, + "com.amazonaws.ssm#TargetPreviewList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#TargetPreview" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, "com.amazonaws.ssm#TargetType": { "type": "string", "traits": { @@ -28854,6 +30027,22 @@ "smithy.api#error": "client" } }, + "com.amazonaws.ssm#UnsupportedOperationException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.ssm#String" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "UnsupportedOperation", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This operation is not supported for the current account. You must first enable the Systems Manager integrated experience in your account.

", + "smithy.api#error": "client" + } + }, "com.amazonaws.ssm#UnsupportedParameterType": { "type": "structure", "members": { @@ -30243,7 +31432,7 @@ "GlobalFilters": { "target": "com.amazonaws.ssm#PatchFilterGroup", "traits": { - "smithy.api#documentation": "

A set of global filters used to include patches in the baseline.

" + "smithy.api#documentation": "

A set of global filters used to include patches in the baseline.

\n \n

The GlobalFilters parameter can be configured only by using the CLI or an Amazon Web Services SDK. It can't be configured from the Patch Manager\n console, and its value isn't displayed in the console.

\n
" } }, "ApprovalRules": { @@ -30491,14 +31680,14 @@ "SettingId": { "target": "com.amazonaws.ssm#ServiceSettingId", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service setting to update. For example,\n arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled.\n The setting ID can be one of the following.

\n \n \n

Permissions to update the\n /ssm/managed-instance/default-ec2-instance-management-role setting should only be\n provided to administrators. Implement least privilege access when allowing individuals to\n configure or modify the Default Host Management Configuration.

\n
", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service setting to update. For example,\n arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled.\n The setting ID can be one of the following.

\n \n \n

Permissions to update the\n /ssm/managed-instance/default-ec2-instance-management-role setting should only be\n provided to administrators. Implement least privilege access when allowing individuals to\n configure or modify the Default Host Management Configuration.

\n
", "smithy.api#required": {} } }, "SettingValue": { "target": "com.amazonaws.ssm#ServiceSettingValue", "traits": { - "smithy.api#documentation": "

The new value to specify for the service setting. The following list specifies the available\n values for each setting.

\n ", + "smithy.api#documentation": "

The new value to specify for the service setting. The following list specifies the available\n values for each setting.

\n ", "smithy.api#required": {} } } @@ -30534,6 +31723,28 @@ "target": "com.amazonaws.ssm#ValidNextStep" } }, + "com.amazonaws.ssm#ValidationException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.ssm#String" + }, + "ReasonCode": { + "target": "com.amazonaws.ssm#String", + "traits": { + "smithy.api#documentation": "

The reason code for the invalid request.

" + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ValidationException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request isn't valid. Verify that you entered valid contents for the command and try\n again.

", + "smithy.api#error": "client" + } + }, "com.amazonaws.ssm#Version": { "type": "string", "traits": { diff --git a/codegen/sdk-codegen/aws-models/xray.json b/codegen/sdk-codegen/aws-models/xray.json index 184b46d35dd..20b242ea11b 100644 --- a/codegen/sdk-codegen/aws-models/xray.json +++ b/codegen/sdk-codegen/aws-models/xray.json @@ -36,6 +36,9 @@ { "target": "com.amazonaws.xray#BatchGetTraces" }, + { + "target": "com.amazonaws.xray#CancelTraceRetrieval" + }, { "target": "com.amazonaws.xray#CreateGroup" }, @@ -60,6 +63,9 @@ { "target": "com.amazonaws.xray#GetGroups" }, + { + "target": "com.amazonaws.xray#GetIndexingRules" + }, { "target": "com.amazonaws.xray#GetInsight" }, @@ -72,6 +78,9 @@ { "target": "com.amazonaws.xray#GetInsightSummaries" }, + { + "target": "com.amazonaws.xray#GetRetrievedTracesGraph" + }, { "target": "com.amazonaws.xray#GetSamplingRules" }, @@ -90,12 +99,18 @@ { "target": "com.amazonaws.xray#GetTraceGraph" }, + { + "target": "com.amazonaws.xray#GetTraceSegmentDestination" + }, { "target": "com.amazonaws.xray#GetTraceSummaries" }, { "target": "com.amazonaws.xray#ListResourcePolicies" }, + { + "target": "com.amazonaws.xray#ListRetrievedTraces" + }, { "target": "com.amazonaws.xray#ListTagsForResource" }, @@ -111,6 +126,9 @@ { "target": "com.amazonaws.xray#PutTraceSegments" }, + { + "target": "com.amazonaws.xray#StartTraceRetrieval" + }, { "target": "com.amazonaws.xray#TagResource" }, @@ -120,8 +138,14 @@ { "target": "com.amazonaws.xray#UpdateGroup" }, + { + "target": "com.amazonaws.xray#UpdateIndexingRule" + }, { "target": "com.amazonaws.xray#UpdateSamplingRule" + }, + { + "target": "com.amazonaws.xray#UpdateTraceSegmentDestination" } ], "traits": { @@ -1329,7 +1353,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a list of traces specified by ID. Each trace is a collection of segment\n documents that originates from a single request. Use GetTraceSummaries to get a\n list of trace IDs.

", + "smithy.api#documentation": "\n

You cannot find traces through this API if Transaction Search is enabled since trace is not indexed in X-Ray.

\n
\n

Retrieves a list of traces specified by ID. Each trace is a collection of segment\n documents that originates from a single request. Use GetTraceSummaries to get a\n list of trace IDs.

", "smithy.api#http": { "method": "POST", "uri": "/Traces", @@ -1404,6 +1428,56 @@ } } }, + "com.amazonaws.xray#CancelTraceRetrieval": { + "type": "operation", + "input": { + "target": "com.amazonaws.xray#CancelTraceRetrievalRequest" + }, + "output": { + "target": "com.amazonaws.xray#CancelTraceRetrievalResult" + }, + "errors": [ + { + "target": "com.amazonaws.xray#InvalidRequestException" + }, + { + "target": "com.amazonaws.xray#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.xray#ThrottledException" + } + ], + "traits": { + "smithy.api#documentation": "

\nCancels an ongoing trace retrieval job initiated by StartTraceRetrieval using the provided RetrievalToken. A successful cancellation will return an HTTP 200 response.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/CancelTraceRetrieval", + "code": 200 + } + } + }, + "com.amazonaws.xray#CancelTraceRetrievalRequest": { + "type": "structure", + "members": { + "RetrievalToken": { + "target": "com.amazonaws.xray#RetrievalToken", + "traits": { + "smithy.api#documentation": "

\nRetrieval token.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.xray#CancelTraceRetrievalResult": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.xray#ClientID": { "type": "string", "traits": { @@ -2025,7 +2099,7 @@ "ThrottleCount": { "target": "com.amazonaws.xray#NullableLong", "traits": { - "smithy.api#documentation": "

The number of requests that failed with a 419 throttling status code.

" + "smithy.api#documentation": "

The number of requests that failed with a 429 throttling status code.

" } }, "OtherCount": { @@ -2387,6 +2461,65 @@ "smithy.api#output": {} } }, + "com.amazonaws.xray#GetIndexingRules": { + "type": "operation", + "input": { + "target": "com.amazonaws.xray#GetIndexingRulesRequest" + }, + "output": { + "target": "com.amazonaws.xray#GetIndexingRulesResult" + }, + "errors": [ + { + "target": "com.amazonaws.xray#InvalidRequestException" + }, + { + "target": "com.amazonaws.xray#ThrottledException" + } + ], + "traits": { + "smithy.api#documentation": "

\nRetrieves all indexing rules.

\n

Indexing rules are used to determine the server-side sampling rate for spans ingested through the CloudWatchLogs destination and indexed by X-Ray. For more information, see Transaction Search.

", + "smithy.api#http": { + "method": "POST", + "uri": "/GetIndexingRules", + "code": 200 + } + } + }, + "com.amazonaws.xray#GetIndexingRulesRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.xray#String", + "traits": { + "smithy.api#documentation": "

\nSpecify the pagination token returned by a previous request to retrieve the next page of indexes.\n \n \n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.xray#GetIndexingRulesResult": { + "type": "structure", + "members": { + "IndexingRules": { + "target": "com.amazonaws.xray#IndexingRuleList", + "traits": { + "smithy.api#documentation": "

\n Retrieves all indexing rules.

" + } + }, + "NextToken": { + "target": "com.amazonaws.xray#String", + "traits": { + "smithy.api#documentation": "

\n Specify the pagination token returned by a previous request to retrieve the next page of indexes.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.xray#GetInsight": { "type": "operation", "input": { @@ -2748,6 +2881,81 @@ "smithy.api#output": {} } }, + "com.amazonaws.xray#GetRetrievedTracesGraph": { + "type": "operation", + "input": { + "target": "com.amazonaws.xray#GetRetrievedTracesGraphRequest" + }, + "output": { + "target": "com.amazonaws.xray#GetRetrievedTracesGraphResult" + }, + "errors": [ + { + "target": "com.amazonaws.xray#InvalidRequestException" + }, + { + "target": "com.amazonaws.xray#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.xray#ThrottledException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Retrieves a service graph for traces based on the specified RetrievalToken from the CloudWatch log group generated by Transaction Search. This API does not initiate a retrieval job. You must first execute StartTraceRetrieval to obtain the required RetrievalToken.\n

\n

The trace graph describes services that process incoming requests and any downstream services they call, which may include Amazon Web Services resources, external APIs, or databases.

\n

The response is empty until the RetrievalStatus is COMPLETE. Retry the request after the status changes from RUNNING or SCHEDULED to COMPLETE to access the full service graph.

\n

\n When CloudWatch log is the destination, this API can support cross-account observability and service graph retrieval across linked accounts.

\n

For retrieving graphs from X-Ray directly as opposed to the Transaction-Search Log group, see GetTraceGraph.

", + "smithy.api#http": { + "method": "POST", + "uri": "/GetRetrievedTracesGraph", + "code": 200 + } + } + }, + "com.amazonaws.xray#GetRetrievedTracesGraphRequest": { + "type": "structure", + "members": { + "RetrievalToken": { + "target": "com.amazonaws.xray#RetrievalToken", + "traits": { + "smithy.api#documentation": "

\n Retrieval token.\n

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.xray#String", + "traits": { + "smithy.api#documentation": "

\n Specify the pagination token returned by a previous request to retrieve the next page of indexes.\n \n \n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.xray#GetRetrievedTracesGraphResult": { + "type": "structure", + "members": { + "RetrievalStatus": { + "target": "com.amazonaws.xray#RetrievalStatus", + "traits": { + "smithy.api#documentation": "

\nStatus of the retrieval.\n

" + } + }, + "Services": { + "target": "com.amazonaws.xray#RetrievedServicesList", + "traits": { + "smithy.api#documentation": "

\nRetrieved services.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.xray#String", + "traits": { + "smithy.api#documentation": "

\n Specify the pagination token returned by a previous request to retrieve the next page of indexes.\n \n \n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.xray#GetSamplingRules": { "type": "operation", "input": { @@ -3237,6 +3445,58 @@ "smithy.api#output": {} } }, + "com.amazonaws.xray#GetTraceSegmentDestination": { + "type": "operation", + "input": { + "target": "com.amazonaws.xray#GetTraceSegmentDestinationRequest" + }, + "output": { + "target": "com.amazonaws.xray#GetTraceSegmentDestinationResult" + }, + "errors": [ + { + "target": "com.amazonaws.xray#InvalidRequestException" + }, + { + "target": "com.amazonaws.xray#ThrottledException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Retrieves the current destination of data sent to PutTraceSegments and OpenTelemetry API. The Transaction Search feature requires a CloudWatchLogs destination. For more information, see Transaction Search and OpenTelemetry.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/GetTraceSegmentDestination", + "code": 200 + } + } + }, + "com.amazonaws.xray#GetTraceSegmentDestinationRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.xray#GetTraceSegmentDestinationResult": { + "type": "structure", + "members": { + "Destination": { + "target": "com.amazonaws.xray#TraceSegmentDestination", + "traits": { + "smithy.api#documentation": "

\nRetrieves the current destination.\n

" + } + }, + "Status": { + "target": "com.amazonaws.xray#TraceSegmentDestinationStatus", + "traits": { + "smithy.api#documentation": "

\n Status of the retrieval.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.xray#GetTraceSummaries": { "type": "operation", "input": { @@ -3254,7 +3514,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves IDs and annotations for traces available for a specified time frame using an\n optional filter. To get the full traces, pass the trace IDs to\n BatchGetTraces.

\n

A filter expression can target traced requests that hit specific service nodes or\n edges, have errors, or come from a known user. For example, the following filter expression\n targets traces that pass through api.example.com:

\n

\n service(\"api.example.com\")\n

\n

This filter expression finds traces that have an annotation named account\n with the value 12345:

\n

\n annotation.account = \"12345\"\n

\n

For a full list of indexed fields and keywords that you can use in filter expressions,\n see Using Filter\n Expressions in the Amazon Web Services X-Ray Developer Guide.

", + "smithy.api#documentation": "

Retrieves IDs and annotations for traces available for a specified time frame using an\n optional filter. To get the full traces, pass the trace IDs to\n BatchGetTraces.

\n

A filter expression can target traced requests that hit specific service nodes or\n edges, have errors, or come from a known user. For example, the following filter expression\n targets traces that pass through api.example.com:

\n

\n service(\"api.example.com\")\n

\n

This filter expression finds traces that have an annotation named account\n with the value 12345:

\n

\n annotation.account = \"12345\"\n

\n

For a full list of indexed fields and keywords that you can use in filter expressions,\n see Use filter\n expressions in the Amazon Web Services X-Ray Developer Guide.

", "smithy.api#http": { "method": "POST", "uri": "/TraceSummaries", @@ -3287,7 +3547,7 @@ "TimeRangeType": { "target": "com.amazonaws.xray#TimeRangeType", "traits": { - "smithy.api#documentation": "

A parameter to indicate whether to query trace summaries by TraceId, Event (trace update time), or Service (segment end time).

" + "smithy.api#documentation": "

Query trace summaries by TraceId (trace start time), Event (trace update time), or Service (trace segment end time).

" } }, "Sampling": { @@ -3351,6 +3611,32 @@ "smithy.api#output": {} } }, + "com.amazonaws.xray#GraphLink": { + "type": "structure", + "members": { + "ReferenceType": { + "target": "com.amazonaws.xray#String", + "traits": { + "smithy.api#documentation": "

\nRelationship of a trace to the corresponding service.\n

" + } + }, + "SourceTraceId": { + "target": "com.amazonaws.xray#String", + "traits": { + "smithy.api#documentation": "

\nSource trace of a link relationship.\n

" + } + }, + "DestinationTraceIds": { + "target": "com.amazonaws.xray#TraceIdList", + "traits": { + "smithy.api#documentation": "

\nDestination traces of a link relationship.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nThe relation between two services.\n

" + } + }, "com.amazonaws.xray#Group": { "type": "structure", "members": { @@ -3532,32 +3818,98 @@ "smithy.api#documentation": "

Information about an HTTP request.

" } }, - "com.amazonaws.xray#Insight": { + "com.amazonaws.xray#IndexingRule": { "type": "structure", "members": { - "InsightId": { - "target": "com.amazonaws.xray#InsightId", + "Name": { + "target": "com.amazonaws.xray#RuleName", "traits": { - "smithy.api#documentation": "

The insights unique identifier.

" + "smithy.api#documentation": "

\n The name of the indexing rule.\n

" } }, - "GroupARN": { - "target": "com.amazonaws.xray#GroupARN", + "ModifiedAt": { + "target": "com.amazonaws.xray#Timestamp", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the group that the insight belongs to.

" + "smithy.api#documentation": "

\nDisplays when the rule was last modified, in Unix time seconds.\n

" } }, - "GroupName": { - "target": "com.amazonaws.xray#GroupName", + "Rule": { + "target": "com.amazonaws.xray#IndexingRuleValue", "traits": { - "smithy.api#documentation": "

The name of the group that the insight belongs to.

" + "smithy.api#documentation": "

\n The indexing rule.\n

" } - }, - "RootCauseServiceId": { - "target": "com.amazonaws.xray#ServiceId" - }, - "Categories": { - "target": "com.amazonaws.xray#InsightCategoryList", + } + }, + "traits": { + "smithy.api#documentation": "

\nRule used to determine the server-side sampling rate for spans ingested through the CloudWatchLogs destination and indexed by X-Ray.\n

" + } + }, + "com.amazonaws.xray#IndexingRuleList": { + "type": "list", + "member": { + "target": "com.amazonaws.xray#IndexingRule" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.xray#IndexingRuleValue": { + "type": "union", + "members": { + "Probabilistic": { + "target": "com.amazonaws.xray#ProbabilisticRuleValue", + "traits": { + "smithy.api#documentation": "

\n Indexing rule configuration that is used to probabilistically sample traceIds.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The indexing rule configuration.\n

" + } + }, + "com.amazonaws.xray#IndexingRuleValueUpdate": { + "type": "union", + "members": { + "Probabilistic": { + "target": "com.amazonaws.xray#ProbabilisticRuleValueUpdate", + "traits": { + "smithy.api#documentation": "

\n Indexing rule configuration that is used to probabilistically sample traceIds.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Update to an indexing rule.\n

" + } + }, + "com.amazonaws.xray#Insight": { + "type": "structure", + "members": { + "InsightId": { + "target": "com.amazonaws.xray#InsightId", + "traits": { + "smithy.api#documentation": "

The insights unique identifier.

" + } + }, + "GroupARN": { + "target": "com.amazonaws.xray#GroupARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the group that the insight belongs to.

" + } + }, + "GroupName": { + "target": "com.amazonaws.xray#GroupName", + "traits": { + "smithy.api#documentation": "

The name of the group that the insight belongs to.

" + } + }, + "RootCauseServiceId": { + "target": "com.amazonaws.xray#ServiceId" + }, + "Categories": { + "target": "com.amazonaws.xray#InsightCategoryList", "traits": { "smithy.api#documentation": "

The categories that label and describe the type of insight.

" } @@ -3932,6 +4284,18 @@ "smithy.api#error": "client" } }, + "com.amazonaws.xray#LinksList": { + "type": "list", + "member": { + "target": "com.amazonaws.xray#GraphLink" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, "com.amazonaws.xray#ListResourcePolicies": { "type": "operation", "input": { @@ -3996,6 +4360,93 @@ "smithy.api#output": {} } }, + "com.amazonaws.xray#ListRetrievedTraces": { + "type": "operation", + "input": { + "target": "com.amazonaws.xray#ListRetrievedTracesRequest" + }, + "output": { + "target": "com.amazonaws.xray#ListRetrievedTracesResult" + }, + "errors": [ + { + "target": "com.amazonaws.xray#InvalidRequestException" + }, + { + "target": "com.amazonaws.xray#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.xray#ThrottledException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Retrieves a list of traces for a given RetrievalToken from the CloudWatch log group generated by Transaction Search. For information on what each trace returns, see BatchGetTraces.\n

\n

This API does not initiate a retrieval job. To start a trace retrieval, use StartTraceRetrieval, which generates the required RetrievalToken.

\n

\n When the RetrievalStatus is not COMPLETE, the API will return an empty response. Retry the request once the retrieval has completed to access the full list of traces.

\n

For cross-account observability, this API can retrieve traces from linked accounts when CloudWatch log is the destination across relevant accounts. For more details, see CloudWatch cross-account observability.

\n

For retrieving data from X-Ray directly as opposed to the Transaction-Search Log group, see BatchGetTraces.

", + "smithy.api#http": { + "method": "POST", + "uri": "/ListRetrievedTraces", + "code": 200 + } + } + }, + "com.amazonaws.xray#ListRetrievedTracesRequest": { + "type": "structure", + "members": { + "RetrievalToken": { + "target": "com.amazonaws.xray#RetrievalToken", + "traits": { + "smithy.api#documentation": "

\nRetrieval token.\n

", + "smithy.api#required": {} + } + }, + "TraceFormat": { + "target": "com.amazonaws.xray#TraceFormatType", + "traits": { + "smithy.api#documentation": "

\nFormat of the requested traces.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.xray#String", + "traits": { + "smithy.api#documentation": "

\n Specify the pagination token returned by a previous request to retrieve the next page of indexes.\n \n \n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.xray#ListRetrievedTracesResult": { + "type": "structure", + "members": { + "RetrievalStatus": { + "target": "com.amazonaws.xray#RetrievalStatus", + "traits": { + "smithy.api#documentation": "

\n Status of the retrieval.\n

" + } + }, + "TraceFormat": { + "target": "com.amazonaws.xray#TraceFormatType", + "traits": { + "smithy.api#documentation": "

\n Format of the requested traces.\n

" + } + }, + "Traces": { + "target": "com.amazonaws.xray#TraceSpanList", + "traits": { + "smithy.api#documentation": "

\nFull traces for the specified requests.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.xray#String", + "traits": { + "smithy.api#documentation": "

\n Specify the pagination token returned by a previous request to retrieve the next page of indexes.\n \n \n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.xray#ListTagsForResource": { "type": "operation", "input": { @@ -4159,6 +4610,42 @@ } } }, + "com.amazonaws.xray#ProbabilisticRuleValue": { + "type": "structure", + "members": { + "DesiredSamplingPercentage": { + "target": "com.amazonaws.xray#NullableDouble", + "traits": { + "smithy.api#documentation": "

\n Configured sampling percentage of traceIds. Note that sampling can be subject to limits to ensure completeness of data.\n

", + "smithy.api#required": {} + } + }, + "ActualSamplingPercentage": { + "target": "com.amazonaws.xray#NullableDouble", + "traits": { + "smithy.api#documentation": "

\n Applied sampling percentage of traceIds. \n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The indexing rule configuration for probabilistic sampling.\n

" + } + }, + "com.amazonaws.xray#ProbabilisticRuleValueUpdate": { + "type": "structure", + "members": { + "DesiredSamplingPercentage": { + "target": "com.amazonaws.xray#NullableDouble", + "traits": { + "smithy.api#documentation": "

\n Configured sampling percentage of traceIds. Note that sampling can be subject to limits to ensure completeness of data.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Update to the indexing rule configuration for probabilistic sampling.\n

" + } + }, "com.amazonaws.xray#PutEncryptionConfig": { "type": "operation", "input": { @@ -4387,7 +4874,7 @@ } ], "traits": { - "smithy.api#documentation": "

Uploads segment documents to Amazon Web Services X-Ray. The X-Ray SDK generates segment documents and sends them to the X-Ray daemon, which uploads them in\n batches. A segment document can be a completed segment, an in-progress segment, or an array of\n subsegments.

\n

Segments must include the following fields. For the full segment document schema, see\n Amazon Web Services X-Ray\n Segment Documents in the Amazon Web Services X-Ray Developer Guide.

\n

\n Required segment document fields\n

\n \n

A trace_id consists of three numbers separated by hyphens. For example,\n 1-58406520-a006649127e371903a2de979. This includes:

\n

\n Trace ID Format\n

\n ", + "smithy.api#documentation": "

Uploads segment documents to Amazon Web Services X-Ray. \n A segment document can be a completed segment, an in-progress segment, or an array of\n subsegments.

\n

Segments must include the following fields. For the full segment document schema, see\n Amazon Web Services X-Ray\n Segment Documents in the Amazon Web Services X-Ray Developer Guide.

\n

\n Required segment document fields\n

\n \n

A trace_id consists of three numbers separated by hyphens. For example,\n 1-58406520-a006649127e371903a2de979. For trace IDs created by an X-Ray SDK, or by Amazon Web Services services \n integrated with X-Ray, a trace ID includes:

\n

\n Trace ID Format\n

\n \n \n

Trace IDs created via OpenTelemetry have a different format based on the \n W3C Trace Context specification.\n A W3C trace ID must be formatted in the X-Ray trace ID format when sending to X-Ray. For example, a W3C\n trace ID 4efaaf4d1e8720b39541901950019ee5 should be formatted as \n 1-4efaaf4d-1e8720b39541901950019ee5 when sending to X-Ray. While X-Ray trace IDs include \n the original request timestamp in Unix epoch time, this is not required or validated.\n

\n
", "smithy.api#http": { "method": "POST", "uri": "/TraceSegments", @@ -4662,6 +5149,111 @@ "target": "com.amazonaws.xray#ResponseTimeRootCause" } }, + "com.amazonaws.xray#RetrievalStatus": { + "type": "enum", + "members": { + "SCHEDULED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SCHEDULED" + } + }, + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RUNNING" + } + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "CANCELLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CANCELLED" + } + }, + "TIMEOUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TIMEOUT" + } + } + } + }, + "com.amazonaws.xray#RetrievalToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1020 + } + } + }, + "com.amazonaws.xray#RetrievedService": { + "type": "structure", + "members": { + "Service": { + "target": "com.amazonaws.xray#Service" + }, + "Links": { + "target": "com.amazonaws.xray#LinksList", + "traits": { + "smithy.api#documentation": "

\n Relation between two 2 services.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Retrieved information about an application that processed requests, users that made requests, or downstream services, resources, and applications that an application used.\n

" + } + }, + "com.amazonaws.xray#RetrievedServicesList": { + "type": "list", + "member": { + "target": "com.amazonaws.xray#RetrievedService" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + } + } + }, + "com.amazonaws.xray#RetrievedTrace": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.xray#TraceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier for the span.\n

" + } + }, + "Duration": { + "target": "com.amazonaws.xray#NullableDouble", + "traits": { + "smithy.api#documentation": "

\n The length of time in seconds between the start time of the root span and the end time of the last span that completed.\n

" + } + }, + "Spans": { + "target": "com.amazonaws.xray#SpanList", + "traits": { + "smithy.api#documentation": "

\n Spans that comprise the trace.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Retrieved collection of spans with matching trace IDs.\n

" + } + }, "com.amazonaws.xray#RootCauseException": { "type": "structure", "members": { @@ -5138,7 +5730,7 @@ } }, "traits": { - "smithy.api#documentation": "

A segment from a trace that has been ingested by the X-Ray service. The segment can be\n compiled from documents uploaded with PutTraceSegments, or an\n inferred segment for a downstream service, generated from a subsegment sent by\n the service that called it.

\n

For the full segment document schema, see Amazon Web Services X-Ray Segment\n Documents in the Amazon Web Services X-Ray Developer Guide.

" + "smithy.api#documentation": "

A segment from a trace that has been ingested by the X-Ray service. The segment can be\n compiled from documents uploaded with PutTraceSegments, or an\n inferred segment for a downstream service, generated from a subsegment sent by\n the service that called it.

\n

For the full segment document schema, see Amazon Web Services X-Ray segment\n documents in the Amazon Web Services X-Ray Developer Guide.

" } }, "com.amazonaws.xray#SegmentDocument": { @@ -5350,6 +5942,127 @@ } } }, + "com.amazonaws.xray#Span": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.xray#SpanId", + "traits": { + "smithy.api#documentation": "

The span ID.

" + } + }, + "Document": { + "target": "com.amazonaws.xray#SpanDocument", + "traits": { + "smithy.api#documentation": "

\nThe span document.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n A span from a trace that has been ingested by the X-Ray service. A span represents a unit of work or an operation performed by a service.\n

" + } + }, + "com.amazonaws.xray#SpanDocument": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 204800 + } + } + }, + "com.amazonaws.xray#SpanId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16 + } + } + }, + "com.amazonaws.xray#SpanList": { + "type": "list", + "member": { + "target": "com.amazonaws.xray#Span" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.xray#StartTraceRetrieval": { + "type": "operation", + "input": { + "target": "com.amazonaws.xray#StartTraceRetrievalRequest" + }, + "output": { + "target": "com.amazonaws.xray#StartTraceRetrievalResult" + }, + "errors": [ + { + "target": "com.amazonaws.xray#InvalidRequestException" + }, + { + "target": "com.amazonaws.xray#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.xray#ThrottledException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Initiates a trace retrieval process using the specified time range and for the give trace IDs on Transaction Search generated by the CloudWatch log group. For more information, see Transaction Search.\n

\n

API returns a RetrievalToken, which can be used with ListRetrievedTraces or GetRetrievedTracesGraph to fetch results. Retrievals will time out after 60 minutes. To execute long time ranges, consider segmenting into multiple retrievals.

\n

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to retrieve data from a linked source account, as long as both accounts have transaction search enabled.

\n

For retrieving data from X-Ray directly as opposed to the Transaction-Search Log group, see BatchGetTraces.

", + "smithy.api#http": { + "method": "POST", + "uri": "/StartTraceRetrieval", + "code": 200 + } + } + }, + "com.amazonaws.xray#StartTraceRetrievalRequest": { + "type": "structure", + "members": { + "TraceIds": { + "target": "com.amazonaws.xray#TraceIdListForRetrieval", + "traits": { + "smithy.api#documentation": "

\n Specify the trace IDs of the traces to be retrieved.\n

", + "smithy.api#required": {} + } + }, + "StartTime": { + "target": "com.amazonaws.xray#Timestamp", + "traits": { + "smithy.api#documentation": "

\n The start of the time range to retrieve traces. The range is inclusive, so the specified start time is included in the query. \n Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC.\n

", + "smithy.api#required": {} + } + }, + "EndTime": { + "target": "com.amazonaws.xray#Timestamp", + "traits": { + "smithy.api#documentation": "

\n The end of the time range to retrieve traces. The range is inclusive, so the specified end time is included in the query. Specified as epoch time,\n the number of seconds since January 1, 1970, 00:00:00 UTC.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.xray#StartTraceRetrievalResult": { + "type": "structure", + "members": { + "RetrievalToken": { + "target": "com.amazonaws.xray#RetrievalToken", + "traits": { + "smithy.api#documentation": "

\nRetrieval token.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.xray#String": { "type": "string" }, @@ -5668,6 +6381,23 @@ "target": "com.amazonaws.xray#AvailabilityZoneDetail" } }, + "com.amazonaws.xray#TraceFormatType": { + "type": "enum", + "members": { + "XRAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XRAY" + } + }, + "OTEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OTEL" + } + } + } + }, "com.amazonaws.xray#TraceId": { "type": "string", "traits": { @@ -5683,6 +6413,18 @@ "target": "com.amazonaws.xray#TraceId" } }, + "com.amazonaws.xray#TraceIdListForRetrieval": { + "type": "list", + "member": { + "target": "com.amazonaws.xray#TraceId" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, "com.amazonaws.xray#TraceInstanceIds": { "type": "list", "member": { @@ -5701,6 +6443,40 @@ "target": "com.amazonaws.xray#ResourceARNDetail" } }, + "com.amazonaws.xray#TraceSegmentDestination": { + "type": "enum", + "members": { + "XRay": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XRay" + } + }, + "CloudWatchLogs": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CloudWatchLogs" + } + } + } + }, + "com.amazonaws.xray#TraceSegmentDestinationStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + } + } + }, "com.amazonaws.xray#TraceSegmentDocument": { "type": "string" }, @@ -5710,6 +6486,18 @@ "target": "com.amazonaws.xray#TraceSegmentDocument" } }, + "com.amazonaws.xray#TraceSpanList": { + "type": "list", + "member": { + "target": "com.amazonaws.xray#RetrievedTrace" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 + } + } + }, "com.amazonaws.xray#TraceSummary": { "type": "structure", "members": { @@ -6084,6 +6872,70 @@ "smithy.api#output": {} } }, + "com.amazonaws.xray#UpdateIndexingRule": { + "type": "operation", + "input": { + "target": "com.amazonaws.xray#UpdateIndexingRuleRequest" + }, + "output": { + "target": "com.amazonaws.xray#UpdateIndexingRuleResult" + }, + "errors": [ + { + "target": "com.amazonaws.xray#InvalidRequestException" + }, + { + "target": "com.amazonaws.xray#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.xray#ThrottledException" + } + ], + "traits": { + "smithy.api#documentation": "

\nModifies an indexing rule’s configuration.\n

\n

Indexing rules are used for determining the sampling rate for spans indexed from CloudWatch Logs. For more information, see Transaction Search.

", + "smithy.api#http": { + "method": "POST", + "uri": "/UpdateIndexingRule", + "code": 200 + } + } + }, + "com.amazonaws.xray#UpdateIndexingRuleRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.xray#String", + "traits": { + "smithy.api#documentation": "

\n Name of the indexing rule to be updated.\n

", + "smithy.api#required": {} + } + }, + "Rule": { + "target": "com.amazonaws.xray#IndexingRuleValueUpdate", + "traits": { + "smithy.api#documentation": "

\n Rule configuration to be updated.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.xray#UpdateIndexingRuleResult": { + "type": "structure", + "members": { + "IndexingRule": { + "target": "com.amazonaws.xray#IndexingRule", + "traits": { + "smithy.api#documentation": "

\n Updated indexing rule.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.xray#UpdateSamplingRule": { "type": "operation", "input": { @@ -6138,6 +6990,65 @@ "smithy.api#output": {} } }, + "com.amazonaws.xray#UpdateTraceSegmentDestination": { + "type": "operation", + "input": { + "target": "com.amazonaws.xray#UpdateTraceSegmentDestinationRequest" + }, + "output": { + "target": "com.amazonaws.xray#UpdateTraceSegmentDestinationResult" + }, + "errors": [ + { + "target": "com.amazonaws.xray#InvalidRequestException" + }, + { + "target": "com.amazonaws.xray#ThrottledException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Modifies the destination of data sent to PutTraceSegments. The Transaction Search feature requires the CloudWatchLogs destination. For more information, see Transaction Search.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/UpdateTraceSegmentDestination", + "code": 200 + } + } + }, + "com.amazonaws.xray#UpdateTraceSegmentDestinationRequest": { + "type": "structure", + "members": { + "Destination": { + "target": "com.amazonaws.xray#TraceSegmentDestination", + "traits": { + "smithy.api#documentation": "

\nThe configured destination of trace segments.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.xray#UpdateTraceSegmentDestinationResult": { + "type": "structure", + "members": { + "Destination": { + "target": "com.amazonaws.xray#TraceSegmentDestination", + "traits": { + "smithy.api#documentation": "

\n The destination of the trace segments.\n

" + } + }, + "Status": { + "target": "com.amazonaws.xray#TraceSegmentDestinationStatus", + "traits": { + "smithy.api#documentation": "

\nThe status of the update.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.xray#ValueWithServiceIds": { "type": "structure", "members": { From bc506003b1109f04225069c43c9b0744c720b2d1 Mon Sep 17 00:00:00 2001 From: AWS SDK Swift Automation Date: Thu, 21 Nov 2024 19:13:51 +0000 Subject: [PATCH 2/4] Update endpoints model --- codegen/sdk-codegen/sdk-endpoints.json | 544 ++++++++++++++++++++++--- 1 file changed, 492 insertions(+), 52 deletions(-) diff --git a/codegen/sdk-codegen/sdk-endpoints.json b/codegen/sdk-codegen/sdk-endpoints.json index e40b671e252..eb5de6f43a1 100644 --- a/codegen/sdk-codegen/sdk-endpoints.json +++ b/codegen/sdk-codegen/sdk-endpoints.json @@ -3027,11 +3027,36 @@ }, "braket" : { "endpoints" : { - "eu-north-1" : { }, - "eu-west-2" : { }, - "us-east-1" : { }, - "us-west-1" : { }, - "us-west-2" : { } + "eu-north-1" : { + "variants" : [ { + "hostname" : "braket.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "braket.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-east-1" : { + "variants" : [ { + "hostname" : "braket.us-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "braket.us-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "braket.us-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + } } }, "budgets" : { @@ -6033,36 +6058,186 @@ }, "dlm" : { "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "ap-southeast-5" : { }, - "ca-central-1" : { }, - "ca-west-1" : { }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "sa-east-1" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-west-1" : { }, - "us-west-2" : { } + "af-south-1" : { + "variants" : [ { + "hostname" : "dlm.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "dlm.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "dlm.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "dlm.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "dlm.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "dlm.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "dlm.ap-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "dlm.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "dlm.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "dlm.ap-southeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "dlm.ap-southeast-4.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-5" : { + "variants" : [ { + "hostname" : "dlm.ap-southeast-5.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "dlm.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "dlm.ca-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "dlm.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "dlm.eu-central-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "dlm.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "dlm.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "dlm.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "dlm.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "dlm.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "dlm.eu-west-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "il-central-1" : { + "variants" : [ { + "hostname" : "dlm.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "dlm.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "dlm.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "dlm.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-east-1" : { + "variants" : [ { + "hostname" : "dlm.us-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "dlm.us-east-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "dlm.us-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "dlm.us-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + } } }, "dms" : { @@ -14090,6 +14265,120 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-global" }, + "notifications" : { + "defaults" : { + "dnsSuffix" : "api.aws", + "variants" : [ { + "dnsSuffix" : "api.aws", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "af-south-1" : { + "hostname" : "notifications.af-south-1.api.aws" + }, + "ap-east-1" : { + "hostname" : "notifications.ap-east-1.api.aws" + }, + "ap-northeast-1" : { + "hostname" : "notifications.ap-northeast-1.api.aws" + }, + "ap-northeast-2" : { + "hostname" : "notifications.ap-northeast-2.api.aws" + }, + "ap-northeast-3" : { + "hostname" : "notifications.ap-northeast-3.api.aws" + }, + "ap-south-1" : { + "hostname" : "notifications.ap-south-1.api.aws" + }, + "ap-south-2" : { + "hostname" : "notifications.ap-south-2.api.aws" + }, + "ap-southeast-1" : { + "hostname" : "notifications.ap-southeast-1.api.aws" + }, + "ap-southeast-2" : { + "hostname" : "notifications.ap-southeast-2.api.aws" + }, + "ap-southeast-3" : { + "hostname" : "notifications.ap-southeast-3.api.aws" + }, + "ap-southeast-4" : { + "hostname" : "notifications.ap-southeast-4.api.aws" + }, + "ap-southeast-5" : { + "hostname" : "notifications.ap-southeast-5.api.aws" + }, + "ca-central-1" : { + "hostname" : "notifications.ca-central-1.api.aws" + }, + "ca-west-1" : { + "hostname" : "notifications.ca-west-1.api.aws" + }, + "eu-central-1" : { + "hostname" : "notifications.eu-central-1.api.aws" + }, + "eu-central-2" : { + "hostname" : "notifications.eu-central-2.api.aws" + }, + "eu-north-1" : { + "hostname" : "notifications.eu-north-1.api.aws" + }, + "eu-south-1" : { + "hostname" : "notifications.eu-south-1.api.aws" + }, + "eu-south-2" : { + "hostname" : "notifications.eu-south-2.api.aws" + }, + "eu-west-1" : { + "hostname" : "notifications.eu-west-1.api.aws" + }, + "eu-west-2" : { + "hostname" : "notifications.eu-west-2.api.aws" + }, + "eu-west-3" : { + "hostname" : "notifications.eu-west-3.api.aws" + }, + "il-central-1" : { + "hostname" : "notifications.il-central-1.api.aws" + }, + "me-central-1" : { + "hostname" : "notifications.me-central-1.api.aws" + }, + "me-south-1" : { + "hostname" : "notifications.me-south-1.api.aws" + }, + "sa-east-1" : { + "hostname" : "notifications.sa-east-1.api.aws" + }, + "us-east-1" : { + "hostname" : "notifications.us-east-1.api.aws" + }, + "us-east-2" : { + "hostname" : "notifications.us-east-2.api.aws" + }, + "us-west-1" : { + "hostname" : "notifications.us-west-1.api.aws" + }, + "us-west-2" : { + "hostname" : "notifications.us-west-2.api.aws" + } + } + }, + "notifications-contacts" : { + "endpoints" : { + "aws-global" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "notifications-contacts.us-east-1.api.aws" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-global" + }, "oam" : { "endpoints" : { "af-south-1" : { }, @@ -14995,20 +15284,90 @@ }, "polly" : { "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ca-central-1" : { }, - "eu-central-1" : { }, - "eu-north-1" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "polly.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "polly.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "polly.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "polly.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "polly.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "polly.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "polly.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "polly.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "polly.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "polly.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "polly.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "polly.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "polly.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "polly.eu-west-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -15037,30 +15396,64 @@ "deprecated" : true, "hostname" : "polly-fips.us-west-2.amazonaws.com" }, - "me-south-1" : { }, - "sa-east-1" : { }, + "me-south-1" : { + "variants" : [ { + "hostname" : "polly.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "polly.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { "hostname" : "polly-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "polly-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "polly.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "polly-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "polly-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "polly.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { "hostname" : "polly-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "polly-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "polly.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "polly-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "polly-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "polly.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -23903,6 +24296,24 @@ "cn-northwest-1" : { } } }, + "notifications" : { + "defaults" : { + "dnsSuffix" : "api.amazonwebservices.com.cn", + "variants" : [ { + "dnsSuffix" : "api.amazonwebservices.com.cn", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "cn-north-1" : { + "hostname" : "notifications.cn-north-1.api.amazonwebservices.com.cn" + }, + "cn-northwest-1" : { + "hostname" : "notifications.cn-northwest-1.api.amazonwebservices.com.cn" + } + } + }, "oam" : { "endpoints" : { "cn-north-1" : { }, @@ -23968,7 +24379,12 @@ }, "polly" : { "endpoints" : { - "cn-northwest-1" : { } + "cn-northwest-1" : { + "variants" : [ { + "hostname" : "polly.cn-northwest-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "portal.sso" : { @@ -27844,6 +28260,24 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-us-gov-global" }, + "notifications" : { + "defaults" : { + "dnsSuffix" : "api.aws", + "variants" : [ { + "dnsSuffix" : "api.aws", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "us-gov-east-1" : { + "hostname" : "notifications.us-gov-east-1.api.aws" + }, + "us-gov-west-1" : { + "hostname" : "notifications.us-gov-west-1.api.aws" + } + } + }, "oam" : { "endpoints" : { "us-gov-east-1" : { }, @@ -28019,6 +28453,12 @@ "variants" : [ { "hostname" : "polly-fips.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "polly-fips.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "polly.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] } ] } } From ba5c7baf75485ea76b6cc3f6fa228024f698baa8 Mon Sep 17 00:00:00 2001 From: AWS SDK Swift Automation Date: Thu, 21 Nov 2024 19:59:24 +0000 Subject: [PATCH 3/4] chore: Updates version to 1.0.46 --- Package.swift | 2 + Package.version | 2 +- Package.version.next | 2 +- .../Documentation.docc/AWSSDKForSwift.md | 4 + .../AWSACM/Sources/AWSACM/ACMClient.swift | 2 +- .../Sources/AWSACMPCA/ACMPCAClient.swift | 2 +- .../AWSAPIGateway/APIGatewayClient.swift | 297 +- .../Sources/AWSAPIGateway/Models.swift | 683 +- .../Sources/AWSAPIGateway/Paginators.swift | 4 +- .../ARCZonalShiftClient.swift | 2 +- .../AccessAnalyzerClient.swift | 2 +- .../Sources/AWSAccount/AccountClient.swift | 2 +- .../AWSAmp/Sources/AWSAmp/AmpClient.swift | 2 +- .../Sources/AWSAmplify/AmplifyClient.swift | 2 +- .../AmplifyBackendClient.swift | 2 +- .../AmplifyUIBuilderClient.swift | 2 +- .../ApiGatewayManagementApiClient.swift | 2 +- .../AWSApiGatewayV2/ApiGatewayV2Client.swift | 2 +- .../AWSAppConfig/AppConfigClient.swift | 2 +- .../AppConfigDataClient.swift | 2 +- .../AWSAppFabric/AppFabricClient.swift | 2 +- .../AppIntegrationsClient.swift | 2 +- .../Sources/AWSAppMesh/AppMeshClient.swift | 2 +- .../AWSAppRunner/AppRunnerClient.swift | 2 +- .../AWSAppStream/AppStreamClient.swift | 2 +- .../Sources/AWSAppSync/AppSyncClient.swift | 2 +- .../Sources/AWSAppSync/Models.swift | 3 + .../Sources/AWSAppTest/AppTestClient.swift | 2 +- .../Sources/AWSAppflow/AppflowClient.swift | 2 +- .../ApplicationAutoScalingClient.swift | 73 +- .../AWSApplicationAutoScaling/Models.swift | 711 +- .../ApplicationCostProfilerClient.swift | 2 +- .../ApplicationDiscoveryClient.swift | 2 +- .../ApplicationInsightsClient.swift | 2 +- .../ApplicationSignalsClient.swift | 2 +- .../Sources/AWSArtifact/ArtifactClient.swift | 2 +- .../Sources/AWSAthena/AthenaClient.swift | 2 +- .../AWSAuditManager/AuditManagerClient.swift | 2 +- .../AWSAutoScaling/AutoScalingClient.swift | 2 +- .../AutoScalingPlansClient.swift | 2 +- .../AWSB2bi/Sources/AWSB2bi/B2biClient.swift | 2 +- .../BCMDataExportsClient.swift | 2 +- .../Sources/AWSBackup/BackupClient.swift | 2 +- .../BackupGatewayClient.swift | 2 +- .../Sources/AWSBatch/BatchClient.swift | 2 +- .../Sources/AWSBedrock/BedrockClient.swift | 2 +- .../AWSBedrockAgent/BedrockAgentClient.swift | 2 +- .../BedrockAgentRuntimeClient.swift | 2 +- .../BedrockRuntimeClient.swift | 2 +- .../Sources/AWSBilling/BillingClient.swift | 2 +- .../BillingconductorClient.swift | 2 +- .../Sources/AWSBraket/BraketClient.swift | 2 +- .../Sources/AWSBudgets/BudgetsClient.swift | 2 +- .../Sources/AWSChatbot/ChatbotClient.swift | 2 +- .../Sources/AWSChime/ChimeClient.swift | 2 +- .../ChimeSDKIdentityClient.swift | 2 +- .../ChimeSDKMediaPipelinesClient.swift | 2 +- .../ChimeSDKMeetingsClient.swift | 2 +- .../ChimeSDKMessagingClient.swift | 2 +- .../ChimeSDKVoiceClient.swift | 2 +- .../AWSCleanRooms/CleanRoomsClient.swift | 2 +- .../AWSCleanRoomsML/CleanRoomsMLClient.swift | 2 +- .../Sources/AWSCloud9/Cloud9Client.swift | 2 +- .../AWSCloudControl/CloudControlClient.swift | 2 +- .../CloudDirectoryClient.swift | 2 +- .../CloudFormationClient.swift | 2 +- .../AWSCloudFront/CloudFrontClient.swift | 2 +- .../Sources/AWSCloudFront/Models.swift | 39 +- .../CloudFrontKeyValueStoreClient.swift | 2 +- .../Sources/AWSCloudHSM/CloudHSMClient.swift | 2 +- .../AWSCloudHSMV2/CloudHSMV2Client.swift | 2 +- .../AWSCloudSearch/CloudSearchClient.swift | 2 +- .../CloudSearchDomainClient.swift | 2 +- .../AWSCloudTrail/CloudTrailClient.swift | 534 +- .../Sources/AWSCloudTrail/Models.swift | 1174 ++- .../Sources/AWSCloudTrail/Paginators.swift | 1 + .../CloudTrailDataClient.swift | 2 +- .../AWSCloudWatch/CloudWatchClient.swift | 2 +- .../CloudWatchEventsClient.swift | 2 +- .../CloudWatchLogsClient.swift | 698 +- .../Sources/AWSCloudWatchLogs/Models.swift | 8917 +++++++++++------ .../AWSCloudWatchLogs/Paginators.swift | 31 + .../AWSCodeBuild/CodeBuildClient.swift | 2 +- .../AWSCodeCatalyst/CodeCatalystClient.swift | 2 +- .../AWSCodeCommit/CodeCommitClient.swift | 2 +- .../CodeConnectionsClient.swift | 2 +- .../AWSCodeDeploy/CodeDeployClient.swift | 2 +- .../CodeGuruProfilerClient.swift | 2 +- .../CodeGuruReviewerClient.swift | 2 +- .../CodeGuruSecurityClient.swift | 2 +- .../AWSCodePipeline/CodePipelineClient.swift | 2 +- .../CodeStarconnectionsClient.swift | 2 +- .../AWSCodeartifact/CodeartifactClient.swift | 2 +- .../CodestarnotificationsClient.swift | 2 +- .../CognitoIdentityClient.swift | 2 +- .../CognitoIdentityProviderClient.swift | 2 +- .../AWSCognitoSync/CognitoSyncClient.swift | 2 +- .../AWSComprehend/ComprehendClient.swift | 2 +- .../ComprehendMedicalClient.swift | 2 +- .../ComputeOptimizerClient.swift | 2 +- .../AWSConfigService/ConfigClient.swift | 2 +- .../Sources/AWSConnect/ConnectClient.swift | 2 +- .../ConnectCampaignsClient.swift | 2 +- .../ConnectCampaignsV2Client.swift | 2 +- .../AWSConnectCases/ConnectCasesClient.swift | 2 +- .../ConnectContactLensClient.swift | 2 +- .../ConnectParticipantClient.swift | 2 +- .../ControlCatalogClient.swift | 2 +- .../AWSControlTower/ControlTowerClient.swift | 2 +- .../AWSCostExplorer/CostExplorerClient.swift | 219 +- .../Sources/AWSCostExplorer/Models.swift | 1200 ++- .../CostOptimizationHubClient.swift | 2 +- .../CostandUsageReportClient.swift | 2 +- .../CustomerProfilesClient.swift | 2 +- .../AWSDAX/Sources/AWSDAX/DAXClient.swift | 2 +- .../AWSDLM/Sources/AWSDLM/DLMClient.swift | 2 +- .../Sources/AWSDataBrew/DataBrewClient.swift | 2 +- .../AWSDataExchange/DataExchangeClient.swift | 2 +- .../AWSDataPipeline/DataPipelineClient.swift | 2 +- .../Sources/AWSDataSync/DataSyncClient.swift | 2 +- .../Sources/AWSDataZone/DataZoneClient.swift | 2 +- .../DatabaseMigrationClient.swift | 2 +- .../Sources/AWSDeadline/DeadlineClient.swift | 2 +- .../AWSDetective/DetectiveClient.swift | 2 +- .../AWSDevOpsGuru/DevOpsGuruClient.swift | 2 +- .../AWSDeviceFarm/DeviceFarmClient.swift | 2 +- .../DirectConnectClient.swift | 2 +- .../AWSDirectoryService/DirectoryClient.swift | 2 +- .../DirectoryServiceDataClient.swift | 2 +- .../Sources/AWSDocDB/DocDBClient.swift | 2 +- .../AWSDocDBElastic/DocDBElasticClient.swift | 2 +- .../AWSDrs/Sources/AWSDrs/DrsClient.swift | 2 +- .../Sources/AWSDynamoDB/DynamoDBClient.swift | 2 +- .../DynamoDBStreamsClient.swift | 2 +- .../AWSEBS/Sources/AWSEBS/EBSClient.swift | 2 +- .../AWSEC2/Sources/AWSEC2/EC2Client.swift | 225 +- .../AWSEC2/Sources/AWSEC2/Models.swift | 816 +- .../AWSEC2/Sources/AWSEC2/Paginators.swift | 66 + .../EC2InstanceConnectClient.swift | 2 +- .../AWSECR/Sources/AWSECR/ECRClient.swift | 2 +- .../AWSECRPUBLIC/ECRPUBLICClient.swift | 2 +- .../AWSECS/Sources/AWSECS/ECSClient.swift | 2 +- .../AWSEFS/Sources/AWSEFS/EFSClient.swift | 2 +- .../AWSEKS/Sources/AWSEKS/EKSClient.swift | 2 +- .../Sources/AWSEKSAuth/EKSAuthClient.swift | 2 +- .../AWSEMR/Sources/AWSEMR/EMRClient.swift | 2 +- .../EMRServerlessClient.swift | 2 +- .../EMRcontainersClient.swift | 2 +- .../AWSElastiCache/ElastiCacheClient.swift | 64 +- .../Sources/AWSElastiCache/Models.swift | 90 +- .../ElasticBeanstalkClient.swift | 2 +- .../ElasticInferenceClient.swift | 2 +- .../ElasticLoadBalancingClient.swift | 2 +- .../ElasticLoadBalancingv2Client.swift | 2 +- .../AWSElasticLoadBalancingv2/Models.swift | 45 +- .../ElasticTranscoderClient.swift | 2 +- .../ElasticsearchClient.swift | 2 +- .../EntityResolutionClient.swift | 2 +- .../AWSEventBridge/EventBridgeClient.swift | 2 +- .../AWSEvidently/EvidentlyClient.swift | 2 +- .../AWSFMS/Sources/AWSFMS/FMSClient.swift | 2 +- .../AWSFSx/Sources/AWSFSx/FSxClient.swift | 2 +- .../Sources/AWSFinspace/FinspaceClient.swift | 2 +- .../AWSFinspacedata/FinspacedataClient.swift | 2 +- .../Sources/AWSFirehose/FirehoseClient.swift | 2 +- .../AWSFis/Sources/AWSFis/FisClient.swift | 2 +- .../Sources/AWSForecast/ForecastClient.swift | 2 +- .../ForecastqueryClient.swift | 2 +- .../FraudDetectorClient.swift | 2 +- .../Sources/AWSFreeTier/FreeTierClient.swift | 2 +- .../Sources/AWSGameLift/GameLiftClient.swift | 2 +- .../Sources/AWSGeoMaps/GeoMapsClient.swift | 2 +- .../AWSGeoPlaces/GeoPlacesClient.swift | 2 +- .../AWSGeoRoutes/GeoRoutesClient.swift | 2 +- .../Sources/AWSGlacier/GlacierClient.swift | 2 +- .../GlobalAcceleratorClient.swift | 2 +- .../AWSGlue/Sources/AWSGlue/GlueClient.swift | 2 +- .../Sources/AWSGrafana/GrafanaClient.swift | 2 +- .../AWSGreengrass/GreengrassClient.swift | 2 +- .../AWSGreengrassV2/GreengrassV2Client.swift | 2 +- .../GroundStationClient.swift | 2 +- .../AWSGuardDuty/GuardDutyClient.swift | 2 +- .../Sources/AWSHealth/HealthClient.swift | 8 +- .../AWSHealth/Sources/AWSHealth/Models.swift | 23 +- .../AWSHealthLake/HealthLakeClient.swift | 2 +- .../AWSIAM/Sources/AWSIAM/IAMClient.swift | 2 +- .../AWSIVSRealTime/IVSRealTimeClient.swift | 2 +- .../IdentitystoreClient.swift | 2 +- .../AWSImagebuilder/ImagebuilderClient.swift | 2 +- .../AWSInspector/InspectorClient.swift | 2 +- .../AWSInspector2/Inspector2Client.swift | 2 +- .../InspectorScanClient.swift | 2 +- .../InternetMonitorClient.swift | 2 +- .../AWSIoT/Sources/AWSIoT/IoTClient.swift | 590 +- .../AWSIoT/Sources/AWSIoT/Models.swift | 1336 ++- .../AWSIoT/Sources/AWSIoT/Paginators.swift | 70 + .../IoT1ClickDevicesClient.swift | 2 +- .../IoT1ClickProjectsClient.swift | 2 +- .../AWSIoTAnalytics/IoTAnalyticsClient.swift | 2 +- .../AWSIoTDataPlane/IoTDataPlaneClient.swift | 2 +- .../AWSIoTEvents/IoTEventsClient.swift | 2 +- .../IoTEventsDataClient.swift | 2 +- .../AWSIoTFleetHub/IoTFleetHubClient.swift | 2 +- .../AWSIoTFleetWise/IoTFleetWiseClient.swift | 398 +- .../Sources/AWSIoTFleetWise/Models.swift | 1522 ++- .../IoTJobsDataPlaneClient.swift | 94 +- .../Sources/AWSIoTJobsDataPlane/Models.swift | 335 +- .../IoTSecureTunnelingClient.swift | 2 +- .../AWSIoTSiteWise/IoTSiteWiseClient.swift | 2 +- .../IoTThingsGraphClient.swift | 2 +- .../AWSIoTTwinMaker/IoTTwinMakerClient.swift | 2 +- .../AWSIoTWireless/IoTWirelessClient.swift | 2 +- .../IotDeviceAdvisorClient.swift | 2 +- .../AWSIvs/Sources/AWSIvs/IvsClient.swift | 2 +- .../Sources/AWSIvschat/IvschatClient.swift | 2 +- .../AWSKMS/Sources/AWSKMS/KMSClient.swift | 2 +- .../Sources/AWSKafka/KafkaClient.swift | 2 +- .../AWSKafkaConnect/KafkaConnectClient.swift | 2 +- .../Sources/AWSKendra/KendraClient.swift | 2 +- .../KendraRankingClient.swift | 2 +- .../AWSKeyspaces/KeyspacesClient.swift | 2 +- .../Sources/AWSKinesis/KinesisClient.swift | 2 +- .../KinesisAnalyticsClient.swift | 2 +- .../KinesisAnalyticsV2Client.swift | 2 +- .../AWSKinesisVideo/KinesisVideoClient.swift | 2 +- .../KinesisVideoArchivedMediaClient.swift | 2 +- .../KinesisVideoMediaClient.swift | 2 +- .../KinesisVideoSignalingClient.swift | 2 +- .../KinesisVideoWebRTCStorageClient.swift | 2 +- .../LakeFormationClient.swift | 2 +- .../Sources/AWSLambda/LambdaClient.swift | 22 +- .../AWSLambda/Sources/AWSLambda/Models.swift | 126 +- .../AWSLaunchWizard/LaunchWizardClient.swift | 2 +- .../LexModelBuildingClient.swift | 2 +- .../AWSLexModelsV2/LexModelsV2Client.swift | 2 +- .../LexRuntimeClient.swift | 2 +- .../AWSLexRuntimeV2/LexRuntimeV2Client.swift | 2 +- .../LicenseManagerClient.swift | 2 +- ...censeManagerLinuxSubscriptionsClient.swift | 2 +- ...icenseManagerUserSubscriptionsClient.swift | 2 +- .../AWSLightsail/LightsailClient.swift | 2 +- .../Sources/AWSLocation/LocationClient.swift | 2 +- .../LookoutEquipmentClient.swift | 2 +- .../LookoutMetricsClient.swift | 2 +- .../LookoutVisionClient.swift | 2 +- .../AWSM2/Sources/AWSM2/M2Client.swift | 2 +- .../Sources/AWSMTurk/MTurkClient.swift | 2 +- .../AWSMWAA/Sources/AWSMWAA/MWAAClient.swift | 2 +- .../MachineLearningClient.swift | 2 +- .../Sources/AWSMacie2/Macie2Client.swift | 2 +- .../AWSMailManager/MailManagerClient.swift | 2 +- .../ManagedBlockchainClient.swift | 2 +- .../ManagedBlockchainQueryClient.swift | 2 +- .../MarketplaceAgreementClient.swift | 2 +- .../MarketplaceCatalogClient.swift | 2 +- .../MarketplaceCommerceAnalyticsClient.swift | 2 +- .../MarketplaceDeploymentClient.swift | 2 +- .../MarketplaceEntitlementClient.swift | 2 +- .../MarketplaceMeteringClient.swift | 2 +- .../MarketplaceReportingClient.swift | 2 +- .../AWSMediaConnect/MediaConnectClient.swift | 2 +- .../AWSMediaConvert/MediaConvertClient.swift | 2 +- .../AWSMediaLive/MediaLiveClient.swift | 2 +- .../AWSMediaPackage/MediaPackageClient.swift | 2 +- .../MediaPackageV2Client.swift | 2 +- .../MediaPackageVodClient.swift | 2 +- .../AWSMediaStore/MediaStoreClient.swift | 2 +- .../MediaStoreDataClient.swift | 2 +- .../AWSMediaTailor/MediaTailorClient.swift | 2 +- .../MedicalImagingClient.swift | 2 +- .../Sources/AWSMemoryDB/MemoryDBClient.swift | 2 +- .../AWSMgn/Sources/AWSMgn/MgnClient.swift | 2 +- .../AWSMigrationHub/MigrationHubClient.swift | 2 +- .../MigrationHubConfigClient.swift | 2 +- .../MigrationHubOrchestratorClient.swift | 2 +- .../MigrationHubRefactorSpacesClient.swift | 2 +- .../MigrationHubStrategyClient.swift | 2 +- .../AWSMq/Sources/AWSMq/MqClient.swift | 2 +- .../Sources/AWSNeptune/NeptuneClient.swift | 2 +- .../AWSNeptuneGraph/NeptuneGraphClient.swift | 2 +- .../AWSNeptunedata/NeptunedataClient.swift | 2 +- .../NetworkFirewallClient.swift | 2 +- .../NetworkManagerClient.swift | 2 +- .../NetworkMonitorClient.swift | 2 +- .../AWSNotifications/Package.swift.txt | 96 + .../AWSNotifications/AuthSchemeResolver.swift | 56 + .../Sources/AWSNotifications/Endpoints.swift | 68 + .../Sources/AWSNotifications/Models.swift | 3845 +++++++ .../NotificationsClient.swift | 1707 ++++ .../Sources/AWSNotifications/Plugins.swift | 82 + .../EndpointResolverTest.swift | 342 + .../Package.swift.txt | 96 + .../AuthSchemeResolver.swift | 56 + .../AWSNotificationsContacts/Endpoints.swift | 68 + .../AWSNotificationsContacts/Models.swift | 1147 +++ .../NotificationsContactsClient.swift | 838 ++ .../AWSNotificationsContacts/Plugins.swift | 82 + .../EndpointResolverTest.swift | 440 + .../AWSOAM/Sources/AWSOAM/OAMClient.swift | 2 +- .../AWSOSIS/Sources/AWSOSIS/OSISClient.swift | 2 +- .../Sources/AWSOmics/OmicsClient.swift | 2 +- .../AWSOpenSearch/OpenSearchClient.swift | 2 +- .../OpenSearchServerlessClient.swift | 2 +- .../Sources/AWSOpsWorks/OpsWorksClient.swift | 2 +- .../AWSOpsWorksCM/OpsWorksCMClient.swift | 2 +- .../OrganizationsClient.swift | 2 +- .../Sources/AWSOutposts/OutpostsClient.swift | 2 +- .../AWSPCS/Sources/AWSPCS/PCSClient.swift | 2 +- .../AWSPI/Sources/AWSPI/PIClient.swift | 2 +- .../Sources/AWSPanorama/PanoramaClient.swift | 2 +- .../PartnerCentralSellingClient.swift | 2 +- .../PaymentCryptographyClient.swift | 2 +- .../PaymentCryptographyDataClient.swift | 2 +- .../PcaConnectorAdClient.swift | 2 +- .../PcaConnectorScepClient.swift | 2 +- .../AWSPersonalize/PersonalizeClient.swift | 2 +- .../PersonalizeEventsClient.swift | 2 +- .../PersonalizeRuntimeClient.swift | 2 +- .../Sources/AWSPinpoint/PinpointClient.swift | 2 +- .../PinpointEmailClient.swift | 2 +- .../PinpointSMSVoiceClient.swift | 2 +- .../PinpointSMSVoiceV2Client.swift | 2 +- .../Sources/AWSPipes/PipesClient.swift | 2 +- .../Sources/AWSPolly/PollyClient.swift | 2 +- .../Sources/AWSPricing/PricingClient.swift | 2 +- .../PrivateNetworksClient.swift | 2 +- .../Sources/AWSProton/ProtonClient.swift | 2 +- .../Sources/AWSQApps/QAppsClient.swift | 2 +- .../AWSQBusiness/QBusinessClient.swift | 2 +- .../Sources/AWSQConnect/QConnectClient.swift | 2 +- .../AWSQLDB/Sources/AWSQLDB/QLDBClient.swift | 2 +- .../AWSQLDBSession/QLDBSessionClient.swift | 2 +- .../AWSQuickSight/QuickSightClient.swift | 2 +- .../AWSRAM/Sources/AWSRAM/RAMClient.swift | 2 +- .../AWSRDS/Sources/AWSRDS/RDSClient.swift | 2 +- .../Sources/AWSRDSData/RDSDataClient.swift | 2 +- .../AWSRUM/Sources/AWSRUM/RUMClient.swift | 2 +- .../AWSRbin/Sources/AWSRbin/RbinClient.swift | 2 +- .../Sources/AWSRedshift/RedshiftClient.swift | 2 +- .../AWSRedshiftData/RedshiftDataClient.swift | 2 +- .../RedshiftServerlessClient.swift | 2 +- .../AWSRekognition/RekognitionClient.swift | 2 +- .../AWSRepostspace/RepostspaceClient.swift | 2 +- .../Sources/AWSResiliencehub/Models.swift | 522 +- .../Sources/AWSResiliencehub/Paginators.swift | 34 + .../ResiliencehubClient.swift | 226 +- .../ResourceExplorer2Client.swift | 2 +- .../ResourceGroupsClient.swift | 2 +- .../ResourceGroupsTaggingAPIClient.swift | 2 +- .../AWSRoboMaker/RoboMakerClient.swift | 2 +- .../RolesAnywhereClient.swift | 2 +- .../Sources/AWSRoute53/Route53Client.swift | 2 +- .../Route53DomainsClient.swift | 2 +- .../Route53ProfilesClient.swift | 2 +- .../Route53RecoveryClusterClient.swift | 2 +- .../Route53RecoveryControlConfigClient.swift | 2 +- .../Route53RecoveryReadinessClient.swift | 2 +- .../Route53ResolverClient.swift | 2 +- .../Services/AWSS3/Sources/AWSS3/Models.swift | 211 +- .../AWSS3/Sources/AWSS3/S3Client.swift | 200 +- .../AWSS3Control/S3ControlClient.swift | 2 +- .../AWSS3Outposts/S3OutpostsClient.swift | 2 +- .../AWSSES/Sources/AWSSES/SESClient.swift | 2 +- .../Sources/AWSSESv2/SESv2Client.swift | 2 +- .../AWSSFN/Sources/AWSSFN/SFNClient.swift | 2 +- .../AWSSMS/Sources/AWSSMS/SMSClient.swift | 2 +- .../AWSSNS/Sources/AWSSNS/SNSClient.swift | 2 +- .../AWSSQS/Sources/AWSSQS/SQSClient.swift | 2 +- .../AWSSSM/Sources/AWSSSM/Models.swift | 1330 ++- .../AWSSSM/Sources/AWSSSM/Paginators.swift | 65 + .../AWSSSM/Sources/AWSSSM/SSMClient.swift | 321 +- .../AWSSSMContacts/SSMContactsClient.swift | 2 +- .../AWSSSMIncidents/SSMIncidentsClient.swift | 2 +- .../Sources/AWSSSMQuickSetup/Models.swift | 283 +- .../Sources/AWSSSMQuickSetup/Paginators.swift | 33 + .../SSMQuickSetupClient.swift | 146 +- .../AWSSSO/Sources/AWSSSO/SSOClient.swift | 2 +- .../Sources/AWSSSOAdmin/SSOAdminClient.swift | 2 +- .../Sources/AWSSSOOIDC/SSOOIDCClient.swift | 2 +- .../AWSSTS/Sources/AWSSTS/STSClient.swift | 2 +- .../AWSSWF/Sources/AWSSWF/SWFClient.swift | 2 +- .../AWSSageMaker/SageMakerClient.swift | 2 +- .../SageMakerA2IRuntimeClient.swift | 2 +- .../SageMakerFeatureStoreRuntimeClient.swift | 2 +- .../SageMakerGeospatialClient.swift | 2 +- .../SageMakerMetricsClient.swift | 2 +- .../SageMakerRuntimeClient.swift | 2 +- .../SagemakerEdgeClient.swift | 2 +- .../AWSSavingsplans/SavingsplansClient.swift | 2 +- .../AWSScheduler/SchedulerClient.swift | 2 +- .../Sources/AWSSchemas/SchemasClient.swift | 2 +- .../SecretsManagerClient.swift | 2 +- .../AWSSecurityHub/SecurityHubClient.swift | 2 +- .../AWSSecurityLake/SecurityLakeClient.swift | 2 +- ...erverlessApplicationRepositoryClient.swift | 2 +- .../ServiceCatalogClient.swift | 2 +- .../ServiceCatalogAppRegistryClient.swift | 2 +- .../ServiceDiscoveryClient.swift | 2 +- .../ServiceQuotasClient.swift | 2 +- .../Sources/AWSShield/ShieldClient.swift | 2 +- .../Sources/AWSSigner/SignerClient.swift | 2 +- .../SimSpaceWeaverClient.swift | 2 +- .../SnowDeviceManagementClient.swift | 2 +- .../Sources/AWSSnowball/SnowballClient.swift | 2 +- .../SocialMessagingClient.swift | 2 +- .../Sources/AWSSsmSap/SsmSapClient.swift | 2 +- .../StorageGatewayClient.swift | 2 +- .../AWSSupplyChain/SupplyChainClient.swift | 2 +- .../Sources/AWSSupport/SupportClient.swift | 2 +- .../AWSSupportApp/SupportAppClient.swift | 2 +- .../AWSSynthetics/SyntheticsClient.swift | 2 +- .../AWSTaxSettings/TaxSettingsClient.swift | 2 +- .../Sources/AWSTextract/TextractClient.swift | 2 +- .../TimestreamInfluxDBClient.swift | 2 +- .../TimestreamQueryClient.swift | 2 +- .../TimestreamWriteClient.swift | 2 +- .../AWSTnb/Sources/AWSTnb/TnbClient.swift | 2 +- .../AWSTranscribe/TranscribeClient.swift | 2 +- .../TranscribeStreamingClient.swift | 2 +- .../Sources/AWSTransfer/TransferClient.swift | 2 +- .../AWSTranslate/TranslateClient.swift | 2 +- .../TrustedAdvisorClient.swift | 2 +- .../AWSVPCLattice/VPCLatticeClient.swift | 2 +- .../VerifiedPermissionsClient.swift | 2 +- .../Sources/AWSVoiceID/VoiceIDClient.swift | 2 +- .../AWSWAF/Sources/AWSWAF/WAFClient.swift | 2 +- .../AWSWAFRegional/WAFRegionalClient.swift | 2 +- .../Sources/AWSWAFV2/WAFV2Client.swift | 2 +- .../WellArchitectedClient.swift | 2 +- .../Sources/AWSWisdom/WisdomClient.swift | 2 +- .../Sources/AWSWorkDocs/WorkDocsClient.swift | 2 +- .../Sources/AWSWorkMail/WorkMailClient.swift | 2 +- .../WorkMailMessageFlowClient.swift | 2 +- .../AWSWorkSpaces/WorkSpacesClient.swift | 2 +- .../WorkSpacesThinClientClient.swift | 2 +- .../WorkSpacesWebClient.swift | 2 +- .../AWSXRay/Sources/AWSXRay/Models.swift | 1828 +++- .../AWSXRay/Sources/AWSXRay/XRayClient.swift | 575 +- 438 files changed, 30886 insertions(+), 4985 deletions(-) create mode 100644 Sources/Services/AWSNotifications/Package.swift.txt create mode 100644 Sources/Services/AWSNotifications/Sources/AWSNotifications/AuthSchemeResolver.swift create mode 100644 Sources/Services/AWSNotifications/Sources/AWSNotifications/Endpoints.swift create mode 100644 Sources/Services/AWSNotifications/Sources/AWSNotifications/Models.swift create mode 100644 Sources/Services/AWSNotifications/Sources/AWSNotifications/NotificationsClient.swift create mode 100644 Sources/Services/AWSNotifications/Sources/AWSNotifications/Plugins.swift create mode 100644 Sources/Services/AWSNotifications/Tests/AWSNotificationsTests/EndpointResolverTest.swift create mode 100644 Sources/Services/AWSNotificationsContacts/Package.swift.txt create mode 100644 Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/AuthSchemeResolver.swift create mode 100644 Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Endpoints.swift create mode 100644 Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Models.swift create mode 100644 Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/NotificationsContactsClient.swift create mode 100644 Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Plugins.swift create mode 100644 Sources/Services/AWSNotificationsContacts/Tests/AWSNotificationsContactsTests/EndpointResolverTest.swift diff --git a/Package.swift b/Package.swift index 44c3b0cbaf6..7945167466f 100644 --- a/Package.swift +++ b/Package.swift @@ -281,6 +281,8 @@ let serviceTargets: [String] = [ "AWSNetworkFirewall", "AWSNetworkManager", "AWSNetworkMonitor", + "AWSNotifications", + "AWSNotificationsContacts", "AWSOAM", "AWSOSIS", "AWSOmics", diff --git a/Package.version b/Package.version index 36f23e1c6a2..9e6b608e28a 100644 --- a/Package.version +++ b/Package.version @@ -1 +1 @@ -1.0.45 \ No newline at end of file +1.0.46 \ No newline at end of file diff --git a/Package.version.next b/Package.version.next index 9e6b608e28a..de0434d0b35 100644 --- a/Package.version.next +++ b/Package.version.next @@ -1 +1 @@ -1.0.46 \ No newline at end of file +1.0.47 \ No newline at end of file diff --git a/Sources/Core/AWSSDKForSwift/Documentation.docc/AWSSDKForSwift.md b/Sources/Core/AWSSDKForSwift/Documentation.docc/AWSSDKForSwift.md index 265b414d4e9..a519223e552 100644 --- a/Sources/Core/AWSSDKForSwift/Documentation.docc/AWSSDKForSwift.md +++ b/Sources/Core/AWSSDKForSwift/Documentation.docc/AWSSDKForSwift.md @@ -593,6 +593,10 @@ This SDK is open-source. Code is available on Github [here](https://github.com/ [AWSNetworkMonitor](../../../../../swift/api/awsnetworkmonitor/latest) +[AWSNotifications](../../../../../swift/api/awsnotifications/latest) + +[AWSNotificationsContacts](../../../../../swift/api/awsnotificationscontacts/latest) + [AWSOAM](../../../../../swift/api/awsoam/latest) [AWSOSIS](../../../../../swift/api/awsosis/latest) diff --git a/Sources/Services/AWSACM/Sources/AWSACM/ACMClient.swift b/Sources/Services/AWSACM/Sources/AWSACM/ACMClient.swift index 7cf64d46ac6..ceafeddba53 100644 --- a/Sources/Services/AWSACM/Sources/AWSACM/ACMClient.swift +++ b/Sources/Services/AWSACM/Sources/AWSACM/ACMClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ACMClient: ClientRuntime.Client { public static let clientName = "ACMClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ACMClient.ACMClientConfiguration let serviceName = "ACM" diff --git a/Sources/Services/AWSACMPCA/Sources/AWSACMPCA/ACMPCAClient.swift b/Sources/Services/AWSACMPCA/Sources/AWSACMPCA/ACMPCAClient.swift index 2c3164c4dcb..4d48e9b3707 100644 --- a/Sources/Services/AWSACMPCA/Sources/AWSACMPCA/ACMPCAClient.swift +++ b/Sources/Services/AWSACMPCA/Sources/AWSACMPCA/ACMPCAClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ACMPCAClient: ClientRuntime.Client { public static let clientName = "ACMPCAClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ACMPCAClient.ACMPCAClientConfiguration let serviceName = "ACM PCA" diff --git a/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/APIGatewayClient.swift b/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/APIGatewayClient.swift index 5d487ec691e..a249d2c537a 100644 --- a/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/APIGatewayClient.swift +++ b/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/APIGatewayClient.swift @@ -68,7 +68,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class APIGatewayClient: ClientRuntime.Client { public static let clientName = "APIGatewayClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: APIGatewayClient.APIGatewayClientConfiguration let serviceName = "API Gateway" @@ -394,6 +394,7 @@ extension APIGatewayClient { } builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateBasePathMappingInput.urlPathProvider(_:))) builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(CreateBasePathMappingInput.queryItemProvider(_:))) builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateBasePathMappingInput.write(value:to:))) builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) @@ -724,6 +725,80 @@ extension APIGatewayClient { return try await op.execute(input: input) } + /// Performs the `CreateDomainNameAccessAssociation` operation on the `BackplaneControlService` service. + /// + /// Creates a domain name access association resource between an access association source and a private custom domain name. + /// + /// - Parameter CreateDomainNameAccessAssociationInput : [no documentation found] + /// + /// - Returns: `CreateDomainNameAccessAssociationOutput` : Represents a domain name access association between an access association source and a private custom domain name. With a domain name access association, an access association source can invoke a private custom domain name while isolated from the public internet. + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `BadRequestException` : The submitted request is not valid, for example, the input is incomplete or incorrect. See the accompanying error message for details. + /// - `ConflictException` : The request configuration has conflicts. For details, see the accompanying error message. + /// - `LimitExceededException` : The request exceeded the rate limit. Retry after the specified time period. + /// - `TooManyRequestsException` : The request has reached its throttling limit. Retry after the specified time period. + /// - `UnauthorizedException` : The request is denied because the caller has insufficient permissions. + public func createDomainNameAccessAssociation(input: CreateDomainNameAccessAssociationInput) async throws -> CreateDomainNameAccessAssociationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createDomainNameAccessAssociation") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "apigateway") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateDomainNameAccessAssociationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateDomainNameAccessAssociationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateDomainNameAccessAssociationOutput.httpOutput(from:), CreateDomainNameAccessAssociationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: APIGatewayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(ClientRuntime.MutateHeadersMiddleware(additional: ["Accept": "application/json"])) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "APIGateway") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateDomainNameAccessAssociation") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `CreateModel` operation on the `BackplaneControlService` service. /// /// Adds a new Model resource to an existing RestApi resource. @@ -1508,6 +1583,7 @@ extension APIGatewayClient { } builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteBasePathMappingInput.urlPathProvider(_:))) builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(DeleteBasePathMappingInput.queryItemProvider(_:))) builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteBasePathMappingOutput.httpOutput(from:), DeleteBasePathMappingOutputError.httpError(from:))) builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) @@ -1864,6 +1940,7 @@ extension APIGatewayClient { } builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteDomainNameInput.urlPathProvider(_:))) builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(DeleteDomainNameInput.queryItemProvider(_:))) builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteDomainNameOutput.httpOutput(from:), DeleteDomainNameOutputError.httpError(from:))) builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) @@ -1891,6 +1968,77 @@ extension APIGatewayClient { return try await op.execute(input: input) } + /// Performs the `DeleteDomainNameAccessAssociation` operation on the `BackplaneControlService` service. + /// + /// Deletes the DomainNameAccessAssociation resource. Only the AWS account that created the DomainNameAccessAssociation resource can delete it. To stop an access association source in another AWS account from accessing your private custom domain name, use the RejectDomainNameAccessAssociation operation. + /// + /// - Parameter DeleteDomainNameAccessAssociationInput : [no documentation found] + /// + /// - Returns: `DeleteDomainNameAccessAssociationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `BadRequestException` : The submitted request is not valid, for example, the input is incomplete or incorrect. See the accompanying error message for details. + /// - `ConflictException` : The request configuration has conflicts. For details, see the accompanying error message. + /// - `NotFoundException` : The requested resource is not found. Make sure that the request URI is correct. + /// - `TooManyRequestsException` : The request has reached its throttling limit. Retry after the specified time period. + /// - `UnauthorizedException` : The request is denied because the caller has insufficient permissions. + public func deleteDomainNameAccessAssociation(input: DeleteDomainNameAccessAssociationInput) async throws -> DeleteDomainNameAccessAssociationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteDomainNameAccessAssociation") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "apigateway") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteDomainNameAccessAssociationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteDomainNameAccessAssociationOutput.httpOutput(from:), DeleteDomainNameAccessAssociationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: APIGatewayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(ClientRuntime.MutateHeadersMiddleware(additional: ["Accept": "application/json"])) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "APIGateway") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteDomainNameAccessAssociation") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DeleteGatewayResponse` operation on the `BackplaneControlService` service. /// /// Clears any customization of a GatewayResponse of a specified response type on the given RestApi and resets it with the default settings. @@ -3428,6 +3576,7 @@ extension APIGatewayClient { } builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetBasePathMappingInput.urlPathProvider(_:))) builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(GetBasePathMappingInput.queryItemProvider(_:))) builder.deserialize(ClientRuntime.DeserializeMiddleware(GetBasePathMappingOutput.httpOutput(from:), GetBasePathMappingOutputError.httpError(from:))) builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) @@ -4135,6 +4284,7 @@ extension APIGatewayClient { } builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetDomainNameInput.urlPathProvider(_:))) builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(GetDomainNameInput.queryItemProvider(_:))) builder.deserialize(ClientRuntime.DeserializeMiddleware(GetDomainNameOutput.httpOutput(from:), GetDomainNameOutputError.httpError(from:))) builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) @@ -4162,6 +4312,77 @@ extension APIGatewayClient { return try await op.execute(input: input) } + /// Performs the `GetDomainNameAccessAssociations` operation on the `BackplaneControlService` service. + /// + /// Represents a collection on DomainNameAccessAssociations resources. + /// + /// - Parameter GetDomainNameAccessAssociationsInput : [no documentation found] + /// + /// - Returns: `GetDomainNameAccessAssociationsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `BadRequestException` : The submitted request is not valid, for example, the input is incomplete or incorrect. See the accompanying error message for details. + /// - `NotFoundException` : The requested resource is not found. Make sure that the request URI is correct. + /// - `TooManyRequestsException` : The request has reached its throttling limit. Retry after the specified time period. + /// - `UnauthorizedException` : The request is denied because the caller has insufficient permissions. + public func getDomainNameAccessAssociations(input: GetDomainNameAccessAssociationsInput) async throws -> GetDomainNameAccessAssociationsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getDomainNameAccessAssociations") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "apigateway") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetDomainNameAccessAssociationsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(GetDomainNameAccessAssociationsInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetDomainNameAccessAssociationsOutput.httpOutput(from:), GetDomainNameAccessAssociationsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: APIGatewayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(ClientRuntime.MutateHeadersMiddleware(additional: ["Accept": "application/json"])) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "APIGateway") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetDomainNameAccessAssociations") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `GetDomainNames` operation on the `BackplaneControlService` service. /// /// Represents a collection of DomainName resources. @@ -6964,6 +7185,78 @@ extension APIGatewayClient { return try await op.execute(input: input) } + /// Performs the `RejectDomainNameAccessAssociation` operation on the `BackplaneControlService` service. + /// + /// Rejects a domain name access association with a private custom domain name. To reject a domain name access association with an access association source in another AWS account, use this operation. To remove a domain name access association with an access association source in your own account, use the DeleteDomainNameAccessAssociation operation. + /// + /// - Parameter RejectDomainNameAccessAssociationInput : [no documentation found] + /// + /// - Returns: `RejectDomainNameAccessAssociationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `BadRequestException` : The submitted request is not valid, for example, the input is incomplete or incorrect. See the accompanying error message for details. + /// - `ConflictException` : The request configuration has conflicts. For details, see the accompanying error message. + /// - `NotFoundException` : The requested resource is not found. Make sure that the request URI is correct. + /// - `TooManyRequestsException` : The request has reached its throttling limit. Retry after the specified time period. + /// - `UnauthorizedException` : The request is denied because the caller has insufficient permissions. + public func rejectDomainNameAccessAssociation(input: RejectDomainNameAccessAssociationInput) async throws -> RejectDomainNameAccessAssociationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "rejectDomainNameAccessAssociation") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "apigateway") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(RejectDomainNameAccessAssociationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(RejectDomainNameAccessAssociationInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(RejectDomainNameAccessAssociationOutput.httpOutput(from:), RejectDomainNameAccessAssociationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: APIGatewayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(ClientRuntime.MutateHeadersMiddleware(additional: ["Accept": "application/json"])) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "APIGateway") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "RejectDomainNameAccessAssociation") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `TagResource` operation on the `BackplaneControlService` service. /// /// Adds or updates a tag on a given resource. @@ -7528,6 +7821,7 @@ extension APIGatewayClient { } builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateBasePathMappingInput.urlPathProvider(_:))) builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(UpdateBasePathMappingInput.queryItemProvider(_:))) builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateBasePathMappingInput.write(value:to:))) builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) @@ -7904,6 +8198,7 @@ extension APIGatewayClient { } builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateDomainNameInput.urlPathProvider(_:))) builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(UpdateDomainNameInput.queryItemProvider(_:))) builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateDomainNameInput.write(value:to:))) builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) diff --git a/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/Models.swift b/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/Models.swift index 3fbe8689adf..8942fcd0e27 100644 --- a/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/Models.swift +++ b/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/Models.swift @@ -70,6 +70,11 @@ public struct DeleteDocumentationVersionOutput: Swift.Sendable { public init() { } } +public struct DeleteDomainNameAccessAssociationOutput: Swift.Sendable { + + public init() { } +} + public struct DeleteDomainNameOutput: Swift.Sendable { public init() { } @@ -150,6 +155,11 @@ public struct FlushStageCacheOutput: Swift.Sendable { public init() { } } +public struct RejectDomainNameAccessAssociationOutput: Swift.Sendable { + + public init() { } +} + public struct TagResourceOutput: Swift.Sendable { public init() { } @@ -160,6 +170,32 @@ public struct UntagResourceOutput: Swift.Sendable { public init() { } } +extension APIGatewayClientTypes { + + public enum AccessAssociationSourceType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case vpce + case sdkUnknown(Swift.String) + + public static var allCases: [AccessAssociationSourceType] { + return [ + .vpce + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .vpce: return "VPCE" + case let .sdkUnknown(s): return s + } + } + } +} + extension APIGatewayClientTypes { /// Access log settings, including the access log format and access log destination ARN. @@ -784,6 +820,8 @@ public struct CreateBasePathMappingInput: Swift.Sendable { /// The domain name of the BasePathMapping resource to create. /// This member is required. public var domainName: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? /// The string identifier of the associated RestApi. /// This member is required. public var restApiId: Swift.String? @@ -793,12 +831,14 @@ public struct CreateBasePathMappingInput: Swift.Sendable { public init( basePath: Swift.String? = nil, domainName: Swift.String? = nil, + domainNameId: Swift.String? = nil, restApiId: Swift.String? = nil, stage: Swift.String? = nil ) { self.basePath = basePath self.domainName = domainName + self.domainNameId = domainNameId self.restApiId = restApiId self.stage = stage } @@ -1304,13 +1344,13 @@ extension APIGatewayClientTypes { /// A request to create a new domain name. public struct CreateDomainNameInput: Swift.Sendable { - /// The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint for this domain name. Certificate Manager is the only supported source. + /// The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. Certificate Manager is the only supported source. public var certificateArn: Swift.String? - /// [Deprecated] The body of the server certificate that will be used by edge-optimized endpoint for this domain name provided by your certificate authority. + /// [Deprecated] The body of the server certificate that will be used by edge-optimized endpoint or private endpoint for this domain name provided by your certificate authority. public var certificateBody: Swift.String? /// [Deprecated] The intermediate certificates and optionally the root certificate, one after the other without any blank lines, used by an edge-optimized endpoint for this domain name. If you include the root certificate, your certificate chain must start with intermediate certificates and end with the root certificate. Use the intermediate certificates that were provided by your certificate authority. Do not include any intermediaries that are not in the chain of trust path. public var certificateChain: Swift.String? - /// The user-friendly name of the certificate that will be used by edge-optimized endpoint for this domain name. + /// The user-friendly name of the certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. public var certificateName: Swift.String? /// [Deprecated] Your edge-optimized endpoint's domain name certificate's private key. public var certificatePrivateKey: Swift.String? @@ -1323,6 +1363,8 @@ public struct CreateDomainNameInput: Swift.Sendable { public var mutualTlsAuthentication: APIGatewayClientTypes.MutualTlsAuthenticationInput? /// The ARN of the public certificate issued by ACM to validate ownership of your custom domain. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the regionalCertificateArn. public var ownershipVerificationCertificateArn: Swift.String? + /// A stringified JSON policy document that applies to the execute-api service for this DomainName regardless of the caller and Method configuration. Supported only for private custom domain names. + public var policy: Swift.String? /// The reference to an Amazon Web Services-managed certificate that will be used by regional endpoint for this domain name. Certificate Manager is the only supported source. public var regionalCertificateArn: Swift.String? /// The user-friendly name of the certificate that will be used by regional endpoint for this domain name. @@ -1342,6 +1384,7 @@ public struct CreateDomainNameInput: Swift.Sendable { endpointConfiguration: APIGatewayClientTypes.EndpointConfiguration? = nil, mutualTlsAuthentication: APIGatewayClientTypes.MutualTlsAuthenticationInput? = nil, ownershipVerificationCertificateArn: Swift.String? = nil, + policy: Swift.String? = nil, regionalCertificateArn: Swift.String? = nil, regionalCertificateName: Swift.String? = nil, securityPolicy: APIGatewayClientTypes.SecurityPolicy? = nil, @@ -1357,6 +1400,7 @@ public struct CreateDomainNameInput: Swift.Sendable { self.endpointConfiguration = endpointConfiguration self.mutualTlsAuthentication = mutualTlsAuthentication self.ownershipVerificationCertificateArn = ownershipVerificationCertificateArn + self.policy = policy self.regionalCertificateArn = regionalCertificateArn self.regionalCertificateName = regionalCertificateName self.securityPolicy = securityPolicy @@ -1428,11 +1472,11 @@ extension APIGatewayClientTypes { /// Represents a custom domain name as a user-friendly host name of an API (RestApi). public struct CreateDomainNameOutput: Swift.Sendable { - /// The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint for this domain name. Certificate Manager is the only supported source. + /// The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. Certificate Manager is the only supported source. public var certificateArn: Swift.String? - /// The name of the certificate that will be used by edge-optimized endpoint for this domain name. + /// The name of the certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. public var certificateName: Swift.String? - /// The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded. API Gateway doesn't change this value if you update the certificate. + /// The timestamp when the certificate that was used by edge-optimized endpoint or private endpoint for this domain name was uploaded. public var certificateUploadDate: Foundation.Date? /// The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the Amazon CloudFront documentation. public var distributionDomainName: Swift.String? @@ -1440,16 +1484,24 @@ public struct CreateDomainNameOutput: Swift.Sendable { public var distributionHostedZoneId: Swift.String? /// The custom domain name as an API host name, for example, my-api.example.com. public var domainName: Swift.String? + /// The ARN of the domain name. Supported only for private custom domain names. + public var domainNameArn: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? /// The status of the DomainName migration. The valid values are AVAILABLE and UPDATING. If the status is UPDATING, the domain cannot be modified further until the existing operation is complete. If it is AVAILABLE, the domain can be updated. public var domainNameStatus: APIGatewayClientTypes.DomainNameStatus? /// An optional text message containing detailed information about status of the DomainName migration. public var domainNameStatusMessage: Swift.String? /// The endpoint configuration of this DomainName showing the endpoint types of the domain name. public var endpointConfiguration: APIGatewayClientTypes.EndpointConfiguration? + /// A stringified JSON policy document that applies to the API Gateway Management service for this DomainName. This policy document controls access for access association sources to create domain name access associations with this DomainName. Supported only for private custom domain names. + public var managementPolicy: Swift.String? /// The mutual TLS authentication configuration for a custom domain name. If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API. public var mutualTlsAuthentication: APIGatewayClientTypes.MutualTlsAuthentication? /// The ARN of the public certificate issued by ACM to validate ownership of your custom domain. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the regionalCertificateArn. public var ownershipVerificationCertificateArn: Swift.String? + /// A stringified JSON policy document that applies to the execute-api service for this DomainName regardless of the caller and Method configuration. Supported only for private custom domain names. + public var policy: Swift.String? /// The reference to an Amazon Web Services-managed certificate that will be used for validating the regional domain name. Certificate Manager is the only supported source. public var regionalCertificateArn: Swift.String? /// The name of the certificate that will be used for validating the regional domain name. @@ -1470,11 +1522,15 @@ public struct CreateDomainNameOutput: Swift.Sendable { distributionDomainName: Swift.String? = nil, distributionHostedZoneId: Swift.String? = nil, domainName: Swift.String? = nil, + domainNameArn: Swift.String? = nil, + domainNameId: Swift.String? = nil, domainNameStatus: APIGatewayClientTypes.DomainNameStatus? = nil, domainNameStatusMessage: Swift.String? = nil, endpointConfiguration: APIGatewayClientTypes.EndpointConfiguration? = nil, + managementPolicy: Swift.String? = nil, mutualTlsAuthentication: APIGatewayClientTypes.MutualTlsAuthentication? = nil, ownershipVerificationCertificateArn: Swift.String? = nil, + policy: Swift.String? = nil, regionalCertificateArn: Swift.String? = nil, regionalCertificateName: Swift.String? = nil, regionalDomainName: Swift.String? = nil, @@ -1489,11 +1545,15 @@ public struct CreateDomainNameOutput: Swift.Sendable { self.distributionDomainName = distributionDomainName self.distributionHostedZoneId = distributionHostedZoneId self.domainName = domainName + self.domainNameArn = domainNameArn + self.domainNameId = domainNameId self.domainNameStatus = domainNameStatus self.domainNameStatusMessage = domainNameStatusMessage self.endpointConfiguration = endpointConfiguration + self.managementPolicy = managementPolicy self.mutualTlsAuthentication = mutualTlsAuthentication self.ownershipVerificationCertificateArn = ownershipVerificationCertificateArn + self.policy = policy self.regionalCertificateArn = regionalCertificateArn self.regionalCertificateName = regionalCertificateName self.regionalDomainName = regionalDomainName @@ -1503,6 +1563,62 @@ public struct CreateDomainNameOutput: Swift.Sendable { } } +public struct CreateDomainNameAccessAssociationInput: Swift.Sendable { + /// The identifier of the domain name access association source. For a VPCE, the value is the VPC endpoint ID. + /// This member is required. + public var accessAssociationSource: Swift.String? + /// The type of the domain name access association source. + /// This member is required. + public var accessAssociationSourceType: APIGatewayClientTypes.AccessAssociationSourceType? + /// The ARN of the domain name. + /// This member is required. + public var domainNameArn: Swift.String? + /// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters. + public var tags: [Swift.String: Swift.String]? + + public init( + accessAssociationSource: Swift.String? = nil, + accessAssociationSourceType: APIGatewayClientTypes.AccessAssociationSourceType? = nil, + domainNameArn: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil + ) + { + self.accessAssociationSource = accessAssociationSource + self.accessAssociationSourceType = accessAssociationSourceType + self.domainNameArn = domainNameArn + self.tags = tags + } +} + +/// Represents a domain name access association between an access association source and a private custom domain name. With a domain name access association, an access association source can invoke a private custom domain name while isolated from the public internet. +public struct CreateDomainNameAccessAssociationOutput: Swift.Sendable { + /// The ARN of the domain name access association source. For a VPCE, the ARN must be a VPC endpoint. + public var accessAssociationSource: Swift.String? + /// The type of the domain name access association source. + public var accessAssociationSourceType: APIGatewayClientTypes.AccessAssociationSourceType? + /// The ARN of the domain name access association resource. + public var domainNameAccessAssociationArn: Swift.String? + /// The ARN of the domain name. + public var domainNameArn: Swift.String? + /// The collection of tags. Each tag element is associated with a given resource. + public var tags: [Swift.String: Swift.String]? + + public init( + accessAssociationSource: Swift.String? = nil, + accessAssociationSourceType: APIGatewayClientTypes.AccessAssociationSourceType? = nil, + domainNameAccessAssociationArn: Swift.String? = nil, + domainNameArn: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil + ) + { + self.accessAssociationSource = accessAssociationSource + self.accessAssociationSourceType = accessAssociationSourceType + self.domainNameAccessAssociationArn = domainNameAccessAssociationArn + self.domainNameArn = domainNameArn + self.tags = tags + } +} + /// Request to add a new Model to an existing RestApi resource. public struct CreateModelInput: Swift.Sendable { /// The content-type for the model. @@ -2688,14 +2804,18 @@ public struct DeleteBasePathMappingInput: Swift.Sendable { /// The domain name of the BasePathMapping resource to delete. /// This member is required. public var domainName: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? public init( basePath: Swift.String? = nil, - domainName: Swift.String? = nil + domainName: Swift.String? = nil, + domainNameId: Swift.String? = nil ) { self.basePath = basePath self.domainName = domainName + self.domainNameId = domainNameId } } @@ -2775,12 +2895,29 @@ public struct DeleteDomainNameInput: Swift.Sendable { /// The name of the DomainName resource to be deleted. /// This member is required. public var domainName: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? public init( - domainName: Swift.String? = nil + domainName: Swift.String? = nil, + domainNameId: Swift.String? = nil ) { self.domainName = domainName + self.domainNameId = domainNameId + } +} + +public struct DeleteDomainNameAccessAssociationInput: Swift.Sendable { + /// The ARN of the domain name access association resource. + /// This member is required. + public var domainNameAccessAssociationArn: Swift.String? + + public init( + domainNameAccessAssociationArn: Swift.String? = nil + ) + { + self.domainNameAccessAssociationArn = domainNameAccessAssociationArn } } @@ -3483,14 +3620,18 @@ public struct GetBasePathMappingInput: Swift.Sendable { /// The domain name of the BasePathMapping resource to be described. /// This member is required. public var domainName: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? public init( basePath: Swift.String? = nil, - domainName: Swift.String? = nil + domainName: Swift.String? = nil, + domainNameId: Swift.String? = nil ) { self.basePath = basePath self.domainName = domainName + self.domainNameId = domainNameId } } @@ -3520,6 +3661,8 @@ public struct GetBasePathMappingsInput: Swift.Sendable { /// The domain name of a BasePathMapping resource. /// This member is required. public var domainName: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? /// The maximum number of returned results per page. The default value is 25 and the maximum value is 500. public var limit: Swift.Int? /// The current pagination position in the paged result set. @@ -3527,11 +3670,13 @@ public struct GetBasePathMappingsInput: Swift.Sendable { public init( domainName: Swift.String? = nil, + domainNameId: Swift.String? = nil, limit: Swift.Int? = nil, position: Swift.String? = nil ) { self.domainName = domainName + self.domainNameId = domainNameId self.limit = limit self.position = position } @@ -4066,22 +4211,26 @@ public struct GetDomainNameInput: Swift.Sendable { /// The name of the DomainName resource. /// This member is required. public var domainName: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? public init( - domainName: Swift.String? = nil + domainName: Swift.String? = nil, + domainNameId: Swift.String? = nil ) { self.domainName = domainName + self.domainNameId = domainNameId } } /// Represents a custom domain name as a user-friendly host name of an API (RestApi). public struct GetDomainNameOutput: Swift.Sendable { - /// The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint for this domain name. Certificate Manager is the only supported source. + /// The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. Certificate Manager is the only supported source. public var certificateArn: Swift.String? - /// The name of the certificate that will be used by edge-optimized endpoint for this domain name. + /// The name of the certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. public var certificateName: Swift.String? - /// The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded. API Gateway doesn't change this value if you update the certificate. + /// The timestamp when the certificate that was used by edge-optimized endpoint or private endpoint for this domain name was uploaded. public var certificateUploadDate: Foundation.Date? /// The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the Amazon CloudFront documentation. public var distributionDomainName: Swift.String? @@ -4089,16 +4238,24 @@ public struct GetDomainNameOutput: Swift.Sendable { public var distributionHostedZoneId: Swift.String? /// The custom domain name as an API host name, for example, my-api.example.com. public var domainName: Swift.String? + /// The ARN of the domain name. Supported only for private custom domain names. + public var domainNameArn: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? /// The status of the DomainName migration. The valid values are AVAILABLE and UPDATING. If the status is UPDATING, the domain cannot be modified further until the existing operation is complete. If it is AVAILABLE, the domain can be updated. public var domainNameStatus: APIGatewayClientTypes.DomainNameStatus? /// An optional text message containing detailed information about status of the DomainName migration. public var domainNameStatusMessage: Swift.String? /// The endpoint configuration of this DomainName showing the endpoint types of the domain name. public var endpointConfiguration: APIGatewayClientTypes.EndpointConfiguration? + /// A stringified JSON policy document that applies to the API Gateway Management service for this DomainName. This policy document controls access for access association sources to create domain name access associations with this DomainName. Supported only for private custom domain names. + public var managementPolicy: Swift.String? /// The mutual TLS authentication configuration for a custom domain name. If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API. public var mutualTlsAuthentication: APIGatewayClientTypes.MutualTlsAuthentication? /// The ARN of the public certificate issued by ACM to validate ownership of your custom domain. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the regionalCertificateArn. public var ownershipVerificationCertificateArn: Swift.String? + /// A stringified JSON policy document that applies to the execute-api service for this DomainName regardless of the caller and Method configuration. Supported only for private custom domain names. + public var policy: Swift.String? /// The reference to an Amazon Web Services-managed certificate that will be used for validating the regional domain name. Certificate Manager is the only supported source. public var regionalCertificateArn: Swift.String? /// The name of the certificate that will be used for validating the regional domain name. @@ -4119,11 +4276,15 @@ public struct GetDomainNameOutput: Swift.Sendable { distributionDomainName: Swift.String? = nil, distributionHostedZoneId: Swift.String? = nil, domainName: Swift.String? = nil, + domainNameArn: Swift.String? = nil, + domainNameId: Swift.String? = nil, domainNameStatus: APIGatewayClientTypes.DomainNameStatus? = nil, domainNameStatusMessage: Swift.String? = nil, endpointConfiguration: APIGatewayClientTypes.EndpointConfiguration? = nil, + managementPolicy: Swift.String? = nil, mutualTlsAuthentication: APIGatewayClientTypes.MutualTlsAuthentication? = nil, ownershipVerificationCertificateArn: Swift.String? = nil, + policy: Swift.String? = nil, regionalCertificateArn: Swift.String? = nil, regionalCertificateName: Swift.String? = nil, regionalDomainName: Swift.String? = nil, @@ -4138,11 +4299,15 @@ public struct GetDomainNameOutput: Swift.Sendable { self.distributionDomainName = distributionDomainName self.distributionHostedZoneId = distributionHostedZoneId self.domainName = domainName + self.domainNameArn = domainNameArn + self.domainNameId = domainNameId self.domainNameStatus = domainNameStatus self.domainNameStatusMessage = domainNameStatusMessage self.endpointConfiguration = endpointConfiguration + self.managementPolicy = managementPolicy self.mutualTlsAuthentication = mutualTlsAuthentication self.ownershipVerificationCertificateArn = ownershipVerificationCertificateArn + self.policy = policy self.regionalCertificateArn = regionalCertificateArn self.regionalCertificateName = regionalCertificateName self.regionalDomainName = regionalDomainName @@ -4152,20 +4317,121 @@ public struct GetDomainNameOutput: Swift.Sendable { } } +extension APIGatewayClientTypes { + + public enum ResourceOwner: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case otherAccounts + case `self` + case sdkUnknown(Swift.String) + + public static var allCases: [ResourceOwner] { + return [ + .otherAccounts, + .self + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .otherAccounts: return "OTHER_ACCOUNTS" + case .self: return "SELF" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct GetDomainNameAccessAssociationsInput: Swift.Sendable { + /// The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + public var limit: Swift.Int? + /// The current pagination position in the paged result set. + public var position: Swift.String? + /// The owner of the domain name access association. Use SELF to only list the domain name access associations owned by your own account. Use OTHER_ACCOUNTS to list the domain name access associations with your private custom domain names that are owned by other AWS accounts. + public var resourceOwner: APIGatewayClientTypes.ResourceOwner? + + public init( + limit: Swift.Int? = nil, + position: Swift.String? = nil, + resourceOwner: APIGatewayClientTypes.ResourceOwner? = nil + ) + { + self.limit = limit + self.position = position + self.resourceOwner = resourceOwner + } +} + +extension APIGatewayClientTypes { + + /// Represents a domain name access association between an access association source and a private custom domain name. With a domain name access association, an access association source can invoke a private custom domain name while isolated from the public internet. + public struct DomainNameAccessAssociation: Swift.Sendable { + /// The ARN of the domain name access association source. For a VPCE, the ARN must be a VPC endpoint. + public var accessAssociationSource: Swift.String? + /// The type of the domain name access association source. + public var accessAssociationSourceType: APIGatewayClientTypes.AccessAssociationSourceType? + /// The ARN of the domain name access association resource. + public var domainNameAccessAssociationArn: Swift.String? + /// The ARN of the domain name. + public var domainNameArn: Swift.String? + /// The collection of tags. Each tag element is associated with a given resource. + public var tags: [Swift.String: Swift.String]? + + public init( + accessAssociationSource: Swift.String? = nil, + accessAssociationSourceType: APIGatewayClientTypes.AccessAssociationSourceType? = nil, + domainNameAccessAssociationArn: Swift.String? = nil, + domainNameArn: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil + ) + { + self.accessAssociationSource = accessAssociationSource + self.accessAssociationSourceType = accessAssociationSourceType + self.domainNameAccessAssociationArn = domainNameAccessAssociationArn + self.domainNameArn = domainNameArn + self.tags = tags + } + } +} + +public struct GetDomainNameAccessAssociationsOutput: Swift.Sendable { + /// The current page of elements from this collection. + public var items: [APIGatewayClientTypes.DomainNameAccessAssociation]? + /// The current pagination position in the paged result set. + public var position: Swift.String? + + public init( + items: [APIGatewayClientTypes.DomainNameAccessAssociation]? = nil, + position: Swift.String? = nil + ) + { + self.items = items + self.position = position + } +} + /// Request to describe a collection of DomainName resources. public struct GetDomainNamesInput: Swift.Sendable { /// The maximum number of returned results per page. The default value is 25 and the maximum value is 500. public var limit: Swift.Int? /// The current pagination position in the paged result set. public var position: Swift.String? + /// The owner of the domain name access association. + public var resourceOwner: APIGatewayClientTypes.ResourceOwner? public init( limit: Swift.Int? = nil, - position: Swift.String? = nil + position: Swift.String? = nil, + resourceOwner: APIGatewayClientTypes.ResourceOwner? = nil ) { self.limit = limit self.position = position + self.resourceOwner = resourceOwner } } @@ -4173,11 +4439,11 @@ extension APIGatewayClientTypes { /// Represents a custom domain name as a user-friendly host name of an API (RestApi). public struct DomainName: Swift.Sendable { - /// The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint for this domain name. Certificate Manager is the only supported source. + /// The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. Certificate Manager is the only supported source. public var certificateArn: Swift.String? - /// The name of the certificate that will be used by edge-optimized endpoint for this domain name. + /// The name of the certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. public var certificateName: Swift.String? - /// The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded. API Gateway doesn't change this value if you update the certificate. + /// The timestamp when the certificate that was used by edge-optimized endpoint or private endpoint for this domain name was uploaded. public var certificateUploadDate: Foundation.Date? /// The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the Amazon CloudFront documentation. public var distributionDomainName: Swift.String? @@ -4185,16 +4451,24 @@ extension APIGatewayClientTypes { public var distributionHostedZoneId: Swift.String? /// The custom domain name as an API host name, for example, my-api.example.com. public var domainName: Swift.String? + /// The ARN of the domain name. Supported only for private custom domain names. + public var domainNameArn: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? /// The status of the DomainName migration. The valid values are AVAILABLE and UPDATING. If the status is UPDATING, the domain cannot be modified further until the existing operation is complete. If it is AVAILABLE, the domain can be updated. public var domainNameStatus: APIGatewayClientTypes.DomainNameStatus? /// An optional text message containing detailed information about status of the DomainName migration. public var domainNameStatusMessage: Swift.String? /// The endpoint configuration of this DomainName showing the endpoint types of the domain name. public var endpointConfiguration: APIGatewayClientTypes.EndpointConfiguration? + /// A stringified JSON policy document that applies to the API Gateway Management service for this DomainName. This policy document controls access for access association sources to create domain name access associations with this DomainName. Supported only for private custom domain names. + public var managementPolicy: Swift.String? /// The mutual TLS authentication configuration for a custom domain name. If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API. public var mutualTlsAuthentication: APIGatewayClientTypes.MutualTlsAuthentication? /// The ARN of the public certificate issued by ACM to validate ownership of your custom domain. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the regionalCertificateArn. public var ownershipVerificationCertificateArn: Swift.String? + /// A stringified JSON policy document that applies to the execute-api service for this DomainName regardless of the caller and Method configuration. Supported only for private custom domain names. + public var policy: Swift.String? /// The reference to an Amazon Web Services-managed certificate that will be used for validating the regional domain name. Certificate Manager is the only supported source. public var regionalCertificateArn: Swift.String? /// The name of the certificate that will be used for validating the regional domain name. @@ -4215,11 +4489,15 @@ extension APIGatewayClientTypes { distributionDomainName: Swift.String? = nil, distributionHostedZoneId: Swift.String? = nil, domainName: Swift.String? = nil, + domainNameArn: Swift.String? = nil, + domainNameId: Swift.String? = nil, domainNameStatus: APIGatewayClientTypes.DomainNameStatus? = nil, domainNameStatusMessage: Swift.String? = nil, endpointConfiguration: APIGatewayClientTypes.EndpointConfiguration? = nil, + managementPolicy: Swift.String? = nil, mutualTlsAuthentication: APIGatewayClientTypes.MutualTlsAuthentication? = nil, ownershipVerificationCertificateArn: Swift.String? = nil, + policy: Swift.String? = nil, regionalCertificateArn: Swift.String? = nil, regionalCertificateName: Swift.String? = nil, regionalDomainName: Swift.String? = nil, @@ -4234,11 +4512,15 @@ extension APIGatewayClientTypes { self.distributionDomainName = distributionDomainName self.distributionHostedZoneId = distributionHostedZoneId self.domainName = domainName + self.domainNameArn = domainNameArn + self.domainNameId = domainNameId self.domainNameStatus = domainNameStatus self.domainNameStatusMessage = domainNameStatusMessage self.endpointConfiguration = endpointConfiguration + self.managementPolicy = managementPolicy self.mutualTlsAuthentication = mutualTlsAuthentication self.ownershipVerificationCertificateArn = ownershipVerificationCertificateArn + self.policy = policy self.regionalCertificateArn = regionalCertificateArn self.regionalCertificateName = regionalCertificateName self.regionalDomainName = regionalDomainName @@ -6900,6 +7182,24 @@ public struct PutRestApiOutput: Swift.Sendable { } } +public struct RejectDomainNameAccessAssociationInput: Swift.Sendable { + /// The ARN of the domain name access association resource. + /// This member is required. + public var domainNameAccessAssociationArn: Swift.String? + /// The ARN of the domain name. + /// This member is required. + public var domainNameArn: Swift.String? + + public init( + domainNameAccessAssociationArn: Swift.String? = nil, + domainNameArn: Swift.String? = nil + ) + { + self.domainNameAccessAssociationArn = domainNameAccessAssociationArn + self.domainNameArn = domainNameArn + } +} + /// Adds or updates a tag on a given resource. public struct TagResourceInput: Swift.Sendable { /// The ARN of a resource that can be tagged. @@ -7353,17 +7653,21 @@ public struct UpdateBasePathMappingInput: Swift.Sendable { /// The domain name of the BasePathMapping resource to change. /// This member is required. public var domainName: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? /// For more information about supported patch operations, see [Patch Operations](https://docs.aws.amazon.com/apigateway/latest/api/patch-operations.html). public var patchOperations: [APIGatewayClientTypes.PatchOperation]? public init( basePath: Swift.String? = nil, domainName: Swift.String? = nil, + domainNameId: Swift.String? = nil, patchOperations: [APIGatewayClientTypes.PatchOperation]? = nil ) { self.basePath = basePath self.domainName = domainName + self.domainNameId = domainNameId self.patchOperations = patchOperations } } @@ -7581,26 +7885,30 @@ public struct UpdateDomainNameInput: Swift.Sendable { /// The name of the DomainName resource to be changed. /// This member is required. public var domainName: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? /// For more information about supported patch operations, see [Patch Operations](https://docs.aws.amazon.com/apigateway/latest/api/patch-operations.html). public var patchOperations: [APIGatewayClientTypes.PatchOperation]? public init( domainName: Swift.String? = nil, + domainNameId: Swift.String? = nil, patchOperations: [APIGatewayClientTypes.PatchOperation]? = nil ) { self.domainName = domainName + self.domainNameId = domainNameId self.patchOperations = patchOperations } } /// Represents a custom domain name as a user-friendly host name of an API (RestApi). public struct UpdateDomainNameOutput: Swift.Sendable { - /// The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint for this domain name. Certificate Manager is the only supported source. + /// The reference to an Amazon Web Services-managed certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. Certificate Manager is the only supported source. public var certificateArn: Swift.String? - /// The name of the certificate that will be used by edge-optimized endpoint for this domain name. + /// The name of the certificate that will be used by edge-optimized endpoint or private endpoint for this domain name. public var certificateName: Swift.String? - /// The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded. API Gateway doesn't change this value if you update the certificate. + /// The timestamp when the certificate that was used by edge-optimized endpoint or private endpoint for this domain name was uploaded. public var certificateUploadDate: Foundation.Date? /// The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the Amazon CloudFront documentation. public var distributionDomainName: Swift.String? @@ -7608,16 +7916,24 @@ public struct UpdateDomainNameOutput: Swift.Sendable { public var distributionHostedZoneId: Swift.String? /// The custom domain name as an API host name, for example, my-api.example.com. public var domainName: Swift.String? + /// The ARN of the domain name. Supported only for private custom domain names. + public var domainNameArn: Swift.String? + /// The identifier for the domain name resource. Supported only for private custom domain names. + public var domainNameId: Swift.String? /// The status of the DomainName migration. The valid values are AVAILABLE and UPDATING. If the status is UPDATING, the domain cannot be modified further until the existing operation is complete. If it is AVAILABLE, the domain can be updated. public var domainNameStatus: APIGatewayClientTypes.DomainNameStatus? /// An optional text message containing detailed information about status of the DomainName migration. public var domainNameStatusMessage: Swift.String? /// The endpoint configuration of this DomainName showing the endpoint types of the domain name. public var endpointConfiguration: APIGatewayClientTypes.EndpointConfiguration? + /// A stringified JSON policy document that applies to the API Gateway Management service for this DomainName. This policy document controls access for access association sources to create domain name access associations with this DomainName. Supported only for private custom domain names. + public var managementPolicy: Swift.String? /// The mutual TLS authentication configuration for a custom domain name. If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API. public var mutualTlsAuthentication: APIGatewayClientTypes.MutualTlsAuthentication? /// The ARN of the public certificate issued by ACM to validate ownership of your custom domain. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the regionalCertificateArn. public var ownershipVerificationCertificateArn: Swift.String? + /// A stringified JSON policy document that applies to the execute-api service for this DomainName regardless of the caller and Method configuration. Supported only for private custom domain names. + public var policy: Swift.String? /// The reference to an Amazon Web Services-managed certificate that will be used for validating the regional domain name. Certificate Manager is the only supported source. public var regionalCertificateArn: Swift.String? /// The name of the certificate that will be used for validating the regional domain name. @@ -7638,11 +7954,15 @@ public struct UpdateDomainNameOutput: Swift.Sendable { distributionDomainName: Swift.String? = nil, distributionHostedZoneId: Swift.String? = nil, domainName: Swift.String? = nil, + domainNameArn: Swift.String? = nil, + domainNameId: Swift.String? = nil, domainNameStatus: APIGatewayClientTypes.DomainNameStatus? = nil, domainNameStatusMessage: Swift.String? = nil, endpointConfiguration: APIGatewayClientTypes.EndpointConfiguration? = nil, + managementPolicy: Swift.String? = nil, mutualTlsAuthentication: APIGatewayClientTypes.MutualTlsAuthentication? = nil, ownershipVerificationCertificateArn: Swift.String? = nil, + policy: Swift.String? = nil, regionalCertificateArn: Swift.String? = nil, regionalCertificateName: Swift.String? = nil, regionalDomainName: Swift.String? = nil, @@ -7657,11 +7977,15 @@ public struct UpdateDomainNameOutput: Swift.Sendable { self.distributionDomainName = distributionDomainName self.distributionHostedZoneId = distributionHostedZoneId self.domainName = domainName + self.domainNameArn = domainNameArn + self.domainNameId = domainNameId self.domainNameStatus = domainNameStatus self.domainNameStatusMessage = domainNameStatusMessage self.endpointConfiguration = endpointConfiguration + self.managementPolicy = managementPolicy self.mutualTlsAuthentication = mutualTlsAuthentication self.ownershipVerificationCertificateArn = ownershipVerificationCertificateArn + self.policy = policy self.regionalCertificateArn = regionalCertificateArn self.regionalCertificateName = regionalCertificateName self.regionalDomainName = regionalDomainName @@ -8545,6 +8869,18 @@ extension CreateBasePathMappingInput { } } +extension CreateBasePathMappingInput { + + static func queryItemProvider(_ value: CreateBasePathMappingInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let domainNameId = value.domainNameId { + let domainNameIdQueryItem = Smithy.URIQueryItem(name: "domainNameId".urlPercentEncoding(), value: Swift.String(domainNameId).urlPercentEncoding()) + items.append(domainNameIdQueryItem) + } + return items + } +} + extension CreateDeploymentInput { static func urlPathProvider(_ value: CreateDeploymentInput) -> Swift.String? { @@ -8582,6 +8918,13 @@ extension CreateDomainNameInput { } } +extension CreateDomainNameAccessAssociationInput { + + static func urlPathProvider(_ value: CreateDomainNameAccessAssociationInput) -> Swift.String? { + return "/domainnameaccessassociations" + } +} + extension CreateModelInput { static func urlPathProvider(_ value: CreateModelInput) -> Swift.String? { @@ -8692,6 +9035,18 @@ extension DeleteBasePathMappingInput { } } +extension DeleteBasePathMappingInput { + + static func queryItemProvider(_ value: DeleteBasePathMappingInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let domainNameId = value.domainNameId { + let domainNameIdQueryItem = Smithy.URIQueryItem(name: "domainNameId".urlPercentEncoding(), value: Swift.String(domainNameId).urlPercentEncoding()) + items.append(domainNameIdQueryItem) + } + return items + } +} + extension DeleteClientCertificateInput { static func urlPathProvider(_ value: DeleteClientCertificateInput) -> Swift.String? { @@ -8751,6 +9106,28 @@ extension DeleteDomainNameInput { } } +extension DeleteDomainNameInput { + + static func queryItemProvider(_ value: DeleteDomainNameInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let domainNameId = value.domainNameId { + let domainNameIdQueryItem = Smithy.URIQueryItem(name: "domainNameId".urlPercentEncoding(), value: Swift.String(domainNameId).urlPercentEncoding()) + items.append(domainNameIdQueryItem) + } + return items + } +} + +extension DeleteDomainNameAccessAssociationInput { + + static func urlPathProvider(_ value: DeleteDomainNameAccessAssociationInput) -> Swift.String? { + guard let domainNameAccessAssociationArn = value.domainNameAccessAssociationArn else { + return nil + } + return "/domainnameaccessassociations/\(domainNameAccessAssociationArn.urlPercentEncoding())" + } +} + extension DeleteGatewayResponseInput { static func urlPathProvider(_ value: DeleteGatewayResponseInput) -> Swift.String? { @@ -9078,6 +9455,18 @@ extension GetBasePathMappingInput { } } +extension GetBasePathMappingInput { + + static func queryItemProvider(_ value: GetBasePathMappingInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let domainNameId = value.domainNameId { + let domainNameIdQueryItem = Smithy.URIQueryItem(name: "domainNameId".urlPercentEncoding(), value: Swift.String(domainNameId).urlPercentEncoding()) + items.append(domainNameIdQueryItem) + } + return items + } +} + extension GetBasePathMappingsInput { static func urlPathProvider(_ value: GetBasePathMappingsInput) -> Swift.String? { @@ -9092,6 +9481,10 @@ extension GetBasePathMappingsInput { static func queryItemProvider(_ value: GetBasePathMappingsInput) throws -> [Smithy.URIQueryItem] { var items = [Smithy.URIQueryItem]() + if let domainNameId = value.domainNameId { + let domainNameIdQueryItem = Smithy.URIQueryItem(name: "domainNameId".urlPercentEncoding(), value: Swift.String(domainNameId).urlPercentEncoding()) + items.append(domainNameIdQueryItem) + } if let limit = value.limit { let limitQueryItem = Smithy.URIQueryItem(name: "limit".urlPercentEncoding(), value: Swift.String(limit).urlPercentEncoding()) items.append(limitQueryItem) @@ -9294,6 +9687,45 @@ extension GetDomainNameInput { } } +extension GetDomainNameInput { + + static func queryItemProvider(_ value: GetDomainNameInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let domainNameId = value.domainNameId { + let domainNameIdQueryItem = Smithy.URIQueryItem(name: "domainNameId".urlPercentEncoding(), value: Swift.String(domainNameId).urlPercentEncoding()) + items.append(domainNameIdQueryItem) + } + return items + } +} + +extension GetDomainNameAccessAssociationsInput { + + static func urlPathProvider(_ value: GetDomainNameAccessAssociationsInput) -> Swift.String? { + return "/domainnameaccessassociations" + } +} + +extension GetDomainNameAccessAssociationsInput { + + static func queryItemProvider(_ value: GetDomainNameAccessAssociationsInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let resourceOwner = value.resourceOwner { + let resourceOwnerQueryItem = Smithy.URIQueryItem(name: "resourceOwner".urlPercentEncoding(), value: Swift.String(resourceOwner.rawValue).urlPercentEncoding()) + items.append(resourceOwnerQueryItem) + } + if let limit = value.limit { + let limitQueryItem = Smithy.URIQueryItem(name: "limit".urlPercentEncoding(), value: Swift.String(limit).urlPercentEncoding()) + items.append(limitQueryItem) + } + if let position = value.position { + let positionQueryItem = Smithy.URIQueryItem(name: "position".urlPercentEncoding(), value: Swift.String(position).urlPercentEncoding()) + items.append(positionQueryItem) + } + return items + } +} + extension GetDomainNamesInput { static func urlPathProvider(_ value: GetDomainNamesInput) -> Swift.String? { @@ -9305,6 +9737,10 @@ extension GetDomainNamesInput { static func queryItemProvider(_ value: GetDomainNamesInput) throws -> [Smithy.URIQueryItem] { var items = [Smithy.URIQueryItem]() + if let resourceOwner = value.resourceOwner { + let resourceOwnerQueryItem = Smithy.URIQueryItem(name: "resourceOwner".urlPercentEncoding(), value: Swift.String(resourceOwner.rawValue).urlPercentEncoding()) + items.append(resourceOwnerQueryItem) + } if let limit = value.limit { let limitQueryItem = Smithy.URIQueryItem(name: "limit".urlPercentEncoding(), value: Swift.String(limit).urlPercentEncoding()) items.append(limitQueryItem) @@ -10146,6 +10582,33 @@ extension PutRestApiInput { } } +extension RejectDomainNameAccessAssociationInput { + + static func urlPathProvider(_ value: RejectDomainNameAccessAssociationInput) -> Swift.String? { + return "/rejectdomainnameaccessassociations" + } +} + +extension RejectDomainNameAccessAssociationInput { + + static func queryItemProvider(_ value: RejectDomainNameAccessAssociationInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + guard let domainNameAccessAssociationArn = value.domainNameAccessAssociationArn else { + let message = "Creating a URL Query Item failed. domainNameAccessAssociationArn is required and must not be nil." + throw Smithy.ClientError.unknownError(message) + } + let domainNameAccessAssociationArnQueryItem = Smithy.URIQueryItem(name: "domainNameAccessAssociationArn".urlPercentEncoding(), value: Swift.String(domainNameAccessAssociationArn).urlPercentEncoding()) + items.append(domainNameAccessAssociationArnQueryItem) + guard let domainNameArn = value.domainNameArn else { + let message = "Creating a URL Query Item failed. domainNameArn is required and must not be nil." + throw Smithy.ClientError.unknownError(message) + } + let domainNameArnQueryItem = Smithy.URIQueryItem(name: "domainNameArn".urlPercentEncoding(), value: Swift.String(domainNameArn).urlPercentEncoding()) + items.append(domainNameArnQueryItem) + return items + } +} + extension TagResourceInput { static func urlPathProvider(_ value: TagResourceInput) -> Swift.String? { @@ -10254,6 +10717,18 @@ extension UpdateBasePathMappingInput { } } +extension UpdateBasePathMappingInput { + + static func queryItemProvider(_ value: UpdateBasePathMappingInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let domainNameId = value.domainNameId { + let domainNameIdQueryItem = Smithy.URIQueryItem(name: "domainNameId".urlPercentEncoding(), value: Swift.String(domainNameId).urlPercentEncoding()) + items.append(domainNameIdQueryItem) + } + return items + } +} + extension UpdateClientCertificateInput { static func urlPathProvider(_ value: UpdateClientCertificateInput) -> Swift.String? { @@ -10313,6 +10788,18 @@ extension UpdateDomainNameInput { } } +extension UpdateDomainNameInput { + + static func queryItemProvider(_ value: UpdateDomainNameInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let domainNameId = value.domainNameId { + let domainNameIdQueryItem = Smithy.URIQueryItem(name: "domainNameId".urlPercentEncoding(), value: Swift.String(domainNameId).urlPercentEncoding()) + items.append(domainNameIdQueryItem) + } + return items + } +} + extension UpdateGatewayResponseInput { static func urlPathProvider(_ value: UpdateGatewayResponseInput) -> Swift.String? { @@ -10579,6 +11066,7 @@ extension CreateDomainNameInput { try writer["endpointConfiguration"].write(value.endpointConfiguration, with: APIGatewayClientTypes.EndpointConfiguration.write(value:to:)) try writer["mutualTlsAuthentication"].write(value.mutualTlsAuthentication, with: APIGatewayClientTypes.MutualTlsAuthenticationInput.write(value:to:)) try writer["ownershipVerificationCertificateArn"].write(value.ownershipVerificationCertificateArn) + try writer["policy"].write(value.policy) try writer["regionalCertificateArn"].write(value.regionalCertificateArn) try writer["regionalCertificateName"].write(value.regionalCertificateName) try writer["securityPolicy"].write(value.securityPolicy) @@ -10586,6 +11074,17 @@ extension CreateDomainNameInput { } } +extension CreateDomainNameAccessAssociationInput { + + static func write(value: CreateDomainNameAccessAssociationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["accessAssociationSource"].write(value.accessAssociationSource) + try writer["accessAssociationSourceType"].write(value.accessAssociationSourceType) + try writer["domainNameArn"].write(value.domainNameArn) + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + } +} + extension CreateModelInput { static func write(value: CreateModelInput?, to writer: SmithyJSON.Writer) throws { @@ -11112,11 +11611,15 @@ extension CreateDomainNameOutput { value.distributionDomainName = try reader["distributionDomainName"].readIfPresent() value.distributionHostedZoneId = try reader["distributionHostedZoneId"].readIfPresent() value.domainName = try reader["domainName"].readIfPresent() + value.domainNameArn = try reader["domainNameArn"].readIfPresent() + value.domainNameId = try reader["domainNameId"].readIfPresent() value.domainNameStatus = try reader["domainNameStatus"].readIfPresent() value.domainNameStatusMessage = try reader["domainNameStatusMessage"].readIfPresent() value.endpointConfiguration = try reader["endpointConfiguration"].readIfPresent(with: APIGatewayClientTypes.EndpointConfiguration.read(from:)) + value.managementPolicy = try reader["managementPolicy"].readIfPresent() value.mutualTlsAuthentication = try reader["mutualTlsAuthentication"].readIfPresent(with: APIGatewayClientTypes.MutualTlsAuthentication.read(from:)) value.ownershipVerificationCertificateArn = try reader["ownershipVerificationCertificateArn"].readIfPresent() + value.policy = try reader["policy"].readIfPresent() value.regionalCertificateArn = try reader["regionalCertificateArn"].readIfPresent() value.regionalCertificateName = try reader["regionalCertificateName"].readIfPresent() value.regionalDomainName = try reader["regionalDomainName"].readIfPresent() @@ -11127,6 +11630,22 @@ extension CreateDomainNameOutput { } } +extension CreateDomainNameAccessAssociationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateDomainNameAccessAssociationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateDomainNameAccessAssociationOutput() + value.accessAssociationSource = try reader["accessAssociationSource"].readIfPresent() + value.accessAssociationSourceType = try reader["accessAssociationSourceType"].readIfPresent() + value.domainNameAccessAssociationArn = try reader["domainNameAccessAssociationArn"].readIfPresent() + value.domainNameArn = try reader["domainNameArn"].readIfPresent() + value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value + } +} + extension CreateModelOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateModelOutput { @@ -11335,6 +11854,13 @@ extension DeleteDomainNameOutput { } } +extension DeleteDomainNameAccessAssociationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDomainNameAccessAssociationOutput { + return DeleteDomainNameAccessAssociationOutput() + } +} + extension DeleteGatewayResponseOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteGatewayResponseOutput { @@ -11693,11 +12219,15 @@ extension GetDomainNameOutput { value.distributionDomainName = try reader["distributionDomainName"].readIfPresent() value.distributionHostedZoneId = try reader["distributionHostedZoneId"].readIfPresent() value.domainName = try reader["domainName"].readIfPresent() + value.domainNameArn = try reader["domainNameArn"].readIfPresent() + value.domainNameId = try reader["domainNameId"].readIfPresent() value.domainNameStatus = try reader["domainNameStatus"].readIfPresent() value.domainNameStatusMessage = try reader["domainNameStatusMessage"].readIfPresent() value.endpointConfiguration = try reader["endpointConfiguration"].readIfPresent(with: APIGatewayClientTypes.EndpointConfiguration.read(from:)) + value.managementPolicy = try reader["managementPolicy"].readIfPresent() value.mutualTlsAuthentication = try reader["mutualTlsAuthentication"].readIfPresent(with: APIGatewayClientTypes.MutualTlsAuthentication.read(from:)) value.ownershipVerificationCertificateArn = try reader["ownershipVerificationCertificateArn"].readIfPresent() + value.policy = try reader["policy"].readIfPresent() value.regionalCertificateArn = try reader["regionalCertificateArn"].readIfPresent() value.regionalCertificateName = try reader["regionalCertificateName"].readIfPresent() value.regionalDomainName = try reader["regionalDomainName"].readIfPresent() @@ -11708,6 +12238,19 @@ extension GetDomainNameOutput { } } +extension GetDomainNameAccessAssociationsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDomainNameAccessAssociationsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetDomainNameAccessAssociationsOutput() + value.items = try reader["item"].readListIfPresent(memberReadingClosure: APIGatewayClientTypes.DomainNameAccessAssociation.read(from:), memberNodeInfo: "member", isFlattened: false) + value.position = try reader["position"].readIfPresent() + return value + } +} + extension GetDomainNamesOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDomainNamesOutput { @@ -12364,6 +12907,13 @@ extension PutRestApiOutput { } } +extension RejectDomainNameAccessAssociationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> RejectDomainNameAccessAssociationOutput { + return RejectDomainNameAccessAssociationOutput() + } +} + extension TagResourceOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TagResourceOutput { @@ -12557,11 +13107,15 @@ extension UpdateDomainNameOutput { value.distributionDomainName = try reader["distributionDomainName"].readIfPresent() value.distributionHostedZoneId = try reader["distributionHostedZoneId"].readIfPresent() value.domainName = try reader["domainName"].readIfPresent() + value.domainNameArn = try reader["domainNameArn"].readIfPresent() + value.domainNameId = try reader["domainNameId"].readIfPresent() value.domainNameStatus = try reader["domainNameStatus"].readIfPresent() value.domainNameStatusMessage = try reader["domainNameStatusMessage"].readIfPresent() value.endpointConfiguration = try reader["endpointConfiguration"].readIfPresent(with: APIGatewayClientTypes.EndpointConfiguration.read(from:)) + value.managementPolicy = try reader["managementPolicy"].readIfPresent() value.mutualTlsAuthentication = try reader["mutualTlsAuthentication"].readIfPresent(with: APIGatewayClientTypes.MutualTlsAuthentication.read(from:)) value.ownershipVerificationCertificateArn = try reader["ownershipVerificationCertificateArn"].readIfPresent() + value.policy = try reader["policy"].readIfPresent() value.regionalCertificateArn = try reader["regionalCertificateArn"].readIfPresent() value.regionalCertificateName = try reader["regionalCertificateName"].readIfPresent() value.regionalDomainName = try reader["regionalDomainName"].readIfPresent() @@ -12952,6 +13506,24 @@ enum CreateDomainNameOutputError { } } +enum CreateDomainNameAccessAssociationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "BadRequestException": return try BadRequestException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "TooManyRequestsException": return try TooManyRequestsException.makeError(baseError: baseError) + case "UnauthorizedException": return try UnauthorizedException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum CreateModelOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -13247,6 +13819,24 @@ enum DeleteDomainNameOutputError { } } +enum DeleteDomainNameAccessAssociationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "BadRequestException": return try BadRequestException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "NotFoundException": return try NotFoundException.makeError(baseError: baseError) + case "TooManyRequestsException": return try TooManyRequestsException.makeError(baseError: baseError) + case "UnauthorizedException": return try UnauthorizedException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum DeleteGatewayResponseOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -13810,6 +14400,23 @@ enum GetDomainNameOutputError { } } +enum GetDomainNameAccessAssociationsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "BadRequestException": return try BadRequestException.makeError(baseError: baseError) + case "NotFoundException": return try NotFoundException.makeError(baseError: baseError) + case "TooManyRequestsException": return try TooManyRequestsException.makeError(baseError: baseError) + case "UnauthorizedException": return try UnauthorizedException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum GetDomainNamesOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -14496,6 +15103,24 @@ enum PutRestApiOutputError { } } +enum RejectDomainNameAccessAssociationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "BadRequestException": return try BadRequestException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "NotFoundException": return try NotFoundException.makeError(baseError: baseError) + case "TooManyRequestsException": return try TooManyRequestsException.makeError(baseError: baseError) + case "UnauthorizedException": return try UnauthorizedException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum TagResourceOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -15444,12 +16069,28 @@ extension APIGatewayClientTypes.DocumentationVersion { } } +extension APIGatewayClientTypes.DomainNameAccessAssociation { + + static func read(from reader: SmithyJSON.Reader) throws -> APIGatewayClientTypes.DomainNameAccessAssociation { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = APIGatewayClientTypes.DomainNameAccessAssociation() + value.domainNameAccessAssociationArn = try reader["domainNameAccessAssociationArn"].readIfPresent() + value.domainNameArn = try reader["domainNameArn"].readIfPresent() + value.accessAssociationSourceType = try reader["accessAssociationSourceType"].readIfPresent() + value.accessAssociationSource = try reader["accessAssociationSource"].readIfPresent() + value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value + } +} + extension APIGatewayClientTypes.DomainName { static func read(from reader: SmithyJSON.Reader) throws -> APIGatewayClientTypes.DomainName { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } var value = APIGatewayClientTypes.DomainName() value.domainName = try reader["domainName"].readIfPresent() + value.domainNameId = try reader["domainNameId"].readIfPresent() + value.domainNameArn = try reader["domainNameArn"].readIfPresent() value.certificateName = try reader["certificateName"].readIfPresent() value.certificateArn = try reader["certificateArn"].readIfPresent() value.certificateUploadDate = try reader["certificateUploadDate"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) @@ -15466,6 +16107,8 @@ extension APIGatewayClientTypes.DomainName { value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) value.mutualTlsAuthentication = try reader["mutualTlsAuthentication"].readIfPresent(with: APIGatewayClientTypes.MutualTlsAuthentication.read(from:)) value.ownershipVerificationCertificateArn = try reader["ownershipVerificationCertificateArn"].readIfPresent() + value.managementPolicy = try reader["managementPolicy"].readIfPresent() + value.policy = try reader["policy"].readIfPresent() return value } } diff --git a/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/Paginators.swift b/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/Paginators.swift index b33521aae8e..a3a611a6441 100644 --- a/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/Paginators.swift +++ b/Sources/Services/AWSAPIGateway/Sources/AWSAPIGateway/Paginators.swift @@ -61,6 +61,7 @@ extension GetBasePathMappingsInput: ClientRuntime.PaginateToken { public func usingPaginationToken(_ token: Swift.String) -> GetBasePathMappingsInput { return GetBasePathMappingsInput( domainName: self.domainName, + domainNameId: self.domainNameId, limit: self.limit, position: token )} @@ -153,7 +154,8 @@ extension GetDomainNamesInput: ClientRuntime.PaginateToken { public func usingPaginationToken(_ token: Swift.String) -> GetDomainNamesInput { return GetDomainNamesInput( limit: self.limit, - position: token + position: token, + resourceOwner: self.resourceOwner )} } diff --git a/Sources/Services/AWSARCZonalShift/Sources/AWSARCZonalShift/ARCZonalShiftClient.swift b/Sources/Services/AWSARCZonalShift/Sources/AWSARCZonalShift/ARCZonalShiftClient.swift index d68d78a1cd8..6258d0d80c1 100644 --- a/Sources/Services/AWSARCZonalShift/Sources/AWSARCZonalShift/ARCZonalShiftClient.swift +++ b/Sources/Services/AWSARCZonalShift/Sources/AWSARCZonalShift/ARCZonalShiftClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ARCZonalShiftClient: ClientRuntime.Client { public static let clientName = "ARCZonalShiftClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ARCZonalShiftClient.ARCZonalShiftClientConfiguration let serviceName = "ARC Zonal Shift" diff --git a/Sources/Services/AWSAccessAnalyzer/Sources/AWSAccessAnalyzer/AccessAnalyzerClient.swift b/Sources/Services/AWSAccessAnalyzer/Sources/AWSAccessAnalyzer/AccessAnalyzerClient.swift index 40d80553010..d5166b661b0 100644 --- a/Sources/Services/AWSAccessAnalyzer/Sources/AWSAccessAnalyzer/AccessAnalyzerClient.swift +++ b/Sources/Services/AWSAccessAnalyzer/Sources/AWSAccessAnalyzer/AccessAnalyzerClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AccessAnalyzerClient: ClientRuntime.Client { public static let clientName = "AccessAnalyzerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AccessAnalyzerClient.AccessAnalyzerClientConfiguration let serviceName = "AccessAnalyzer" diff --git a/Sources/Services/AWSAccount/Sources/AWSAccount/AccountClient.swift b/Sources/Services/AWSAccount/Sources/AWSAccount/AccountClient.swift index 5e027cfc946..389adde4942 100644 --- a/Sources/Services/AWSAccount/Sources/AWSAccount/AccountClient.swift +++ b/Sources/Services/AWSAccount/Sources/AWSAccount/AccountClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AccountClient: ClientRuntime.Client { public static let clientName = "AccountClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AccountClient.AccountClientConfiguration let serviceName = "Account" diff --git a/Sources/Services/AWSAmp/Sources/AWSAmp/AmpClient.swift b/Sources/Services/AWSAmp/Sources/AWSAmp/AmpClient.swift index f741dec704a..baac4e9903e 100644 --- a/Sources/Services/AWSAmp/Sources/AWSAmp/AmpClient.swift +++ b/Sources/Services/AWSAmp/Sources/AWSAmp/AmpClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AmpClient: ClientRuntime.Client { public static let clientName = "AmpClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AmpClient.AmpClientConfiguration let serviceName = "amp" diff --git a/Sources/Services/AWSAmplify/Sources/AWSAmplify/AmplifyClient.swift b/Sources/Services/AWSAmplify/Sources/AWSAmplify/AmplifyClient.swift index a902f470dbb..978350ea14c 100644 --- a/Sources/Services/AWSAmplify/Sources/AWSAmplify/AmplifyClient.swift +++ b/Sources/Services/AWSAmplify/Sources/AWSAmplify/AmplifyClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AmplifyClient: ClientRuntime.Client { public static let clientName = "AmplifyClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AmplifyClient.AmplifyClientConfiguration let serviceName = "Amplify" diff --git a/Sources/Services/AWSAmplifyBackend/Sources/AWSAmplifyBackend/AmplifyBackendClient.swift b/Sources/Services/AWSAmplifyBackend/Sources/AWSAmplifyBackend/AmplifyBackendClient.swift index 0c9bb2878e9..39e0c8a48b1 100644 --- a/Sources/Services/AWSAmplifyBackend/Sources/AWSAmplifyBackend/AmplifyBackendClient.swift +++ b/Sources/Services/AWSAmplifyBackend/Sources/AWSAmplifyBackend/AmplifyBackendClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AmplifyBackendClient: ClientRuntime.Client { public static let clientName = "AmplifyBackendClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AmplifyBackendClient.AmplifyBackendClientConfiguration let serviceName = "AmplifyBackend" diff --git a/Sources/Services/AWSAmplifyUIBuilder/Sources/AWSAmplifyUIBuilder/AmplifyUIBuilderClient.swift b/Sources/Services/AWSAmplifyUIBuilder/Sources/AWSAmplifyUIBuilder/AmplifyUIBuilderClient.swift index 66b83a18179..d550f9d0752 100644 --- a/Sources/Services/AWSAmplifyUIBuilder/Sources/AWSAmplifyUIBuilder/AmplifyUIBuilderClient.swift +++ b/Sources/Services/AWSAmplifyUIBuilder/Sources/AWSAmplifyUIBuilder/AmplifyUIBuilderClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AmplifyUIBuilderClient: ClientRuntime.Client { public static let clientName = "AmplifyUIBuilderClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AmplifyUIBuilderClient.AmplifyUIBuilderClientConfiguration let serviceName = "AmplifyUIBuilder" diff --git a/Sources/Services/AWSApiGatewayManagementApi/Sources/AWSApiGatewayManagementApi/ApiGatewayManagementApiClient.swift b/Sources/Services/AWSApiGatewayManagementApi/Sources/AWSApiGatewayManagementApi/ApiGatewayManagementApiClient.swift index e9e0fbe4635..d4010da337c 100644 --- a/Sources/Services/AWSApiGatewayManagementApi/Sources/AWSApiGatewayManagementApi/ApiGatewayManagementApiClient.swift +++ b/Sources/Services/AWSApiGatewayManagementApi/Sources/AWSApiGatewayManagementApi/ApiGatewayManagementApiClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ApiGatewayManagementApiClient: ClientRuntime.Client { public static let clientName = "ApiGatewayManagementApiClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ApiGatewayManagementApiClient.ApiGatewayManagementApiClientConfiguration let serviceName = "ApiGatewayManagementApi" diff --git a/Sources/Services/AWSApiGatewayV2/Sources/AWSApiGatewayV2/ApiGatewayV2Client.swift b/Sources/Services/AWSApiGatewayV2/Sources/AWSApiGatewayV2/ApiGatewayV2Client.swift index c95e6e37ab0..a5ae6399d69 100644 --- a/Sources/Services/AWSApiGatewayV2/Sources/AWSApiGatewayV2/ApiGatewayV2Client.swift +++ b/Sources/Services/AWSApiGatewayV2/Sources/AWSApiGatewayV2/ApiGatewayV2Client.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ApiGatewayV2Client: ClientRuntime.Client { public static let clientName = "ApiGatewayV2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ApiGatewayV2Client.ApiGatewayV2ClientConfiguration let serviceName = "ApiGatewayV2" diff --git a/Sources/Services/AWSAppConfig/Sources/AWSAppConfig/AppConfigClient.swift b/Sources/Services/AWSAppConfig/Sources/AWSAppConfig/AppConfigClient.swift index 4e02ce167e5..0f9577c8904 100644 --- a/Sources/Services/AWSAppConfig/Sources/AWSAppConfig/AppConfigClient.swift +++ b/Sources/Services/AWSAppConfig/Sources/AWSAppConfig/AppConfigClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AppConfigClient: ClientRuntime.Client { public static let clientName = "AppConfigClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AppConfigClient.AppConfigClientConfiguration let serviceName = "AppConfig" diff --git a/Sources/Services/AWSAppConfigData/Sources/AWSAppConfigData/AppConfigDataClient.swift b/Sources/Services/AWSAppConfigData/Sources/AWSAppConfigData/AppConfigDataClient.swift index a1eaeafbf8d..7315e4f4c75 100644 --- a/Sources/Services/AWSAppConfigData/Sources/AWSAppConfigData/AppConfigDataClient.swift +++ b/Sources/Services/AWSAppConfigData/Sources/AWSAppConfigData/AppConfigDataClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AppConfigDataClient: ClientRuntime.Client { public static let clientName = "AppConfigDataClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AppConfigDataClient.AppConfigDataClientConfiguration let serviceName = "AppConfigData" diff --git a/Sources/Services/AWSAppFabric/Sources/AWSAppFabric/AppFabricClient.swift b/Sources/Services/AWSAppFabric/Sources/AWSAppFabric/AppFabricClient.swift index 9ae050a08e6..ec24aa70274 100644 --- a/Sources/Services/AWSAppFabric/Sources/AWSAppFabric/AppFabricClient.swift +++ b/Sources/Services/AWSAppFabric/Sources/AWSAppFabric/AppFabricClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AppFabricClient: ClientRuntime.Client { public static let clientName = "AppFabricClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AppFabricClient.AppFabricClientConfiguration let serviceName = "AppFabric" diff --git a/Sources/Services/AWSAppIntegrations/Sources/AWSAppIntegrations/AppIntegrationsClient.swift b/Sources/Services/AWSAppIntegrations/Sources/AWSAppIntegrations/AppIntegrationsClient.swift index 779ad24d587..bb078a99f4c 100644 --- a/Sources/Services/AWSAppIntegrations/Sources/AWSAppIntegrations/AppIntegrationsClient.swift +++ b/Sources/Services/AWSAppIntegrations/Sources/AWSAppIntegrations/AppIntegrationsClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AppIntegrationsClient: ClientRuntime.Client { public static let clientName = "AppIntegrationsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AppIntegrationsClient.AppIntegrationsClientConfiguration let serviceName = "AppIntegrations" diff --git a/Sources/Services/AWSAppMesh/Sources/AWSAppMesh/AppMeshClient.swift b/Sources/Services/AWSAppMesh/Sources/AWSAppMesh/AppMeshClient.swift index e4261155010..9629873d482 100644 --- a/Sources/Services/AWSAppMesh/Sources/AWSAppMesh/AppMeshClient.swift +++ b/Sources/Services/AWSAppMesh/Sources/AWSAppMesh/AppMeshClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AppMeshClient: ClientRuntime.Client { public static let clientName = "AppMeshClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AppMeshClient.AppMeshClientConfiguration let serviceName = "App Mesh" diff --git a/Sources/Services/AWSAppRunner/Sources/AWSAppRunner/AppRunnerClient.swift b/Sources/Services/AWSAppRunner/Sources/AWSAppRunner/AppRunnerClient.swift index 76384f771ae..d53ffb7bf0d 100644 --- a/Sources/Services/AWSAppRunner/Sources/AWSAppRunner/AppRunnerClient.swift +++ b/Sources/Services/AWSAppRunner/Sources/AWSAppRunner/AppRunnerClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AppRunnerClient: ClientRuntime.Client { public static let clientName = "AppRunnerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AppRunnerClient.AppRunnerClientConfiguration let serviceName = "AppRunner" diff --git a/Sources/Services/AWSAppStream/Sources/AWSAppStream/AppStreamClient.swift b/Sources/Services/AWSAppStream/Sources/AWSAppStream/AppStreamClient.swift index 979630ba719..019cd580416 100644 --- a/Sources/Services/AWSAppStream/Sources/AWSAppStream/AppStreamClient.swift +++ b/Sources/Services/AWSAppStream/Sources/AWSAppStream/AppStreamClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AppStreamClient: ClientRuntime.Client { public static let clientName = "AppStreamClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AppStreamClient.AppStreamClientConfiguration let serviceName = "AppStream" diff --git a/Sources/Services/AWSAppSync/Sources/AWSAppSync/AppSyncClient.swift b/Sources/Services/AWSAppSync/Sources/AWSAppSync/AppSyncClient.swift index 2edbd6fdfdb..4e87b9d2156 100644 --- a/Sources/Services/AWSAppSync/Sources/AWSAppSync/AppSyncClient.swift +++ b/Sources/Services/AWSAppSync/Sources/AWSAppSync/AppSyncClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AppSyncClient: ClientRuntime.Client { public static let clientName = "AppSyncClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AppSyncClient.AppSyncClientConfiguration let serviceName = "AppSync" diff --git a/Sources/Services/AWSAppSync/Sources/AWSAppSync/Models.swift b/Sources/Services/AWSAppSync/Sources/AWSAppSync/Models.swift index b7298a1831d..42b019d75ee 100644 --- a/Sources/Services/AWSAppSync/Sources/AWSAppSync/Models.swift +++ b/Sources/Services/AWSAppSync/Sources/AWSAppSync/Models.swift @@ -2059,6 +2059,7 @@ extension AppSyncClientTypes { extension AppSyncClientTypes { public enum DataSourceType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case amazonBedrockRuntime case amazonDynamodb case amazonElasticsearch case amazonEventbridge @@ -2071,6 +2072,7 @@ extension AppSyncClientTypes { public static var allCases: [DataSourceType] { return [ + .amazonBedrockRuntime, .amazonDynamodb, .amazonElasticsearch, .amazonEventbridge, @@ -2089,6 +2091,7 @@ extension AppSyncClientTypes { public var rawValue: Swift.String { switch self { + case .amazonBedrockRuntime: return "AMAZON_BEDROCK_RUNTIME" case .amazonDynamodb: return "AMAZON_DYNAMODB" case .amazonElasticsearch: return "AMAZON_ELASTICSEARCH" case .amazonEventbridge: return "AMAZON_EVENTBRIDGE" diff --git a/Sources/Services/AWSAppTest/Sources/AWSAppTest/AppTestClient.swift b/Sources/Services/AWSAppTest/Sources/AWSAppTest/AppTestClient.swift index 48518d37e7f..b0aa7c6b585 100644 --- a/Sources/Services/AWSAppTest/Sources/AWSAppTest/AppTestClient.swift +++ b/Sources/Services/AWSAppTest/Sources/AWSAppTest/AppTestClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AppTestClient: ClientRuntime.Client { public static let clientName = "AppTestClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AppTestClient.AppTestClientConfiguration let serviceName = "AppTest" diff --git a/Sources/Services/AWSAppflow/Sources/AWSAppflow/AppflowClient.swift b/Sources/Services/AWSAppflow/Sources/AWSAppflow/AppflowClient.swift index dc14880d4f3..5ca06c63412 100644 --- a/Sources/Services/AWSAppflow/Sources/AWSAppflow/AppflowClient.swift +++ b/Sources/Services/AWSAppflow/Sources/AWSAppflow/AppflowClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AppflowClient: ClientRuntime.Client { public static let clientName = "AppflowClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AppflowClient.AppflowClientConfiguration let serviceName = "Appflow" diff --git a/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift b/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift index ba9f888a8d8..430c8b0f7d4 100644 --- a/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift +++ b/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ApplicationAutoScalingClient: ClientRuntime.Client { public static let clientName = "ApplicationAutoScalingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ApplicationAutoScalingClient.ApplicationAutoScalingClientConfiguration let serviceName = "Application Auto Scaling" @@ -707,6 +707,77 @@ extension ApplicationAutoScalingClient { return try await op.execute(input: input) } + /// Performs the `GetPredictiveScalingForecast` operation on the `AnyScaleFrontendService` service. + /// + /// Retrieves the forecast data for a predictive scaling policy. Load forecasts are predictions of the hourly load values using historical load data from CloudWatch and an analysis of historical trends. Capacity forecasts are represented as predicted values for the minimum capacity that is needed on an hourly basis, based on the hourly load forecast. A minimum of 24 hours of data is required to create the initial forecasts. However, having a full 14 days of historical data results in more accurate forecasts. + /// + /// - Parameter GetPredictiveScalingForecastInput : [no documentation found] + /// + /// - Returns: `GetPredictiveScalingForecastOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InternalServiceException` : The service encountered an internal error. + /// - `ValidationException` : An exception was thrown for a validation issue. Review the available parameters for the API request. + public func getPredictiveScalingForecast(input: GetPredictiveScalingForecastInput) async throws -> GetPredictiveScalingForecastOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getPredictiveScalingForecast") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "application-autoscaling") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetPredictiveScalingForecastInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetPredictiveScalingForecastOutput.httpOutput(from:), GetPredictiveScalingForecastOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: ApplicationAutoScalingClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AnyScaleFrontendService.GetPredictiveScalingForecast")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetPredictiveScalingForecastInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "ApplicationAutoScaling") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetPredictiveScalingForecast") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListTagsForResource` operation on the `AnyScaleFrontendService` service. /// /// Returns all the tags on the specified Application Auto Scaling scalable target. For general information about tags, including the format and syntax, see [Tagging your Amazon Web Services resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the Amazon Web Services General Reference. diff --git a/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/Models.swift b/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/Models.swift index 9d863c506ec..c94b5ab9485 100644 --- a/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/Models.swift +++ b/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/Models.swift @@ -17,6 +17,7 @@ import enum SmithyReadWrite.ReaderError @_spi(SmithyReadWrite) import enum SmithyReadWrite.ReadingClosures @_spi(SmithyReadWrite) import enum SmithyReadWrite.WritingClosures @_spi(SmithyTimestamps) import enum SmithyTimestamps.TimestampFormat +@_spi(SmithyReadWrite) import func SmithyReadWrite.timestampReadingClosure import protocol AWSClientRuntime.AWSServiceError import protocol ClientRuntime.HTTPError import protocol ClientRuntime.ModeledError @@ -856,6 +857,8 @@ extension ApplicationAutoScalingClientTypes { /// The minimum value to scale to in response to a scale-in activity. /// This member is required. public var minCapacity: Swift.Int? + /// The predicted capacity of the scalable target. + public var predictedCapacity: Swift.Int? /// The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. /// /// * ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/my-cluster/my-service. @@ -961,6 +964,7 @@ extension ApplicationAutoScalingClientTypes { creationTime: Foundation.Date? = nil, maxCapacity: Swift.Int? = nil, minCapacity: Swift.Int? = nil, + predictedCapacity: Swift.Int? = nil, resourceId: Swift.String? = nil, roleARN: Swift.String? = nil, scalableDimension: ApplicationAutoScalingClientTypes.ScalableDimension? = nil, @@ -972,6 +976,7 @@ extension ApplicationAutoScalingClientTypes { self.creationTime = creationTime self.maxCapacity = maxCapacity self.minCapacity = minCapacity + self.predictedCapacity = predictedCapacity self.resourceId = resourceId self.roleARN = roleARN self.scalableDimension = scalableDimension @@ -1507,12 +1512,14 @@ public struct DescribeScalingPoliciesInput: Swift.Sendable { extension ApplicationAutoScalingClientTypes { public enum PolicyType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case predictivescaling case stepscaling case targettrackingscaling case sdkUnknown(Swift.String) public static var allCases: [PolicyType] { return [ + .predictivescaling, .stepscaling, .targettrackingscaling ] @@ -1525,6 +1532,7 @@ extension ApplicationAutoScalingClientTypes { public var rawValue: Swift.String { switch self { + case .predictivescaling: return "PredictiveScaling" case .stepscaling: return "StepScaling" case .targettrackingscaling: return "TargetTrackingScaling" case let .sdkUnknown(s): return s @@ -1533,6 +1541,323 @@ extension ApplicationAutoScalingClientTypes { } } +extension ApplicationAutoScalingClientTypes { + + public enum PredictiveScalingMaxCapacityBreachBehavior: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case honormaxcapacity + case increasemaxcapacity + case sdkUnknown(Swift.String) + + public static var allCases: [PredictiveScalingMaxCapacityBreachBehavior] { + return [ + .honormaxcapacity, + .increasemaxcapacity + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .honormaxcapacity: return "HonorMaxCapacity" + case .increasemaxcapacity: return "IncreaseMaxCapacity" + case let .sdkUnknown(s): return s + } + } + } +} + +extension ApplicationAutoScalingClientTypes { + + /// Describes the dimension of a metric. + public struct PredictiveScalingMetricDimension: Swift.Sendable { + /// The name of the dimension. + /// This member is required. + public var name: Swift.String? + /// The value of the dimension. + /// This member is required. + public var value: Swift.String? + + public init( + name: Swift.String? = nil, + value: Swift.String? = nil + ) + { + self.name = name + self.value = value + } + } +} + +extension ApplicationAutoScalingClientTypes { + + /// Describes the scaling metric. + public struct PredictiveScalingMetric: Swift.Sendable { + /// Describes the dimensions of the metric. + public var dimensions: [ApplicationAutoScalingClientTypes.PredictiveScalingMetricDimension]? + /// The name of the metric. + public var metricName: Swift.String? + /// The namespace of the metric. + public var namespace: Swift.String? + + public init( + dimensions: [ApplicationAutoScalingClientTypes.PredictiveScalingMetricDimension]? = nil, + metricName: Swift.String? = nil, + namespace: Swift.String? = nil + ) + { + self.dimensions = dimensions + self.metricName = metricName + self.namespace = namespace + } + } +} + +extension ApplicationAutoScalingClientTypes { + + /// This structure defines the CloudWatch metric to return, along with the statistic and unit. + public struct PredictiveScalingMetricStat: Swift.Sendable { + /// The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html). + /// This member is required. + public var metric: ApplicationAutoScalingClientTypes.PredictiveScalingMetric? + /// The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the Amazon CloudWatch User Guide. The most commonly used metrics for predictive scaling are Average and Sum. + /// This member is required. + public var stat: Swift.String? + /// The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the Amazon CloudWatch API Reference. + public var unit: Swift.String? + + public init( + metric: ApplicationAutoScalingClientTypes.PredictiveScalingMetric? = nil, + stat: Swift.String? = nil, + unit: Swift.String? = nil + ) + { + self.metric = metric + self.stat = stat + self.unit = unit + } + } +} + +extension ApplicationAutoScalingClientTypes { + + /// The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp. + public struct PredictiveScalingMetricDataQuery: Swift.Sendable { + /// The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the Id of the other metrics to refer to those metrics, and can also use the Id of other expressions to use the result of those expressions. Conditional: Within each MetricDataQuery object, you must specify either Expression or MetricStat, but not both. + public var expression: Swift.String? + /// A short name that identifies the object's results in the response. This name must be unique among all MetricDataQuery objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter. + /// This member is required. + public var id: Swift.String? + /// A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + public var label: Swift.String? + /// Information about the metric data to return. Conditional: Within each MetricDataQuery object, you must specify either Expression or MetricStat, but not both. + public var metricStat: ApplicationAutoScalingClientTypes.PredictiveScalingMetricStat? + /// Indicates whether to return the timestamps and raw data values of this metric. If you use any math expressions, specify true for this value for only the final math expression that the metric specification is based on. You must specify false for ReturnData for all the other metrics and expressions used in the metric specification. If you are only retrieving metrics and not performing any math expressions, do not specify anything for ReturnData. This sets it to its default (true). + public var returnData: Swift.Bool? + + public init( + expression: Swift.String? = nil, + id: Swift.String? = nil, + label: Swift.String? = nil, + metricStat: ApplicationAutoScalingClientTypes.PredictiveScalingMetricStat? = nil, + returnData: Swift.Bool? = nil + ) + { + self.expression = expression + self.id = id + self.label = label + self.metricStat = metricStat + self.returnData = returnData + } + } +} + +extension ApplicationAutoScalingClientTypes { + + /// Represents a CloudWatch metric of your choosing for a predictive scaling policy. + public struct PredictiveScalingCustomizedMetricSpecification: Swift.Sendable { + /// One or more metric data queries to provide data points for a metric specification. + /// This member is required. + public var metricDataQueries: [ApplicationAutoScalingClientTypes.PredictiveScalingMetricDataQuery]? + + public init( + metricDataQueries: [ApplicationAutoScalingClientTypes.PredictiveScalingMetricDataQuery]? = nil + ) + { + self.metricDataQueries = metricDataQueries + } + } +} + +extension ApplicationAutoScalingClientTypes { + + /// Describes a load metric for a predictive scaling policy. When returned in the output of DescribePolicies, it indicates that a predictive scaling policy uses individually specified load and scaling metrics instead of a metric pair. + public struct PredictiveScalingPredefinedLoadMetricSpecification: Swift.Sendable { + /// The metric type. + /// This member is required. + public var predefinedMetricType: Swift.String? + /// A label that uniquely identifies a target group. + public var resourceLabel: Swift.String? + + public init( + predefinedMetricType: Swift.String? = nil, + resourceLabel: Swift.String? = nil + ) + { + self.predefinedMetricType = predefinedMetricType + self.resourceLabel = resourceLabel + } + } +} + +extension ApplicationAutoScalingClientTypes { + + /// Represents a metric pair for a predictive scaling policy. + public struct PredictiveScalingPredefinedMetricPairSpecification: Swift.Sendable { + /// Indicates which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. + /// This member is required. + public var predefinedMetricType: Swift.String? + /// A label that uniquely identifies a specific target group from which to determine the total and average request count. + public var resourceLabel: Swift.String? + + public init( + predefinedMetricType: Swift.String? = nil, + resourceLabel: Swift.String? = nil + ) + { + self.predefinedMetricType = predefinedMetricType + self.resourceLabel = resourceLabel + } + } +} + +extension ApplicationAutoScalingClientTypes { + + /// Describes a scaling metric for a predictive scaling policy. When returned in the output of DescribePolicies, it indicates that a predictive scaling policy uses individually specified load and scaling metrics instead of a metric pair. + public struct PredictiveScalingPredefinedScalingMetricSpecification: Swift.Sendable { + /// The metric type. + /// This member is required. + public var predefinedMetricType: Swift.String? + /// A label that uniquely identifies a specific target group from which to determine the average request count. + public var resourceLabel: Swift.String? + + public init( + predefinedMetricType: Swift.String? = nil, + resourceLabel: Swift.String? = nil + ) + { + self.predefinedMetricType = predefinedMetricType + self.resourceLabel = resourceLabel + } + } +} + +extension ApplicationAutoScalingClientTypes { + + /// This structure specifies the metrics and target utilization settings for a predictive scaling policy. You must specify either a metric pair, or a load metric and a scaling metric individually. Specifying a metric pair instead of individual metrics provides a simpler way to configure metrics for a scaling policy. You choose the metric pair, and the policy automatically knows the correct sum and average statistics to use for the load metric and the scaling metric. + public struct PredictiveScalingMetricSpecification: Swift.Sendable { + /// The customized capacity metric specification. + public var customizedCapacityMetricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification? + /// The customized load metric specification. + public var customizedLoadMetricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification? + /// The customized scaling metric specification. + public var customizedScalingMetricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification? + /// The predefined load metric specification. + public var predefinedLoadMetricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedLoadMetricSpecification? + /// The predefined metric pair specification that determines the appropriate scaling metric and load metric to use. + public var predefinedMetricPairSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedMetricPairSpecification? + /// The predefined scaling metric specification. + public var predefinedScalingMetricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedScalingMetricSpecification? + /// Specifies the target utilization. + /// This member is required. + public var targetValue: Swift.Double? + + public init( + customizedCapacityMetricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification? = nil, + customizedLoadMetricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification? = nil, + customizedScalingMetricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification? = nil, + predefinedLoadMetricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedLoadMetricSpecification? = nil, + predefinedMetricPairSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedMetricPairSpecification? = nil, + predefinedScalingMetricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedScalingMetricSpecification? = nil, + targetValue: Swift.Double? = nil + ) + { + self.customizedCapacityMetricSpecification = customizedCapacityMetricSpecification + self.customizedLoadMetricSpecification = customizedLoadMetricSpecification + self.customizedScalingMetricSpecification = customizedScalingMetricSpecification + self.predefinedLoadMetricSpecification = predefinedLoadMetricSpecification + self.predefinedMetricPairSpecification = predefinedMetricPairSpecification + self.predefinedScalingMetricSpecification = predefinedScalingMetricSpecification + self.targetValue = targetValue + } + } +} + +extension ApplicationAutoScalingClientTypes { + + public enum PredictiveScalingMode: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case forecastandscale + case forecastonly + case sdkUnknown(Swift.String) + + public static var allCases: [PredictiveScalingMode] { + return [ + .forecastandscale, + .forecastonly + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .forecastandscale: return "ForecastAndScale" + case .forecastonly: return "ForecastOnly" + case let .sdkUnknown(s): return s + } + } + } +} + +extension ApplicationAutoScalingClientTypes { + + /// Represents a predictive scaling policy configuration. + public struct PredictiveScalingPolicyConfiguration: Swift.Sendable { + /// Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity. Defaults to HonorMaxCapacity if not specified. + public var maxCapacityBreachBehavior: ApplicationAutoScalingClientTypes.PredictiveScalingMaxCapacityBreachBehavior? + /// The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55. Required if the MaxCapacityBreachBehavior property is set to IncreaseMaxCapacity, and cannot be used otherwise. + public var maxCapacityBuffer: Swift.Int? + /// This structure includes the metrics and target utilization to use for predictive scaling. This is an array, but we currently only support a single metric specification. That is, you can specify a target value and a single metric pair, or a target value and one scaling metric and one load metric. + /// This member is required. + public var metricSpecifications: [ApplicationAutoScalingClientTypes.PredictiveScalingMetricSpecification]? + /// The predictive scaling mode. Defaults to ForecastOnly if not specified. + public var mode: ApplicationAutoScalingClientTypes.PredictiveScalingMode? + /// The amount of time, in seconds, that the start time can be advanced. The value must be less than the forecast interval duration of 3600 seconds (60 minutes). Defaults to 300 seconds if not specified. + public var schedulingBufferTime: Swift.Int? + + public init( + maxCapacityBreachBehavior: ApplicationAutoScalingClientTypes.PredictiveScalingMaxCapacityBreachBehavior? = nil, + maxCapacityBuffer: Swift.Int? = nil, + metricSpecifications: [ApplicationAutoScalingClientTypes.PredictiveScalingMetricSpecification]? = nil, + mode: ApplicationAutoScalingClientTypes.PredictiveScalingMode? = nil, + schedulingBufferTime: Swift.Int? = nil + ) + { + self.maxCapacityBreachBehavior = maxCapacityBreachBehavior + self.maxCapacityBuffer = maxCapacityBuffer + self.metricSpecifications = metricSpecifications + self.mode = mode + self.schedulingBufferTime = schedulingBufferTime + } + } +} + extension ApplicationAutoScalingClientTypes { public enum MetricAggregationType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -1951,7 +2276,7 @@ extension ApplicationAutoScalingClientTypes { extension ApplicationAutoScalingClientTypes { - /// Represents a predefined metric for a target tracking scaling policy to use with Application Auto Scaling. For more information, [Predefined metrics for target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/monitor-cloudwatch-metrics.html#predefined-metrics) in the Application Auto Scaling User Guide. + /// Represents a predefined metric for a target tracking scaling policy to use with Application Auto Scaling. For more information, [Predefined metrics for target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/monitoring-cloudwatch.html#predefined-metrics) in the Application Auto Scaling User Guide. public struct PredefinedMetricSpecification: Swift.Sendable { /// The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services. /// This member is required. @@ -2032,6 +2357,8 @@ extension ApplicationAutoScalingClientTypes { /// The scaling policy type. The following policy types are supported: TargetTrackingScaling—Not supported for Amazon EMR StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. /// This member is required. public var policyType: ApplicationAutoScalingClientTypes.PolicyType? + /// The predictive scaling policy configuration. + public var predictiveScalingPolicyConfiguration: ApplicationAutoScalingClientTypes.PredictiveScalingPolicyConfiguration? /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. /// /// * ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/my-cluster/my-service. @@ -2136,6 +2463,7 @@ extension ApplicationAutoScalingClientTypes { policyARN: Swift.String? = nil, policyName: Swift.String? = nil, policyType: ApplicationAutoScalingClientTypes.PolicyType? = nil, + predictiveScalingPolicyConfiguration: ApplicationAutoScalingClientTypes.PredictiveScalingPolicyConfiguration? = nil, resourceId: Swift.String? = nil, scalableDimension: ApplicationAutoScalingClientTypes.ScalableDimension? = nil, serviceNamespace: ApplicationAutoScalingClientTypes.ServiceNamespace? = nil, @@ -2148,6 +2476,7 @@ extension ApplicationAutoScalingClientTypes { self.policyARN = policyARN self.policyName = policyName self.policyType = policyType + self.predictiveScalingPolicyConfiguration = predictiveScalingPolicyConfiguration self.resourceId = resourceId self.scalableDimension = scalableDimension self.serviceNamespace = serviceNamespace @@ -2481,6 +2810,113 @@ public struct DescribeScheduledActionsOutput: Swift.Sendable { } } +public struct GetPredictiveScalingForecastInput: Swift.Sendable { + /// The exclusive end time of the time range for the forecast data to get. The maximum time duration between the start and end time is 30 days. + /// This member is required. + public var endTime: Foundation.Date? + /// The name of the policy. + /// This member is required. + public var policyName: Swift.String? + /// The identifier of the resource. + /// This member is required. + public var resourceId: Swift.String? + /// The scalable dimension. + /// This member is required. + public var scalableDimension: ApplicationAutoScalingClientTypes.ScalableDimension? + /// The namespace of the Amazon Web Services service that provides the resource. For a resource provided by your own application or service, use custom-resource instead. + /// This member is required. + public var serviceNamespace: ApplicationAutoScalingClientTypes.ServiceNamespace? + /// The inclusive start time of the time range for the forecast data to get. At most, the date and time can be one year before the current date and time + /// This member is required. + public var startTime: Foundation.Date? + + public init( + endTime: Foundation.Date? = nil, + policyName: Swift.String? = nil, + resourceId: Swift.String? = nil, + scalableDimension: ApplicationAutoScalingClientTypes.ScalableDimension? = nil, + serviceNamespace: ApplicationAutoScalingClientTypes.ServiceNamespace? = nil, + startTime: Foundation.Date? = nil + ) + { + self.endTime = endTime + self.policyName = policyName + self.resourceId = resourceId + self.scalableDimension = scalableDimension + self.serviceNamespace = serviceNamespace + self.startTime = startTime + } +} + +extension ApplicationAutoScalingClientTypes { + + /// A GetPredictiveScalingForecast call returns the capacity forecast for a predictive scaling policy. This structure includes the data points for that capacity forecast, along with the timestamps of those data points. + public struct CapacityForecast: Swift.Sendable { + /// The timestamps for the data points, in UTC format. + /// This member is required. + public var timestamps: [Foundation.Date]? + /// The values of the data points. + /// This member is required. + public var values: [Swift.Double]? + + public init( + timestamps: [Foundation.Date]? = nil, + values: [Swift.Double]? = nil + ) + { + self.timestamps = timestamps + self.values = values + } + } +} + +extension ApplicationAutoScalingClientTypes { + + /// A GetPredictiveScalingForecast call returns the load forecast for a predictive scaling policy. This structure includes the data points for that load forecast, along with the timestamps of those data points and the metric specification. + public struct LoadForecast: Swift.Sendable { + /// The metric specification for the load forecast. + /// This member is required. + public var metricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingMetricSpecification? + /// The timestamps for the data points, in UTC format. + /// This member is required. + public var timestamps: [Foundation.Date]? + /// The values of the data points. + /// This member is required. + public var values: [Swift.Double]? + + public init( + metricSpecification: ApplicationAutoScalingClientTypes.PredictiveScalingMetricSpecification? = nil, + timestamps: [Foundation.Date]? = nil, + values: [Swift.Double]? = nil + ) + { + self.metricSpecification = metricSpecification + self.timestamps = timestamps + self.values = values + } + } +} + +public struct GetPredictiveScalingForecastOutput: Swift.Sendable { + /// The capacity forecast. + public var capacityForecast: ApplicationAutoScalingClientTypes.CapacityForecast? + /// The load forecast. + public var loadForecast: [ApplicationAutoScalingClientTypes.LoadForecast]? + /// The time the forecast was made. + public var updateTime: Foundation.Date? + + public init( + capacityForecast: ApplicationAutoScalingClientTypes.CapacityForecast? = nil, + loadForecast: [ApplicationAutoScalingClientTypes.LoadForecast]? = nil, + updateTime: Foundation.Date? = nil + ) + { + self.capacityForecast = capacityForecast + self.loadForecast = loadForecast + self.updateTime = updateTime + } +} + /// The specified resource doesn't exist. public struct ResourceNotFoundException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -2564,6 +3000,8 @@ public struct PutScalingPolicyInput: Swift.Sendable { public var policyName: Swift.String? /// The scaling policy type. This parameter is required if you are creating a scaling policy. The following policy types are supported: TargetTrackingScaling—Not supported for Amazon EMR. StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the Application Auto Scaling User Guide. public var policyType: ApplicationAutoScalingClientTypes.PolicyType? + /// The configuration of the predictive scaling policy. + public var predictiveScalingPolicyConfiguration: ApplicationAutoScalingClientTypes.PredictiveScalingPolicyConfiguration? /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. /// /// * ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/my-cluster/my-service. @@ -2665,6 +3103,7 @@ public struct PutScalingPolicyInput: Swift.Sendable { public init( policyName: Swift.String? = nil, policyType: ApplicationAutoScalingClientTypes.PolicyType? = nil, + predictiveScalingPolicyConfiguration: ApplicationAutoScalingClientTypes.PredictiveScalingPolicyConfiguration? = nil, resourceId: Swift.String? = nil, scalableDimension: ApplicationAutoScalingClientTypes.ScalableDimension? = nil, serviceNamespace: ApplicationAutoScalingClientTypes.ServiceNamespace? = nil, @@ -2674,6 +3113,7 @@ public struct PutScalingPolicyInput: Swift.Sendable { { self.policyName = policyName self.policyType = policyType + self.predictiveScalingPolicyConfiguration = predictiveScalingPolicyConfiguration self.resourceId = resourceId self.scalableDimension = scalableDimension self.serviceNamespace = serviceNamespace @@ -3139,6 +3579,13 @@ extension DescribeScheduledActionsInput { } } +extension GetPredictiveScalingForecastInput { + + static func urlPathProvider(_ value: GetPredictiveScalingForecastInput) -> Swift.String? { + return "/" + } +} + extension ListTagsForResourceInput { static func urlPathProvider(_ value: ListTagsForResourceInput) -> Swift.String? { @@ -3264,6 +3711,19 @@ extension DescribeScheduledActionsInput { } } +extension GetPredictiveScalingForecastInput { + + static func write(value: GetPredictiveScalingForecastInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["EndTime"].writeTimestamp(value.endTime, format: SmithyTimestamps.TimestampFormat.epochSeconds) + try writer["PolicyName"].write(value.policyName) + try writer["ResourceId"].write(value.resourceId) + try writer["ScalableDimension"].write(value.scalableDimension) + try writer["ServiceNamespace"].write(value.serviceNamespace) + try writer["StartTime"].writeTimestamp(value.startTime, format: SmithyTimestamps.TimestampFormat.epochSeconds) + } +} + extension ListTagsForResourceInput { static func write(value: ListTagsForResourceInput?, to writer: SmithyJSON.Writer) throws { @@ -3278,6 +3738,7 @@ extension PutScalingPolicyInput { guard let value else { return } try writer["PolicyName"].write(value.policyName) try writer["PolicyType"].write(value.policyType) + try writer["PredictiveScalingPolicyConfiguration"].write(value.predictiveScalingPolicyConfiguration, with: ApplicationAutoScalingClientTypes.PredictiveScalingPolicyConfiguration.write(value:to:)) try writer["ResourceId"].write(value.resourceId) try writer["ScalableDimension"].write(value.scalableDimension) try writer["ServiceNamespace"].write(value.serviceNamespace) @@ -3408,6 +3869,20 @@ extension DescribeScheduledActionsOutput { } } +extension GetPredictiveScalingForecastOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetPredictiveScalingForecastOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetPredictiveScalingForecastOutput() + value.capacityForecast = try reader["CapacityForecast"].readIfPresent(with: ApplicationAutoScalingClientTypes.CapacityForecast.read(from:)) + value.loadForecast = try reader["LoadForecast"].readListIfPresent(memberReadingClosure: ApplicationAutoScalingClientTypes.LoadForecast.read(from:), memberNodeInfo: "member", isFlattened: false) + value.updateTime = try reader["UpdateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + return value + } +} + extension ListTagsForResourceOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTagsForResourceOutput { @@ -3586,6 +4061,21 @@ enum DescribeScheduledActionsOutputError { } } +enum GetPredictiveScalingForecastOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InternalServiceException": return try InternalServiceException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListTagsForResourceOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -3814,6 +4304,7 @@ extension ApplicationAutoScalingClientTypes.ScalableTarget { value.scalableDimension = try reader["ScalableDimension"].readIfPresent() ?? .sdkUnknown("") value.minCapacity = try reader["MinCapacity"].readIfPresent() ?? 0 value.maxCapacity = try reader["MaxCapacity"].readIfPresent() ?? 0 + value.predictedCapacity = try reader["PredictedCapacity"].readIfPresent() value.roleARN = try reader["RoleARN"].readIfPresent() ?? "" value.creationTime = try reader["CreationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.suspendedState = try reader["SuspendedState"].readIfPresent(with: ApplicationAutoScalingClientTypes.SuspendedState.read(from:)) @@ -3888,6 +4379,7 @@ extension ApplicationAutoScalingClientTypes.ScalingPolicy { value.policyType = try reader["PolicyType"].readIfPresent() ?? .sdkUnknown("") value.stepScalingPolicyConfiguration = try reader["StepScalingPolicyConfiguration"].readIfPresent(with: ApplicationAutoScalingClientTypes.StepScalingPolicyConfiguration.read(from:)) value.targetTrackingScalingPolicyConfiguration = try reader["TargetTrackingScalingPolicyConfiguration"].readIfPresent(with: ApplicationAutoScalingClientTypes.TargetTrackingScalingPolicyConfiguration.read(from:)) + value.predictiveScalingPolicyConfiguration = try reader["PredictiveScalingPolicyConfiguration"].readIfPresent(with: ApplicationAutoScalingClientTypes.PredictiveScalingPolicyConfiguration.read(from:)) value.alarms = try reader["Alarms"].readListIfPresent(memberReadingClosure: ApplicationAutoScalingClientTypes.Alarm.read(from:), memberNodeInfo: "member", isFlattened: false) value.creationTime = try reader["CreationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") return value @@ -3905,6 +4397,200 @@ extension ApplicationAutoScalingClientTypes.Alarm { } } +extension ApplicationAutoScalingClientTypes.PredictiveScalingPolicyConfiguration { + + static func write(value: ApplicationAutoScalingClientTypes.PredictiveScalingPolicyConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["MaxCapacityBreachBehavior"].write(value.maxCapacityBreachBehavior) + try writer["MaxCapacityBuffer"].write(value.maxCapacityBuffer) + try writer["MetricSpecifications"].writeList(value.metricSpecifications, memberWritingClosure: ApplicationAutoScalingClientTypes.PredictiveScalingMetricSpecification.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["Mode"].write(value.mode) + try writer["SchedulingBufferTime"].write(value.schedulingBufferTime) + } + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.PredictiveScalingPolicyConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.PredictiveScalingPolicyConfiguration() + value.metricSpecifications = try reader["MetricSpecifications"].readListIfPresent(memberReadingClosure: ApplicationAutoScalingClientTypes.PredictiveScalingMetricSpecification.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.mode = try reader["Mode"].readIfPresent() + value.schedulingBufferTime = try reader["SchedulingBufferTime"].readIfPresent() + value.maxCapacityBreachBehavior = try reader["MaxCapacityBreachBehavior"].readIfPresent() + value.maxCapacityBuffer = try reader["MaxCapacityBuffer"].readIfPresent() + return value + } +} + +extension ApplicationAutoScalingClientTypes.PredictiveScalingMetricSpecification { + + static func write(value: ApplicationAutoScalingClientTypes.PredictiveScalingMetricSpecification?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["CustomizedCapacityMetricSpecification"].write(value.customizedCapacityMetricSpecification, with: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification.write(value:to:)) + try writer["CustomizedLoadMetricSpecification"].write(value.customizedLoadMetricSpecification, with: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification.write(value:to:)) + try writer["CustomizedScalingMetricSpecification"].write(value.customizedScalingMetricSpecification, with: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification.write(value:to:)) + try writer["PredefinedLoadMetricSpecification"].write(value.predefinedLoadMetricSpecification, with: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedLoadMetricSpecification.write(value:to:)) + try writer["PredefinedMetricPairSpecification"].write(value.predefinedMetricPairSpecification, with: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedMetricPairSpecification.write(value:to:)) + try writer["PredefinedScalingMetricSpecification"].write(value.predefinedScalingMetricSpecification, with: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedScalingMetricSpecification.write(value:to:)) + try writer["TargetValue"].write(value.targetValue) + } + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.PredictiveScalingMetricSpecification { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.PredictiveScalingMetricSpecification() + value.targetValue = try reader["TargetValue"].readIfPresent() ?? 0.0 + value.predefinedMetricPairSpecification = try reader["PredefinedMetricPairSpecification"].readIfPresent(with: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedMetricPairSpecification.read(from:)) + value.predefinedScalingMetricSpecification = try reader["PredefinedScalingMetricSpecification"].readIfPresent(with: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedScalingMetricSpecification.read(from:)) + value.predefinedLoadMetricSpecification = try reader["PredefinedLoadMetricSpecification"].readIfPresent(with: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedLoadMetricSpecification.read(from:)) + value.customizedScalingMetricSpecification = try reader["CustomizedScalingMetricSpecification"].readIfPresent(with: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification.read(from:)) + value.customizedLoadMetricSpecification = try reader["CustomizedLoadMetricSpecification"].readIfPresent(with: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification.read(from:)) + value.customizedCapacityMetricSpecification = try reader["CustomizedCapacityMetricSpecification"].readIfPresent(with: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification.read(from:)) + return value + } +} + +extension ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification { + + static func write(value: ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["MetricDataQueries"].writeList(value.metricDataQueries, memberWritingClosure: ApplicationAutoScalingClientTypes.PredictiveScalingMetricDataQuery.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.PredictiveScalingCustomizedMetricSpecification() + value.metricDataQueries = try reader["MetricDataQueries"].readListIfPresent(memberReadingClosure: ApplicationAutoScalingClientTypes.PredictiveScalingMetricDataQuery.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension ApplicationAutoScalingClientTypes.PredictiveScalingMetricDataQuery { + + static func write(value: ApplicationAutoScalingClientTypes.PredictiveScalingMetricDataQuery?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Expression"].write(value.expression) + try writer["Id"].write(value.id) + try writer["Label"].write(value.label) + try writer["MetricStat"].write(value.metricStat, with: ApplicationAutoScalingClientTypes.PredictiveScalingMetricStat.write(value:to:)) + try writer["ReturnData"].write(value.returnData) + } + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.PredictiveScalingMetricDataQuery { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.PredictiveScalingMetricDataQuery() + value.id = try reader["Id"].readIfPresent() ?? "" + value.expression = try reader["Expression"].readIfPresent() + value.metricStat = try reader["MetricStat"].readIfPresent(with: ApplicationAutoScalingClientTypes.PredictiveScalingMetricStat.read(from:)) + value.label = try reader["Label"].readIfPresent() + value.returnData = try reader["ReturnData"].readIfPresent() + return value + } +} + +extension ApplicationAutoScalingClientTypes.PredictiveScalingMetricStat { + + static func write(value: ApplicationAutoScalingClientTypes.PredictiveScalingMetricStat?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Metric"].write(value.metric, with: ApplicationAutoScalingClientTypes.PredictiveScalingMetric.write(value:to:)) + try writer["Stat"].write(value.stat) + try writer["Unit"].write(value.unit) + } + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.PredictiveScalingMetricStat { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.PredictiveScalingMetricStat() + value.metric = try reader["Metric"].readIfPresent(with: ApplicationAutoScalingClientTypes.PredictiveScalingMetric.read(from:)) + value.stat = try reader["Stat"].readIfPresent() ?? "" + value.unit = try reader["Unit"].readIfPresent() + return value + } +} + +extension ApplicationAutoScalingClientTypes.PredictiveScalingMetric { + + static func write(value: ApplicationAutoScalingClientTypes.PredictiveScalingMetric?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Dimensions"].writeList(value.dimensions, memberWritingClosure: ApplicationAutoScalingClientTypes.PredictiveScalingMetricDimension.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["MetricName"].write(value.metricName) + try writer["Namespace"].write(value.namespace) + } + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.PredictiveScalingMetric { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.PredictiveScalingMetric() + value.dimensions = try reader["Dimensions"].readListIfPresent(memberReadingClosure: ApplicationAutoScalingClientTypes.PredictiveScalingMetricDimension.read(from:), memberNodeInfo: "member", isFlattened: false) + value.metricName = try reader["MetricName"].readIfPresent() + value.namespace = try reader["Namespace"].readIfPresent() + return value + } +} + +extension ApplicationAutoScalingClientTypes.PredictiveScalingMetricDimension { + + static func write(value: ApplicationAutoScalingClientTypes.PredictiveScalingMetricDimension?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Name"].write(value.name) + try writer["Value"].write(value.value) + } + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.PredictiveScalingMetricDimension { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.PredictiveScalingMetricDimension() + value.name = try reader["Name"].readIfPresent() ?? "" + value.value = try reader["Value"].readIfPresent() ?? "" + return value + } +} + +extension ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedLoadMetricSpecification { + + static func write(value: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedLoadMetricSpecification?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["PredefinedMetricType"].write(value.predefinedMetricType) + try writer["ResourceLabel"].write(value.resourceLabel) + } + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedLoadMetricSpecification { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedLoadMetricSpecification() + value.predefinedMetricType = try reader["PredefinedMetricType"].readIfPresent() ?? "" + value.resourceLabel = try reader["ResourceLabel"].readIfPresent() + return value + } +} + +extension ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedScalingMetricSpecification { + + static func write(value: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedScalingMetricSpecification?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["PredefinedMetricType"].write(value.predefinedMetricType) + try writer["ResourceLabel"].write(value.resourceLabel) + } + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedScalingMetricSpecification { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedScalingMetricSpecification() + value.predefinedMetricType = try reader["PredefinedMetricType"].readIfPresent() ?? "" + value.resourceLabel = try reader["ResourceLabel"].readIfPresent() + return value + } +} + +extension ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedMetricPairSpecification { + + static func write(value: ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedMetricPairSpecification?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["PredefinedMetricType"].write(value.predefinedMetricType) + try writer["ResourceLabel"].write(value.resourceLabel) + } + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedMetricPairSpecification { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.PredictiveScalingPredefinedMetricPairSpecification() + value.predefinedMetricType = try reader["PredefinedMetricType"].readIfPresent() ?? "" + value.resourceLabel = try reader["ResourceLabel"].readIfPresent() + return value + } +} + extension ApplicationAutoScalingClientTypes.TargetTrackingScalingPolicyConfiguration { static func write(value: ApplicationAutoScalingClientTypes.TargetTrackingScalingPolicyConfiguration?, to writer: SmithyJSON.Writer) throws { @@ -4146,4 +4832,27 @@ extension ApplicationAutoScalingClientTypes.ScalableTargetAction { } } +extension ApplicationAutoScalingClientTypes.LoadForecast { + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.LoadForecast { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.LoadForecast() + value.timestamps = try reader["Timestamps"].readListIfPresent(memberReadingClosure: SmithyReadWrite.timestampReadingClosure(format: SmithyTimestamps.TimestampFormat.epochSeconds), memberNodeInfo: "member", isFlattened: false) ?? [] + value.values = try reader["Values"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readDouble(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.metricSpecification = try reader["MetricSpecification"].readIfPresent(with: ApplicationAutoScalingClientTypes.PredictiveScalingMetricSpecification.read(from:)) + return value + } +} + +extension ApplicationAutoScalingClientTypes.CapacityForecast { + + static func read(from reader: SmithyJSON.Reader) throws -> ApplicationAutoScalingClientTypes.CapacityForecast { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ApplicationAutoScalingClientTypes.CapacityForecast() + value.timestamps = try reader["Timestamps"].readListIfPresent(memberReadingClosure: SmithyReadWrite.timestampReadingClosure(format: SmithyTimestamps.TimestampFormat.epochSeconds), memberNodeInfo: "member", isFlattened: false) ?? [] + value.values = try reader["Values"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readDouble(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + public enum ApplicationAutoScalingClientTypes {} diff --git a/Sources/Services/AWSApplicationCostProfiler/Sources/AWSApplicationCostProfiler/ApplicationCostProfilerClient.swift b/Sources/Services/AWSApplicationCostProfiler/Sources/AWSApplicationCostProfiler/ApplicationCostProfilerClient.swift index e2bd742f469..b7b5d9ae5b0 100644 --- a/Sources/Services/AWSApplicationCostProfiler/Sources/AWSApplicationCostProfiler/ApplicationCostProfilerClient.swift +++ b/Sources/Services/AWSApplicationCostProfiler/Sources/AWSApplicationCostProfiler/ApplicationCostProfilerClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ApplicationCostProfilerClient: ClientRuntime.Client { public static let clientName = "ApplicationCostProfilerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ApplicationCostProfilerClient.ApplicationCostProfilerClientConfiguration let serviceName = "ApplicationCostProfiler" diff --git a/Sources/Services/AWSApplicationDiscoveryService/Sources/AWSApplicationDiscoveryService/ApplicationDiscoveryClient.swift b/Sources/Services/AWSApplicationDiscoveryService/Sources/AWSApplicationDiscoveryService/ApplicationDiscoveryClient.swift index 5864432a6ea..3a987c25aa1 100644 --- a/Sources/Services/AWSApplicationDiscoveryService/Sources/AWSApplicationDiscoveryService/ApplicationDiscoveryClient.swift +++ b/Sources/Services/AWSApplicationDiscoveryService/Sources/AWSApplicationDiscoveryService/ApplicationDiscoveryClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ApplicationDiscoveryClient: ClientRuntime.Client { public static let clientName = "ApplicationDiscoveryClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ApplicationDiscoveryClient.ApplicationDiscoveryClientConfiguration let serviceName = "Application Discovery" diff --git a/Sources/Services/AWSApplicationInsights/Sources/AWSApplicationInsights/ApplicationInsightsClient.swift b/Sources/Services/AWSApplicationInsights/Sources/AWSApplicationInsights/ApplicationInsightsClient.swift index bb6860ea075..f4c6c89d67c 100644 --- a/Sources/Services/AWSApplicationInsights/Sources/AWSApplicationInsights/ApplicationInsightsClient.swift +++ b/Sources/Services/AWSApplicationInsights/Sources/AWSApplicationInsights/ApplicationInsightsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ApplicationInsightsClient: ClientRuntime.Client { public static let clientName = "ApplicationInsightsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ApplicationInsightsClient.ApplicationInsightsClientConfiguration let serviceName = "Application Insights" diff --git a/Sources/Services/AWSApplicationSignals/Sources/AWSApplicationSignals/ApplicationSignalsClient.swift b/Sources/Services/AWSApplicationSignals/Sources/AWSApplicationSignals/ApplicationSignalsClient.swift index 981ff25e787..9df1bcdf8a5 100644 --- a/Sources/Services/AWSApplicationSignals/Sources/AWSApplicationSignals/ApplicationSignalsClient.swift +++ b/Sources/Services/AWSApplicationSignals/Sources/AWSApplicationSignals/ApplicationSignalsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ApplicationSignalsClient: ClientRuntime.Client { public static let clientName = "ApplicationSignalsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ApplicationSignalsClient.ApplicationSignalsClientConfiguration let serviceName = "Application Signals" diff --git a/Sources/Services/AWSArtifact/Sources/AWSArtifact/ArtifactClient.swift b/Sources/Services/AWSArtifact/Sources/AWSArtifact/ArtifactClient.swift index 79b4f5657e8..c12b99a4ae5 100644 --- a/Sources/Services/AWSArtifact/Sources/AWSArtifact/ArtifactClient.swift +++ b/Sources/Services/AWSArtifact/Sources/AWSArtifact/ArtifactClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ArtifactClient: ClientRuntime.Client { public static let clientName = "ArtifactClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ArtifactClient.ArtifactClientConfiguration let serviceName = "Artifact" diff --git a/Sources/Services/AWSAthena/Sources/AWSAthena/AthenaClient.swift b/Sources/Services/AWSAthena/Sources/AWSAthena/AthenaClient.swift index 1ffb349fea1..451ccd7b521 100644 --- a/Sources/Services/AWSAthena/Sources/AWSAthena/AthenaClient.swift +++ b/Sources/Services/AWSAthena/Sources/AWSAthena/AthenaClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AthenaClient: ClientRuntime.Client { public static let clientName = "AthenaClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AthenaClient.AthenaClientConfiguration let serviceName = "Athena" diff --git a/Sources/Services/AWSAuditManager/Sources/AWSAuditManager/AuditManagerClient.swift b/Sources/Services/AWSAuditManager/Sources/AWSAuditManager/AuditManagerClient.swift index 301bf67113b..27b28ac9f77 100644 --- a/Sources/Services/AWSAuditManager/Sources/AWSAuditManager/AuditManagerClient.swift +++ b/Sources/Services/AWSAuditManager/Sources/AWSAuditManager/AuditManagerClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AuditManagerClient: ClientRuntime.Client { public static let clientName = "AuditManagerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AuditManagerClient.AuditManagerClientConfiguration let serviceName = "AuditManager" diff --git a/Sources/Services/AWSAutoScaling/Sources/AWSAutoScaling/AutoScalingClient.swift b/Sources/Services/AWSAutoScaling/Sources/AWSAutoScaling/AutoScalingClient.swift index 28ec9a2ec30..08aa0084e48 100644 --- a/Sources/Services/AWSAutoScaling/Sources/AWSAutoScaling/AutoScalingClient.swift +++ b/Sources/Services/AWSAutoScaling/Sources/AWSAutoScaling/AutoScalingClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AutoScalingClient: ClientRuntime.Client { public static let clientName = "AutoScalingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AutoScalingClient.AutoScalingClientConfiguration let serviceName = "Auto Scaling" diff --git a/Sources/Services/AWSAutoScalingPlans/Sources/AWSAutoScalingPlans/AutoScalingPlansClient.swift b/Sources/Services/AWSAutoScalingPlans/Sources/AWSAutoScalingPlans/AutoScalingPlansClient.swift index aa277ef4c52..ad467801cb1 100644 --- a/Sources/Services/AWSAutoScalingPlans/Sources/AWSAutoScalingPlans/AutoScalingPlansClient.swift +++ b/Sources/Services/AWSAutoScalingPlans/Sources/AWSAutoScalingPlans/AutoScalingPlansClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class AutoScalingPlansClient: ClientRuntime.Client { public static let clientName = "AutoScalingPlansClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: AutoScalingPlansClient.AutoScalingPlansClientConfiguration let serviceName = "Auto Scaling Plans" diff --git a/Sources/Services/AWSB2bi/Sources/AWSB2bi/B2biClient.swift b/Sources/Services/AWSB2bi/Sources/AWSB2bi/B2biClient.swift index 9f4274cb6b0..d570aa72256 100644 --- a/Sources/Services/AWSB2bi/Sources/AWSB2bi/B2biClient.swift +++ b/Sources/Services/AWSB2bi/Sources/AWSB2bi/B2biClient.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class B2biClient: ClientRuntime.Client { public static let clientName = "B2biClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: B2biClient.B2biClientConfiguration let serviceName = "b2bi" diff --git a/Sources/Services/AWSBCMDataExports/Sources/AWSBCMDataExports/BCMDataExportsClient.swift b/Sources/Services/AWSBCMDataExports/Sources/AWSBCMDataExports/BCMDataExportsClient.swift index 81a0e431f20..946547c7917 100644 --- a/Sources/Services/AWSBCMDataExports/Sources/AWSBCMDataExports/BCMDataExportsClient.swift +++ b/Sources/Services/AWSBCMDataExports/Sources/AWSBCMDataExports/BCMDataExportsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BCMDataExportsClient: ClientRuntime.Client { public static let clientName = "BCMDataExportsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BCMDataExportsClient.BCMDataExportsClientConfiguration let serviceName = "BCM Data Exports" diff --git a/Sources/Services/AWSBackup/Sources/AWSBackup/BackupClient.swift b/Sources/Services/AWSBackup/Sources/AWSBackup/BackupClient.swift index 52b3f161813..6c865ce6b91 100644 --- a/Sources/Services/AWSBackup/Sources/AWSBackup/BackupClient.swift +++ b/Sources/Services/AWSBackup/Sources/AWSBackup/BackupClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BackupClient: ClientRuntime.Client { public static let clientName = "BackupClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BackupClient.BackupClientConfiguration let serviceName = "Backup" diff --git a/Sources/Services/AWSBackupGateway/Sources/AWSBackupGateway/BackupGatewayClient.swift b/Sources/Services/AWSBackupGateway/Sources/AWSBackupGateway/BackupGatewayClient.swift index faa367b93b5..9ec6c73bf47 100644 --- a/Sources/Services/AWSBackupGateway/Sources/AWSBackupGateway/BackupGatewayClient.swift +++ b/Sources/Services/AWSBackupGateway/Sources/AWSBackupGateway/BackupGatewayClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BackupGatewayClient: ClientRuntime.Client { public static let clientName = "BackupGatewayClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BackupGatewayClient.BackupGatewayClientConfiguration let serviceName = "Backup Gateway" diff --git a/Sources/Services/AWSBatch/Sources/AWSBatch/BatchClient.swift b/Sources/Services/AWSBatch/Sources/AWSBatch/BatchClient.swift index b3a3096f236..c1da36fec88 100644 --- a/Sources/Services/AWSBatch/Sources/AWSBatch/BatchClient.swift +++ b/Sources/Services/AWSBatch/Sources/AWSBatch/BatchClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BatchClient: ClientRuntime.Client { public static let clientName = "BatchClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BatchClient.BatchClientConfiguration let serviceName = "Batch" diff --git a/Sources/Services/AWSBedrock/Sources/AWSBedrock/BedrockClient.swift b/Sources/Services/AWSBedrock/Sources/AWSBedrock/BedrockClient.swift index e96cca002b3..8edda712136 100644 --- a/Sources/Services/AWSBedrock/Sources/AWSBedrock/BedrockClient.swift +++ b/Sources/Services/AWSBedrock/Sources/AWSBedrock/BedrockClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BedrockClient: ClientRuntime.Client { public static let clientName = "BedrockClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BedrockClient.BedrockClientConfiguration let serviceName = "Bedrock" diff --git a/Sources/Services/AWSBedrockAgent/Sources/AWSBedrockAgent/BedrockAgentClient.swift b/Sources/Services/AWSBedrockAgent/Sources/AWSBedrockAgent/BedrockAgentClient.swift index dc9f9a53f9a..60977000c5b 100644 --- a/Sources/Services/AWSBedrockAgent/Sources/AWSBedrockAgent/BedrockAgentClient.swift +++ b/Sources/Services/AWSBedrockAgent/Sources/AWSBedrockAgent/BedrockAgentClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BedrockAgentClient: ClientRuntime.Client { public static let clientName = "BedrockAgentClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BedrockAgentClient.BedrockAgentClientConfiguration let serviceName = "Bedrock Agent" diff --git a/Sources/Services/AWSBedrockAgentRuntime/Sources/AWSBedrockAgentRuntime/BedrockAgentRuntimeClient.swift b/Sources/Services/AWSBedrockAgentRuntime/Sources/AWSBedrockAgentRuntime/BedrockAgentRuntimeClient.swift index 15f934ca50c..da702d97a39 100644 --- a/Sources/Services/AWSBedrockAgentRuntime/Sources/AWSBedrockAgentRuntime/BedrockAgentRuntimeClient.swift +++ b/Sources/Services/AWSBedrockAgentRuntime/Sources/AWSBedrockAgentRuntime/BedrockAgentRuntimeClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BedrockAgentRuntimeClient: ClientRuntime.Client { public static let clientName = "BedrockAgentRuntimeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BedrockAgentRuntimeClient.BedrockAgentRuntimeClientConfiguration let serviceName = "Bedrock Agent Runtime" diff --git a/Sources/Services/AWSBedrockRuntime/Sources/AWSBedrockRuntime/BedrockRuntimeClient.swift b/Sources/Services/AWSBedrockRuntime/Sources/AWSBedrockRuntime/BedrockRuntimeClient.swift index 06cc22b2808..f2c36b66a7d 100644 --- a/Sources/Services/AWSBedrockRuntime/Sources/AWSBedrockRuntime/BedrockRuntimeClient.swift +++ b/Sources/Services/AWSBedrockRuntime/Sources/AWSBedrockRuntime/BedrockRuntimeClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BedrockRuntimeClient: ClientRuntime.Client { public static let clientName = "BedrockRuntimeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BedrockRuntimeClient.BedrockRuntimeClientConfiguration let serviceName = "Bedrock Runtime" diff --git a/Sources/Services/AWSBilling/Sources/AWSBilling/BillingClient.swift b/Sources/Services/AWSBilling/Sources/AWSBilling/BillingClient.swift index 7d57fba74f3..b59e7648a5d 100644 --- a/Sources/Services/AWSBilling/Sources/AWSBilling/BillingClient.swift +++ b/Sources/Services/AWSBilling/Sources/AWSBilling/BillingClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BillingClient: ClientRuntime.Client { public static let clientName = "BillingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BillingClient.BillingClientConfiguration let serviceName = "Billing" diff --git a/Sources/Services/AWSBillingconductor/Sources/AWSBillingconductor/BillingconductorClient.swift b/Sources/Services/AWSBillingconductor/Sources/AWSBillingconductor/BillingconductorClient.swift index afc76b079fa..5823472583f 100644 --- a/Sources/Services/AWSBillingconductor/Sources/AWSBillingconductor/BillingconductorClient.swift +++ b/Sources/Services/AWSBillingconductor/Sources/AWSBillingconductor/BillingconductorClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BillingconductorClient: ClientRuntime.Client { public static let clientName = "BillingconductorClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BillingconductorClient.BillingconductorClientConfiguration let serviceName = "billingconductor" diff --git a/Sources/Services/AWSBraket/Sources/AWSBraket/BraketClient.swift b/Sources/Services/AWSBraket/Sources/AWSBraket/BraketClient.swift index fb2c90128fc..1aff7dc9b45 100644 --- a/Sources/Services/AWSBraket/Sources/AWSBraket/BraketClient.swift +++ b/Sources/Services/AWSBraket/Sources/AWSBraket/BraketClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BraketClient: ClientRuntime.Client { public static let clientName = "BraketClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BraketClient.BraketClientConfiguration let serviceName = "Braket" diff --git a/Sources/Services/AWSBudgets/Sources/AWSBudgets/BudgetsClient.swift b/Sources/Services/AWSBudgets/Sources/AWSBudgets/BudgetsClient.swift index 68e4ccfc32d..45769093c96 100644 --- a/Sources/Services/AWSBudgets/Sources/AWSBudgets/BudgetsClient.swift +++ b/Sources/Services/AWSBudgets/Sources/AWSBudgets/BudgetsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class BudgetsClient: ClientRuntime.Client { public static let clientName = "BudgetsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: BudgetsClient.BudgetsClientConfiguration let serviceName = "Budgets" diff --git a/Sources/Services/AWSChatbot/Sources/AWSChatbot/ChatbotClient.swift b/Sources/Services/AWSChatbot/Sources/AWSChatbot/ChatbotClient.swift index ec30cf6d849..0a4c599c2fe 100644 --- a/Sources/Services/AWSChatbot/Sources/AWSChatbot/ChatbotClient.swift +++ b/Sources/Services/AWSChatbot/Sources/AWSChatbot/ChatbotClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ChatbotClient: ClientRuntime.Client { public static let clientName = "ChatbotClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ChatbotClient.ChatbotClientConfiguration let serviceName = "chatbot" diff --git a/Sources/Services/AWSChime/Sources/AWSChime/ChimeClient.swift b/Sources/Services/AWSChime/Sources/AWSChime/ChimeClient.swift index 02527a2262a..d32b0b1087d 100644 --- a/Sources/Services/AWSChime/Sources/AWSChime/ChimeClient.swift +++ b/Sources/Services/AWSChime/Sources/AWSChime/ChimeClient.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ChimeClient: ClientRuntime.Client { public static let clientName = "ChimeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ChimeClient.ChimeClientConfiguration let serviceName = "Chime" diff --git a/Sources/Services/AWSChimeSDKIdentity/Sources/AWSChimeSDKIdentity/ChimeSDKIdentityClient.swift b/Sources/Services/AWSChimeSDKIdentity/Sources/AWSChimeSDKIdentity/ChimeSDKIdentityClient.swift index d06a6105c53..2da675050d7 100644 --- a/Sources/Services/AWSChimeSDKIdentity/Sources/AWSChimeSDKIdentity/ChimeSDKIdentityClient.swift +++ b/Sources/Services/AWSChimeSDKIdentity/Sources/AWSChimeSDKIdentity/ChimeSDKIdentityClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ChimeSDKIdentityClient: ClientRuntime.Client { public static let clientName = "ChimeSDKIdentityClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ChimeSDKIdentityClient.ChimeSDKIdentityClientConfiguration let serviceName = "Chime SDK Identity" diff --git a/Sources/Services/AWSChimeSDKMediaPipelines/Sources/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClient.swift b/Sources/Services/AWSChimeSDKMediaPipelines/Sources/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClient.swift index 092e7c97207..0614e283e7a 100644 --- a/Sources/Services/AWSChimeSDKMediaPipelines/Sources/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClient.swift +++ b/Sources/Services/AWSChimeSDKMediaPipelines/Sources/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ChimeSDKMediaPipelinesClient: ClientRuntime.Client { public static let clientName = "ChimeSDKMediaPipelinesClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ChimeSDKMediaPipelinesClient.ChimeSDKMediaPipelinesClientConfiguration let serviceName = "Chime SDK Media Pipelines" diff --git a/Sources/Services/AWSChimeSDKMeetings/Sources/AWSChimeSDKMeetings/ChimeSDKMeetingsClient.swift b/Sources/Services/AWSChimeSDKMeetings/Sources/AWSChimeSDKMeetings/ChimeSDKMeetingsClient.swift index 97005ead32a..b88a89b89ef 100644 --- a/Sources/Services/AWSChimeSDKMeetings/Sources/AWSChimeSDKMeetings/ChimeSDKMeetingsClient.swift +++ b/Sources/Services/AWSChimeSDKMeetings/Sources/AWSChimeSDKMeetings/ChimeSDKMeetingsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ChimeSDKMeetingsClient: ClientRuntime.Client { public static let clientName = "ChimeSDKMeetingsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ChimeSDKMeetingsClient.ChimeSDKMeetingsClientConfiguration let serviceName = "Chime SDK Meetings" diff --git a/Sources/Services/AWSChimeSDKMessaging/Sources/AWSChimeSDKMessaging/ChimeSDKMessagingClient.swift b/Sources/Services/AWSChimeSDKMessaging/Sources/AWSChimeSDKMessaging/ChimeSDKMessagingClient.swift index f9676476c1f..a61825b2cdb 100644 --- a/Sources/Services/AWSChimeSDKMessaging/Sources/AWSChimeSDKMessaging/ChimeSDKMessagingClient.swift +++ b/Sources/Services/AWSChimeSDKMessaging/Sources/AWSChimeSDKMessaging/ChimeSDKMessagingClient.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ChimeSDKMessagingClient: ClientRuntime.Client { public static let clientName = "ChimeSDKMessagingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ChimeSDKMessagingClient.ChimeSDKMessagingClientConfiguration let serviceName = "Chime SDK Messaging" diff --git a/Sources/Services/AWSChimeSDKVoice/Sources/AWSChimeSDKVoice/ChimeSDKVoiceClient.swift b/Sources/Services/AWSChimeSDKVoice/Sources/AWSChimeSDKVoice/ChimeSDKVoiceClient.swift index 3d732cc6644..e1c6c83db31 100644 --- a/Sources/Services/AWSChimeSDKVoice/Sources/AWSChimeSDKVoice/ChimeSDKVoiceClient.swift +++ b/Sources/Services/AWSChimeSDKVoice/Sources/AWSChimeSDKVoice/ChimeSDKVoiceClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ChimeSDKVoiceClient: ClientRuntime.Client { public static let clientName = "ChimeSDKVoiceClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ChimeSDKVoiceClient.ChimeSDKVoiceClientConfiguration let serviceName = "Chime SDK Voice" diff --git a/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/CleanRoomsClient.swift b/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/CleanRoomsClient.swift index 0272b354fc7..1694c88cef4 100644 --- a/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/CleanRoomsClient.swift +++ b/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/CleanRoomsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CleanRoomsClient: ClientRuntime.Client { public static let clientName = "CleanRoomsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CleanRoomsClient.CleanRoomsClientConfiguration let serviceName = "CleanRooms" diff --git a/Sources/Services/AWSCleanRoomsML/Sources/AWSCleanRoomsML/CleanRoomsMLClient.swift b/Sources/Services/AWSCleanRoomsML/Sources/AWSCleanRoomsML/CleanRoomsMLClient.swift index 0a68016de06..8f4140a3ba0 100644 --- a/Sources/Services/AWSCleanRoomsML/Sources/AWSCleanRoomsML/CleanRoomsMLClient.swift +++ b/Sources/Services/AWSCleanRoomsML/Sources/AWSCleanRoomsML/CleanRoomsMLClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CleanRoomsMLClient: ClientRuntime.Client { public static let clientName = "CleanRoomsMLClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CleanRoomsMLClient.CleanRoomsMLClientConfiguration let serviceName = "CleanRoomsML" diff --git a/Sources/Services/AWSCloud9/Sources/AWSCloud9/Cloud9Client.swift b/Sources/Services/AWSCloud9/Sources/AWSCloud9/Cloud9Client.swift index e5219b4b5e3..828946d0505 100644 --- a/Sources/Services/AWSCloud9/Sources/AWSCloud9/Cloud9Client.swift +++ b/Sources/Services/AWSCloud9/Sources/AWSCloud9/Cloud9Client.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class Cloud9Client: ClientRuntime.Client { public static let clientName = "Cloud9Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: Cloud9Client.Cloud9ClientConfiguration let serviceName = "Cloud9" diff --git a/Sources/Services/AWSCloudControl/Sources/AWSCloudControl/CloudControlClient.swift b/Sources/Services/AWSCloudControl/Sources/AWSCloudControl/CloudControlClient.swift index 1a96776eaea..380e3917604 100644 --- a/Sources/Services/AWSCloudControl/Sources/AWSCloudControl/CloudControlClient.swift +++ b/Sources/Services/AWSCloudControl/Sources/AWSCloudControl/CloudControlClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudControlClient: ClientRuntime.Client { public static let clientName = "CloudControlClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudControlClient.CloudControlClientConfiguration let serviceName = "CloudControl" diff --git a/Sources/Services/AWSCloudDirectory/Sources/AWSCloudDirectory/CloudDirectoryClient.swift b/Sources/Services/AWSCloudDirectory/Sources/AWSCloudDirectory/CloudDirectoryClient.swift index 6aee0f34983..f3e6b95711f 100644 --- a/Sources/Services/AWSCloudDirectory/Sources/AWSCloudDirectory/CloudDirectoryClient.swift +++ b/Sources/Services/AWSCloudDirectory/Sources/AWSCloudDirectory/CloudDirectoryClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudDirectoryClient: ClientRuntime.Client { public static let clientName = "CloudDirectoryClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudDirectoryClient.CloudDirectoryClientConfiguration let serviceName = "CloudDirectory" diff --git a/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/CloudFormationClient.swift b/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/CloudFormationClient.swift index 177ba6f68cc..261db5dd3e1 100644 --- a/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/CloudFormationClient.swift +++ b/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/CloudFormationClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudFormationClient: ClientRuntime.Client { public static let clientName = "CloudFormationClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudFormationClient.CloudFormationClientConfiguration let serviceName = "CloudFormation" diff --git a/Sources/Services/AWSCloudFront/Sources/AWSCloudFront/CloudFrontClient.swift b/Sources/Services/AWSCloudFront/Sources/AWSCloudFront/CloudFrontClient.swift index 65b3834afe5..94edf9ed58d 100644 --- a/Sources/Services/AWSCloudFront/Sources/AWSCloudFront/CloudFrontClient.swift +++ b/Sources/Services/AWSCloudFront/Sources/AWSCloudFront/CloudFrontClient.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudFrontClient: ClientRuntime.Client { public static let clientName = "CloudFrontClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudFrontClient.CloudFrontClientConfiguration let serviceName = "CloudFront" diff --git a/Sources/Services/AWSCloudFront/Sources/AWSCloudFront/Models.swift b/Sources/Services/AWSCloudFront/Sources/AWSCloudFront/Models.swift index cb1fb04519a..1b55a418529 100644 --- a/Sources/Services/AWSCloudFront/Sources/AWSCloudFront/Models.swift +++ b/Sources/Services/AWSCloudFront/Sources/AWSCloudFront/Models.swift @@ -3665,7 +3665,36 @@ extension CloudFrontClientTypes { extension CloudFrontClientTypes { - /// An origin group includes two origins (a primary origin and a second origin to failover to) and a failover criteria that you specify. You create an origin group to support origin failover in CloudFront. When you create or update a distribution, you can specify the origin group instead of a single origin, and CloudFront will failover from the primary origin to the second origin under the failover conditions that you've chosen. + public enum OriginGroupSelectionCriteria: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case `default` + case mediaqualitybased + case sdkUnknown(Swift.String) + + public static var allCases: [OriginGroupSelectionCriteria] { + return [ + .default, + .mediaqualitybased + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .default: return "default" + case .mediaqualitybased: return "media-quality-based" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CloudFrontClientTypes { + + /// An origin group includes two origins (a primary origin and a secondary origin to failover to) and a failover criteria that you specify. You create an origin group to support origin failover in CloudFront. When you create or update a distribution, you can specify the origin group instead of a single origin, and CloudFront will failover from the primary origin to the secondary origin under the failover conditions that you've chosen. Optionally, you can choose selection criteria for your origin group to specify how your origins are selected when your distribution routes viewer requests. public struct OriginGroup: Swift.Sendable, Swift.Equatable { /// A complex type that contains information about the failover criteria for an origin group. /// This member is required. @@ -3676,16 +3705,20 @@ extension CloudFrontClientTypes { /// A complex type that contains information about the origins in an origin group. /// This member is required. public var members: CloudFrontClientTypes.OriginGroupMembers? + /// The selection criteria for the origin group. For more information, see [Create an origin group](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html#concept_origin_groups.creating) in the Amazon CloudFront Developer Guide. + public var selectionCriteria: CloudFrontClientTypes.OriginGroupSelectionCriteria? public init( failoverCriteria: CloudFrontClientTypes.OriginGroupFailoverCriteria? = nil, id: Swift.String? = nil, - members: CloudFrontClientTypes.OriginGroupMembers? = nil + members: CloudFrontClientTypes.OriginGroupMembers? = nil, + selectionCriteria: CloudFrontClientTypes.OriginGroupSelectionCriteria? = nil ) { self.failoverCriteria = failoverCriteria self.id = id self.members = members + self.selectionCriteria = selectionCriteria } } } @@ -22937,6 +22970,7 @@ extension CloudFrontClientTypes.OriginGroup { try writer["FailoverCriteria"].write(value.failoverCriteria, with: CloudFrontClientTypes.OriginGroupFailoverCriteria.write(value:to:)) try writer["Id"].write(value.id) try writer["Members"].write(value.members, with: CloudFrontClientTypes.OriginGroupMembers.write(value:to:)) + try writer["SelectionCriteria"].write(value.selectionCriteria) } static func read(from reader: SmithyXML.Reader) throws -> CloudFrontClientTypes.OriginGroup { @@ -22945,6 +22979,7 @@ extension CloudFrontClientTypes.OriginGroup { value.id = try reader["Id"].readIfPresent() ?? "" value.failoverCriteria = try reader["FailoverCriteria"].readIfPresent(with: CloudFrontClientTypes.OriginGroupFailoverCriteria.read(from:)) value.members = try reader["Members"].readIfPresent(with: CloudFrontClientTypes.OriginGroupMembers.read(from:)) + value.selectionCriteria = try reader["SelectionCriteria"].readIfPresent() return value } } diff --git a/Sources/Services/AWSCloudFrontKeyValueStore/Sources/AWSCloudFrontKeyValueStore/CloudFrontKeyValueStoreClient.swift b/Sources/Services/AWSCloudFrontKeyValueStore/Sources/AWSCloudFrontKeyValueStore/CloudFrontKeyValueStoreClient.swift index 7b65253a3c9..8d4efd70ae2 100644 --- a/Sources/Services/AWSCloudFrontKeyValueStore/Sources/AWSCloudFrontKeyValueStore/CloudFrontKeyValueStoreClient.swift +++ b/Sources/Services/AWSCloudFrontKeyValueStore/Sources/AWSCloudFrontKeyValueStore/CloudFrontKeyValueStoreClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudFrontKeyValueStoreClient: ClientRuntime.Client { public static let clientName = "CloudFrontKeyValueStoreClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudFrontKeyValueStoreClient.CloudFrontKeyValueStoreClientConfiguration let serviceName = "CloudFront KeyValueStore" diff --git a/Sources/Services/AWSCloudHSM/Sources/AWSCloudHSM/CloudHSMClient.swift b/Sources/Services/AWSCloudHSM/Sources/AWSCloudHSM/CloudHSMClient.swift index 52b5e894365..71953f68c48 100644 --- a/Sources/Services/AWSCloudHSM/Sources/AWSCloudHSM/CloudHSMClient.swift +++ b/Sources/Services/AWSCloudHSM/Sources/AWSCloudHSM/CloudHSMClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudHSMClient: ClientRuntime.Client { public static let clientName = "CloudHSMClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudHSMClient.CloudHSMClientConfiguration let serviceName = "CloudHSM" diff --git a/Sources/Services/AWSCloudHSMV2/Sources/AWSCloudHSMV2/CloudHSMV2Client.swift b/Sources/Services/AWSCloudHSMV2/Sources/AWSCloudHSMV2/CloudHSMV2Client.swift index 2c546db45c6..5b2d5012217 100644 --- a/Sources/Services/AWSCloudHSMV2/Sources/AWSCloudHSMV2/CloudHSMV2Client.swift +++ b/Sources/Services/AWSCloudHSMV2/Sources/AWSCloudHSMV2/CloudHSMV2Client.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudHSMV2Client: ClientRuntime.Client { public static let clientName = "CloudHSMV2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudHSMV2Client.CloudHSMV2ClientConfiguration let serviceName = "CloudHSM V2" diff --git a/Sources/Services/AWSCloudSearch/Sources/AWSCloudSearch/CloudSearchClient.swift b/Sources/Services/AWSCloudSearch/Sources/AWSCloudSearch/CloudSearchClient.swift index 3b99df2a558..46ec97da5d3 100644 --- a/Sources/Services/AWSCloudSearch/Sources/AWSCloudSearch/CloudSearchClient.swift +++ b/Sources/Services/AWSCloudSearch/Sources/AWSCloudSearch/CloudSearchClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudSearchClient: ClientRuntime.Client { public static let clientName = "CloudSearchClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudSearchClient.CloudSearchClientConfiguration let serviceName = "CloudSearch" diff --git a/Sources/Services/AWSCloudSearchDomain/Sources/AWSCloudSearchDomain/CloudSearchDomainClient.swift b/Sources/Services/AWSCloudSearchDomain/Sources/AWSCloudSearchDomain/CloudSearchDomainClient.swift index c0ef8f01c59..d2eb3169744 100644 --- a/Sources/Services/AWSCloudSearchDomain/Sources/AWSCloudSearchDomain/CloudSearchDomainClient.swift +++ b/Sources/Services/AWSCloudSearchDomain/Sources/AWSCloudSearchDomain/CloudSearchDomainClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudSearchDomainClient: ClientRuntime.Client { public static let clientName = "CloudSearchDomainClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudSearchDomainClient.CloudSearchDomainClientConfiguration let serviceName = "CloudSearch Domain" diff --git a/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/CloudTrailClient.swift b/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/CloudTrailClient.swift index f31e5e5352c..a6eed74e740 100644 --- a/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/CloudTrailClient.swift +++ b/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/CloudTrailClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudTrailClient: ClientRuntime.Client { public static let clientName = "CloudTrailClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudTrailClient.CloudTrailClientConfiguration let serviceName = "CloudTrail" @@ -197,9 +197,9 @@ extension CloudTrailClient { extension CloudTrailClient { /// Performs the `AddTags` operation on the `CloudTrail_20131101` service. /// - /// Adds one or more tags to a trail, event data store, or channel, up to a limit of 50. Overwrites an existing tag's value when a new value is specified for an existing tag key. Tag key names must be unique; you cannot have two keys with the same name but different values. If you specify a key without a value, the tag will be created with the specified key and a value of null. You can tag a trail or event data store that applies to all Amazon Web Services Regions only from the Region in which the trail or event data store was created (also known as its home Region). + /// Adds one or more tags to a trail, event data store, dashboard, or channel, up to a limit of 50. Overwrites an existing tag's value when a new value is specified for an existing tag key. Tag key names must be unique; you cannot have two keys with the same name but different values. If you specify a key without a value, the tag will be created with the specified key and a value of null. You can tag a trail or event data store that applies to all Amazon Web Services Regions only from the Region in which the trail or event data store was created (also known as its home Region). /// - /// - Parameter AddTagsInput : Specifies the tags to add to a trail, event data store, or channel. + /// - Parameter AddTagsInput : Specifies the tags to add to a trail, event data store, dashboard, or channel. /// /// - Returns: `AddTagsOutput` : Returns the objects or data if successful. Otherwise, returns an error. /// @@ -208,7 +208,7 @@ extension CloudTrailClient { /// __Possible Exceptions:__ /// - `ChannelARNInvalidException` : This exception is thrown when the specified value of ChannelARN is not valid. /// - `ChannelNotFoundException` : This exception is thrown when CloudTrail cannot find the specified channel. - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. /// - `EventDataStoreARNInvalidException` : The specified event data store ARN is not valid or does not map to an event data store in your account. /// - `EventDataStoreNotFoundException` : The specified event data store was not found. @@ -230,7 +230,7 @@ extension CloudTrailClient { /// - `OperationNotPermittedException` : This exception is thrown when the requested operation is not permitted. /// - `ResourceNotFoundException` : This exception is thrown when the specified resource is not found. /// - `ResourceTypeNotSupportedException` : This exception is thrown when the specified resource type is not supported by CloudTrail. - /// - `TagsLimitExceededException` : The number of tags per trail, event data store, or channel has exceeded the permitted amount. Currently, the limit is 50. + /// - `TagsLimitExceededException` : The number of tags per trail, event data store, dashboard, or channel has exceeded the permitted amount. Currently, the limit is 50. /// - `UnsupportedOperationException` : This exception is thrown when the requested operation is not supported. public func addTags(input: AddTagsInput) async throws -> AddTagsOutput { let context = Smithy.ContextBuilder() @@ -390,7 +390,7 @@ extension CloudTrailClient { /// - `InvalidSourceException` : This exception is thrown when the specified value of Source is not valid. /// - `InvalidTagParameterException` : This exception is thrown when the specified tag key or values are not valid. It can also occur if there are duplicate tags or too many tags on the resource. /// - `OperationNotPermittedException` : This exception is thrown when the requested operation is not permitted. - /// - `TagsLimitExceededException` : The number of tags per trail, event data store, or channel has exceeded the permitted amount. Currently, the limit is 50. + /// - `TagsLimitExceededException` : The number of tags per trail, event data store, dashboard, or channel has exceeded the permitted amount. Currently, the limit is 50. /// - `UnsupportedOperationException` : This exception is thrown when the requested operation is not supported. public func createChannel(input: CreateChannelInput) async throws -> CreateChannelOutput { let context = Smithy.ContextBuilder() @@ -450,6 +450,90 @@ extension CloudTrailClient { return try await op.execute(input: input) } + /// Performs the `CreateDashboard` operation on the `CloudTrail_20131101` service. + /// + /// Creates a custom dashboard or the Highlights dashboard. + /// + /// * Custom dashboards - Custom dashboards allow you to query events in any event data store type. You can add up to 10 widgets to a custom dashboard. You can manually refresh a custom dashboard, or you can set a refresh schedule. + /// + /// * Highlights dashboard - You can create the Highlights dashboard to see a summary of key user activities and API usage across all your event data stores. CloudTrail Lake manages the Highlights dashboard and refreshes the dashboard every 6 hours. To create the Highlights dashboard, you must set and enable a refresh schedule. + /// + /// + /// CloudTrail runs queries to populate the dashboard's widgets during a manual or scheduled refresh. CloudTrail must be granted permissions to run the StartQuery operation on your behalf. To provide permissions, run the PutResourcePolicy operation to attach a resource-based policy to each event data store. For more information, see [Example: Allow CloudTrail to run queries to populate a dashboard](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html#security_iam_resource-based-policy-examples-eds-dashboard) in the CloudTrail User Guide. To set a refresh schedule, CloudTrail must be granted permissions to run the StartDashboardRefresh operation to refresh the dashboard on your behalf. To provide permissions, run the PutResourcePolicy operation to attach a resource-based policy to the dashboard. For more information, see [ Resource-based policy example for a dashboard](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html#security_iam_resource-based-policy-examples-dashboards) in the CloudTrail User Guide. For more information about dashboards, see [CloudTrail Lake dashboards](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-dashboard.html) in the CloudTrail User Guide. + /// + /// - Parameter CreateDashboardInput : [no documentation found] + /// + /// - Returns: `CreateDashboardOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. + /// - `EventDataStoreNotFoundException` : The specified event data store was not found. + /// - `InactiveEventDataStoreException` : The event data store is inactive. + /// - `InsufficientEncryptionPolicyException` : For the CreateTrailPutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation. + /// - `InvalidQueryStatementException` : The query that was submitted has validation errors, or uses incorrect syntax or unsupported keywords. For more information about writing a query, see [Create or edit a query](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-create-edit-query.html) in the CloudTrail User Guide. + /// - `InvalidTagParameterException` : This exception is thrown when the specified tag key or values are not valid. It can also occur if there are duplicate tags or too many tags on the resource. + /// - `ServiceQuotaExceededException` : This exception is thrown when the quota is exceeded. For information about CloudTrail quotas, see [Service quotas](https://docs.aws.amazon.com/general/latest/gr/ct.html#limits_cloudtrail) in the Amazon Web Services General Reference. + /// - `UnsupportedOperationException` : This exception is thrown when the requested operation is not supported. + public func createDashboard(input: CreateDashboardInput) async throws -> CreateDashboardOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createDashboard") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cloudtrail") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateDashboardInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateDashboardOutput.httpOutput(from:), CreateDashboardOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudTrailClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CloudTrail_20131101.CreateDashboard")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateDashboardInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudTrail") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateDashboard") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `CreateEventDataStore` operation on the `CloudTrail_20131101` service. /// /// Creates a new event data store. @@ -466,7 +550,7 @@ extension CloudTrailClient { /// - `EventDataStoreAlreadyExistsException` : An event data store with that name already exists. /// - `EventDataStoreMaxLimitExceededException` : Your account has used the maximum number of event data stores. /// - `InsufficientDependencyServiceAccessPermissionException` : This exception is thrown when the IAM identity that is used to create the organization resource lacks one or more required permissions for creating an organization resource in a required service. - /// - `InsufficientEncryptionPolicyException` : This exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. + /// - `InsufficientEncryptionPolicyException` : For the CreateTrailPutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation. /// - `InvalidEventSelectorsException` : This exception is thrown when the PutEventSelectors operation is called with a number of event selectors, advanced event selectors, or data resources that is not valid. The combination of event selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250. You can: /// /// * Specify a valid number of event selectors (1 to 5) for a trail. @@ -561,7 +645,7 @@ extension CloudTrailClient { /// - `CloudWatchLogsDeliveryUnavailableException` : Cannot set a CloudWatch Logs delivery for this Region. /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. /// - `InsufficientDependencyServiceAccessPermissionException` : This exception is thrown when the IAM identity that is used to create the organization resource lacks one or more required permissions for creating an organization resource in a required service. - /// - `InsufficientEncryptionPolicyException` : This exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. + /// - `InsufficientEncryptionPolicyException` : For the CreateTrailPutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation. /// - `InsufficientS3BucketPolicyException` : This exception is thrown when the policy on the S3 bucket is not sufficient. /// - `InsufficientSnsTopicPolicyException` : This exception is thrown when the policy on the Amazon SNS topic is not sufficient. /// - `InvalidCloudWatchLogsLogGroupArnException` : This exception is thrown when the provided CloudWatch Logs log group is not valid. @@ -594,7 +678,7 @@ extension CloudTrailClient { /// - `OrganizationNotInAllFeaturesModeException` : This exception is thrown when Organizations is not configured to support all features. All features must be enabled in Organizations to support creating an organization trail or event data store. /// - `OrganizationsNotInUseException` : This exception is thrown when the request is made from an Amazon Web Services account that is not a member of an organization. To make this request, sign in using the credentials of an account that belongs to an organization. /// - `S3BucketDoesNotExistException` : This exception is thrown when the specified S3 bucket does not exist. - /// - `TagsLimitExceededException` : The number of tags per trail, event data store, or channel has exceeded the permitted amount. Currently, the limit is 50. + /// - `TagsLimitExceededException` : The number of tags per trail, event data store, dashboard, or channel has exceeded the permitted amount. Currently, the limit is 50. /// - `ThrottlingException` : This exception is thrown when the request rate exceeds the limit. /// - `TrailAlreadyExistsException` : This exception is thrown when the specified trail already exists. /// - `TrailNotProvidedException` : This exception is no longer in use. @@ -730,6 +814,78 @@ extension CloudTrailClient { return try await op.execute(input: input) } + /// Performs the `DeleteDashboard` operation on the `CloudTrail_20131101` service. + /// + /// Deletes the specified dashboard. You cannot delete a dashboard that has termination protection enabled. + /// + /// - Parameter DeleteDashboardInput : [no documentation found] + /// + /// - Returns: `DeleteDashboardOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. + /// - `ResourceNotFoundException` : This exception is thrown when the specified resource is not found. + /// - `UnsupportedOperationException` : This exception is thrown when the requested operation is not supported. + public func deleteDashboard(input: DeleteDashboardInput) async throws -> DeleteDashboardOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteDashboard") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cloudtrail") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteDashboardInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteDashboardOutput.httpOutput(from:), DeleteDashboardOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudTrailClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CloudTrail_20131101.DeleteDashboard")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteDashboardInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudTrail") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteDashboard") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DeleteEventDataStore` operation on the `CloudTrail_20131101` service. /// /// Disables the event data store specified by EventDataStore, which accepts an event data store ARN. After you run DeleteEventDataStore, the event data store enters a PENDING_DELETION state, and is automatically deleted after a wait period of seven days. TerminationProtectionEnabled must be set to False on the event data store and the FederationStatus must be DISABLED. You cannot delete an event data store if TerminationProtectionEnabled is True or the FederationStatus is ENABLED. After you run DeleteEventDataStore on an event data store, you cannot run ListQueries, DescribeQuery, or GetQueryResults on queries that are using an event data store in a PENDING_DELETION state. An event data store in the PENDING_DELETION state does not incur costs. @@ -815,7 +971,7 @@ extension CloudTrailClient { /// Performs the `DeleteResourcePolicy` operation on the `CloudTrail_20131101` service. /// - /// Deletes the resource-based policy attached to the CloudTrail channel. + /// Deletes the resource-based policy attached to the CloudTrail event data store, dashboard, or channel. /// /// - Parameter DeleteResourcePolicyInput : [no documentation found] /// @@ -824,8 +980,9 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ + /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. /// - `OperationNotPermittedException` : This exception is thrown when the requested operation is not permitted. - /// - `ResourceARNNotValidException` : This exception is thrown when the provided resource does not exist, or the ARN format of the resource is not valid. The following is the valid format for a resource ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel. + /// - `ResourceARNNotValidException` : This exception is thrown when the provided resource does not exist, or the ARN format of the resource is not valid. The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `ResourceNotFoundException` : This exception is thrown when the specified resource is not found. /// - `ResourcePolicyNotFoundException` : This exception is thrown when the specified resource policy is not found. /// - `ResourceTypeNotSupportedException` : This exception is thrown when the specified resource type is not supported by CloudTrail. @@ -899,7 +1056,7 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. /// - `InsufficientDependencyServiceAccessPermissionException` : This exception is thrown when the IAM identity that is used to create the organization resource lacks one or more required permissions for creating an organization resource in a required service. /// - `InvalidHomeRegionException` : This exception is thrown when an operation is called on a trail from a Region other than the Region in which the trail was created. @@ -1060,7 +1217,7 @@ extension CloudTrailClient { /// Performs the `DescribeQuery` operation on the `CloudTrail_20131101` service. /// - /// Returns metadata about a query, including query run time in milliseconds, number of events scanned and matched, and query status. If the query results were delivered to an S3 bucket, the response also provides the S3 URI and the delivery status. You must specify either a QueryID or a QueryAlias. Specifying the QueryAlias parameter returns information about the last query run for the alias. + /// Returns metadata about a query, including query run time in milliseconds, number of events scanned and matched, and query status. If the query results were delivered to an S3 bucket, the response also provides the S3 URI and the delivery status. You must specify either QueryId or QueryAlias. Specifying the QueryAlias parameter returns information about the last query run for the alias. You can provide RefreshId along with QueryAlias to view the query results of a dashboard query for the specified RefreshId. /// /// - Parameter DescribeQueryInput : [no documentation found] /// @@ -1146,7 +1303,7 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `InvalidTrailNameException` : This exception is thrown when the provided trail name is not valid. Trail names must meet the following requirements: /// /// * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) @@ -1536,6 +1693,77 @@ extension CloudTrailClient { return try await op.execute(input: input) } + /// Performs the `GetDashboard` operation on the `CloudTrail_20131101` service. + /// + /// Returns the specified dashboard. + /// + /// - Parameter GetDashboardInput : [no documentation found] + /// + /// - Returns: `GetDashboardOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ResourceNotFoundException` : This exception is thrown when the specified resource is not found. + /// - `UnsupportedOperationException` : This exception is thrown when the requested operation is not supported. + public func getDashboard(input: GetDashboardInput) async throws -> GetDashboardOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getDashboard") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cloudtrail") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetDashboardInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetDashboardOutput.httpOutput(from:), GetDashboardOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudTrailClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CloudTrail_20131101.GetDashboard")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetDashboardInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudTrail") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetDashboard") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `GetEventDataStore` operation on the `CloudTrail_20131101` service. /// /// Returns information about an event data store specified as either an ARN or the ID portion of the ARN. @@ -1639,7 +1867,7 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `InvalidTrailNameException` : This exception is thrown when the provided trail name is not valid. Trail names must meet the following requirements: /// /// * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) @@ -1797,7 +2025,7 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `InsightNotEnabledException` : If you run GetInsightSelectors on a trail or event data store that does not have Insights events enabled, the operation throws the exception InsightNotEnabledException. /// - `InvalidParameterCombinationException` : This exception is thrown when the combination of parameters provided is not valid. /// - `InvalidParameterException` : The request includes a parameter that is not valid. @@ -1889,7 +2117,7 @@ extension CloudTrailClient { /// - `EventDataStoreARNInvalidException` : The specified event data store ARN is not valid or does not map to an event data store in your account. /// - `EventDataStoreNotFoundException` : The specified event data store was not found. /// - `InactiveEventDataStoreException` : The event data store is inactive. - /// - `InsufficientEncryptionPolicyException` : This exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. + /// - `InsufficientEncryptionPolicyException` : For the CreateTrailPutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation. /// - `InvalidMaxResultsException` : This exception is thrown if the limit specified is not valid. /// - `InvalidNextTokenException` : A token that is not valid, or a token that was previously used in a request with different parameters. This exception is thrown if the token is not valid. /// - `InvalidParameterException` : The request includes a parameter that is not valid. @@ -1957,7 +2185,7 @@ extension CloudTrailClient { /// Performs the `GetResourcePolicy` operation on the `CloudTrail_20131101` service. /// - /// Retrieves the JSON text of the resource-based policy document attached to the CloudTrail channel. + /// Retrieves the JSON text of the resource-based policy document attached to the CloudTrail event data store, dashboard, or channel. /// /// - Parameter GetResourcePolicyInput : [no documentation found] /// @@ -1967,7 +2195,7 @@ extension CloudTrailClient { /// /// __Possible Exceptions:__ /// - `OperationNotPermittedException` : This exception is thrown when the requested operation is not permitted. - /// - `ResourceARNNotValidException` : This exception is thrown when the provided resource does not exist, or the ARN format of the resource is not valid. The following is the valid format for a resource ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel. + /// - `ResourceARNNotValidException` : This exception is thrown when the provided resource does not exist, or the ARN format of the resource is not valid. The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `ResourceNotFoundException` : This exception is thrown when the specified resource is not found. /// - `ResourcePolicyNotFoundException` : This exception is thrown when the specified resource policy is not found. /// - `ResourceTypeNotSupportedException` : This exception is thrown when the specified resource type is not supported by CloudTrail. @@ -2041,7 +2269,7 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `InvalidTrailNameException` : This exception is thrown when the provided trail name is not valid. Trail names must meet the following requirements: /// /// * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) @@ -2125,7 +2353,7 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `InvalidTrailNameException` : This exception is thrown when the provided trail name is not valid. Trail names must meet the following requirements: /// /// * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) @@ -2270,6 +2498,76 @@ extension CloudTrailClient { return try await op.execute(input: input) } + /// Performs the `ListDashboards` operation on the `CloudTrail_20131101` service. + /// + /// Returns information about all dashboards in the account, in the current Region. + /// + /// - Parameter ListDashboardsInput : [no documentation found] + /// + /// - Returns: `ListDashboardsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `UnsupportedOperationException` : This exception is thrown when the requested operation is not supported. + public func listDashboards(input: ListDashboardsInput) async throws -> ListDashboardsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listDashboards") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cloudtrail") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListDashboardsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListDashboardsOutput.httpOutput(from:), ListDashboardsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudTrailClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CloudTrail_20131101.ListDashboards")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListDashboardsInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudTrail") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListDashboards") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListEventDataStores` operation on the `CloudTrail_20131101` service. /// /// Returns information about all event data stores in the account, in the current Region. @@ -2727,7 +3025,7 @@ extension CloudTrailClient { /// Performs the `ListTags` operation on the `CloudTrail_20131101` service. /// - /// Lists the tags for the specified trails, event data stores, or channels in the current Region. + /// Lists the tags for the specified trails, event data stores, dashboards, or channels in the current Region. /// /// - Parameter ListTagsInput : Specifies a list of tags to return. /// @@ -2737,7 +3035,7 @@ extension CloudTrailClient { /// /// __Possible Exceptions:__ /// - `ChannelARNInvalidException` : This exception is thrown when the specified value of ChannelARN is not valid. - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `EventDataStoreARNInvalidException` : The specified event data store ARN is not valid or does not map to an event data store in your account. /// - `EventDataStoreNotFoundException` : The specified event data store was not found. /// - `InactiveEventDataStoreException` : The event data store is inactive. @@ -3024,7 +3322,7 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. /// - `InsufficientDependencyServiceAccessPermissionException` : This exception is thrown when the IAM identity that is used to create the organization resource lacks one or more required permissions for creating an organization resource in a required service. /// - `InvalidEventSelectorsException` : This exception is thrown when the PutEventSelectors operation is called with a number of event selectors, advanced event selectors, or data resources that is not valid. The combination of event selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250. You can: @@ -3123,8 +3421,8 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 - /// - `InsufficientEncryptionPolicyException` : This exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `InsufficientEncryptionPolicyException` : For the CreateTrailPutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation. /// - `InsufficientS3BucketPolicyException` : This exception is thrown when the policy on the S3 bucket is not sufficient. /// - `InvalidHomeRegionException` : This exception is thrown when an operation is called on a trail from a Region other than the Region in which the trail was created. /// - `InvalidInsightSelectorsException` : For PutInsightSelectors, this exception is thrown when the formatting or syntax of the InsightSelectors JSON statement is not valid, or the specified InsightType in the InsightSelectors statement is not valid. Valid values for InsightType are ApiCallRateInsight and ApiErrorRateInsight. To enable Insights on an event data store, the destination event data store specified by the InsightsDestination parameter must log Insights events and the source event data store specified by the EventDataStore parameter must log management events. For UpdateEventDataStore, this exception is thrown if Insights are enabled on the event data store and the updated advanced event selectors are not compatible with the configured InsightSelectors. If the InsightSelectors includes an InsightType of ApiCallRateInsight, the source event data store must log write management events. If the InsightSelectors includes an InsightType of ApiErrorRateInsight, the source event data store must log management events. @@ -3209,7 +3507,7 @@ extension CloudTrailClient { /// Performs the `PutResourcePolicy` operation on the `CloudTrail_20131101` service. /// - /// Attaches a resource-based permission policy to a CloudTrail channel that is used for an integration with an event source outside of Amazon Web Services. For more information about resource-based policies, see [CloudTrail resource-based policy examples](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html) in the CloudTrail User Guide. + /// Attaches a resource-based permission policy to a CloudTrail event data store, dashboard, or channel. For more information about resource-based policies, see [CloudTrail resource-based policy examples](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html) in the CloudTrail User Guide. /// /// - Parameter PutResourcePolicyInput : [no documentation found] /// @@ -3218,16 +3516,11 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ + /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. /// - `OperationNotPermittedException` : This exception is thrown when the requested operation is not permitted. - /// - `ResourceARNNotValidException` : This exception is thrown when the provided resource does not exist, or the ARN format of the resource is not valid. The following is the valid format for a resource ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel. + /// - `ResourceARNNotValidException` : This exception is thrown when the provided resource does not exist, or the ARN format of the resource is not valid. The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `ResourceNotFoundException` : This exception is thrown when the specified resource is not found. - /// - `ResourcePolicyNotValidException` : This exception is thrown when the resouce-based policy has syntax errors, or contains a principal that is not valid. The following are requirements for the resource policy: - /// - /// * Contains only one action: cloudtrail-data:PutAuditEvents - /// - /// * Contains at least one statement. The policy can have a maximum of 20 statements. - /// - /// * Each statement contains at least one principal. A statement can have a maximum of 50 principals. + /// - `ResourcePolicyNotValidException` : This exception is thrown when the resouce-based policy has syntax errors, or contains a principal that is not valid. /// - `ResourceTypeNotSupportedException` : This exception is thrown when the specified resource type is not supported by CloudTrail. /// - `UnsupportedOperationException` : This exception is thrown when the requested operation is not supported. public func putResourcePolicy(input: PutResourcePolicyInput) async throws -> PutResourcePolicyOutput { @@ -3372,9 +3665,9 @@ extension CloudTrailClient { /// Performs the `RemoveTags` operation on the `CloudTrail_20131101` service. /// - /// Removes the specified tags from a trail, event data store, or channel. + /// Removes the specified tags from a trail, event data store, dashboard, or channel. /// - /// - Parameter RemoveTagsInput : Specifies the tags to remove from a trail, event data store, or channel. + /// - Parameter RemoveTagsInput : Specifies the tags to remove from a trail, event data store, dashboard, or channel. /// /// - Returns: `RemoveTagsOutput` : Returns the objects or data listed below if successful. Otherwise, returns an error. /// @@ -3383,7 +3676,7 @@ extension CloudTrailClient { /// __Possible Exceptions:__ /// - `ChannelARNInvalidException` : This exception is thrown when the specified value of ChannelARN is not valid. /// - `ChannelNotFoundException` : This exception is thrown when CloudTrail cannot find the specified channel. - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. /// - `EventDataStoreARNInvalidException` : The specified event data store ARN is not valid or does not map to an event data store in your account. /// - `EventDataStoreNotFoundException` : The specified event data store was not found. @@ -3546,6 +3839,80 @@ extension CloudTrailClient { return try await op.execute(input: input) } + /// Performs the `StartDashboardRefresh` operation on the `CloudTrail_20131101` service. + /// + /// Starts a refresh of the specified dashboard. Each time a dashboard is refreshed, CloudTrail runs queries to populate the dashboard's widgets. CloudTrail must be granted permissions to run the StartQuery operation on your behalf. To provide permissions, run the PutResourcePolicy operation to attach a resource-based policy to each event data store. For more information, see [Example: Allow CloudTrail to run queries to populate a dashboard](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html#security_iam_resource-based-policy-examples-eds-dashboard) in the CloudTrail User Guide. + /// + /// - Parameter StartDashboardRefreshInput : [no documentation found] + /// + /// - Returns: `StartDashboardRefreshOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `EventDataStoreNotFoundException` : The specified event data store was not found. + /// - `InactiveEventDataStoreException` : The event data store is inactive. + /// - `ResourceNotFoundException` : This exception is thrown when the specified resource is not found. + /// - `ServiceQuotaExceededException` : This exception is thrown when the quota is exceeded. For information about CloudTrail quotas, see [Service quotas](https://docs.aws.amazon.com/general/latest/gr/ct.html#limits_cloudtrail) in the Amazon Web Services General Reference. + /// - `UnsupportedOperationException` : This exception is thrown when the requested operation is not supported. + public func startDashboardRefresh(input: StartDashboardRefreshInput) async throws -> StartDashboardRefreshOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "startDashboardRefresh") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cloudtrail") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(StartDashboardRefreshInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(StartDashboardRefreshOutput.httpOutput(from:), StartDashboardRefreshOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudTrailClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CloudTrail_20131101.StartDashboardRefresh")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: StartDashboardRefreshInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudTrail") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "StartDashboardRefresh") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `StartEventDataStoreIngestion` operation on the `CloudTrail_20131101` service. /// /// Starts the ingestion of live events on an event data store specified as either an ARN or the ID portion of the ARN. To start ingestion, the event data store Status must be STOPPED_INGESTION and the eventCategory must be Management, Data, NetworkActivity, or ConfigurationItem. @@ -3641,7 +4008,7 @@ extension CloudTrailClient { /// - `EventDataStoreNotFoundException` : The specified event data store was not found. /// - `ImportNotFoundException` : The specified import was not found. /// - `InactiveEventDataStoreException` : The event data store is inactive. - /// - `InsufficientEncryptionPolicyException` : This exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. + /// - `InsufficientEncryptionPolicyException` : For the CreateTrailPutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation. /// - `InvalidEventDataStoreCategoryException` : This exception is thrown when event categories of specified event data stores are not valid. /// - `InvalidEventDataStoreStatusException` : The event data store is not in a status that supports the operation. /// - `InvalidImportSourceException` : This exception is thrown when the provided source S3 bucket is not valid for import. @@ -3717,7 +4084,7 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. /// - `InsufficientDependencyServiceAccessPermissionException` : This exception is thrown when the IAM identity that is used to create the organization resource lacks one or more required permissions for creating an organization resource in a required service. /// - `InvalidHomeRegionException` : This exception is thrown when an operation is called on a trail from a Region other than the Region in which the trail was created. @@ -3810,7 +4177,7 @@ extension CloudTrailClient { /// - `EventDataStoreARNInvalidException` : The specified event data store ARN is not valid or does not map to an event data store in your account. /// - `EventDataStoreNotFoundException` : The specified event data store was not found. /// - `InactiveEventDataStoreException` : The event data store is inactive. - /// - `InsufficientEncryptionPolicyException` : This exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. + /// - `InsufficientEncryptionPolicyException` : For the CreateTrailPutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation. /// - `InsufficientS3BucketPolicyException` : This exception is thrown when the policy on the S3 bucket is not sufficient. /// - `InvalidParameterException` : The request includes a parameter that is not valid. /// - `InvalidQueryStatementException` : The query that was submitted has validation errors, or uses incorrect syntax or unsupported keywords. For more information about writing a query, see [Create or edit a query](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-create-edit-query.html) in the CloudTrail User Guide. @@ -4042,7 +4409,7 @@ extension CloudTrailClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. /// - `InsufficientDependencyServiceAccessPermissionException` : This exception is thrown when the IAM identity that is used to create the organization resource lacks one or more required permissions for creating an organization resource in a required service. /// - `InvalidHomeRegionException` : This exception is thrown when an operation is called on a trail from a Region other than the Region in which the trail was created. @@ -4200,6 +4567,83 @@ extension CloudTrailClient { return try await op.execute(input: input) } + /// Performs the `UpdateDashboard` operation on the `CloudTrail_20131101` service. + /// + /// Updates the specified dashboard. To set a refresh schedule, CloudTrail must be granted permissions to run the StartDashboardRefresh operation to refresh the dashboard on your behalf. To provide permissions, run the PutResourcePolicy operation to attach a resource-based policy to the dashboard. For more information, see [ Resource-based policy example for a dashboard](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html#security_iam_resource-based-policy-examples-dashboards) in the CloudTrail User Guide. CloudTrail runs queries to populate the dashboard's widgets during a manual or scheduled refresh. CloudTrail must be granted permissions to run the StartQuery operation on your behalf. To provide permissions, run the PutResourcePolicy operation to attach a resource-based policy to each event data store. For more information, see [Example: Allow CloudTrail to run queries to populate a dashboard](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html#security_iam_resource-based-policy-examples-eds-dashboard) in the CloudTrail User Guide. + /// + /// - Parameter UpdateDashboardInput : [no documentation found] + /// + /// - Returns: `UpdateDashboardOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. + /// - `EventDataStoreNotFoundException` : The specified event data store was not found. + /// - `InactiveEventDataStoreException` : The event data store is inactive. + /// - `InsufficientEncryptionPolicyException` : For the CreateTrailPutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation. + /// - `InvalidQueryStatementException` : The query that was submitted has validation errors, or uses incorrect syntax or unsupported keywords. For more information about writing a query, see [Create or edit a query](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-create-edit-query.html) in the CloudTrail User Guide. + /// - `ResourceNotFoundException` : This exception is thrown when the specified resource is not found. + /// - `ServiceQuotaExceededException` : This exception is thrown when the quota is exceeded. For information about CloudTrail quotas, see [Service quotas](https://docs.aws.amazon.com/general/latest/gr/ct.html#limits_cloudtrail) in the Amazon Web Services General Reference. + /// - `UnsupportedOperationException` : This exception is thrown when the requested operation is not supported. + public func updateDashboard(input: UpdateDashboardInput) async throws -> UpdateDashboardOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "updateDashboard") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cloudtrail") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateDashboardInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateDashboardOutput.httpOutput(from:), UpdateDashboardOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudTrailClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CloudTrail_20131101.UpdateDashboard")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateDashboardInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudTrail") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateDashboard") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `UpdateEventDataStore` operation on the `CloudTrail_20131101` service. /// /// Updates an event data store. The required EventDataStore value is an ARN or the ID portion of the ARN. Other parameters are optional, but at least one optional parameter must be specified, or CloudTrail throws an error. RetentionPeriod is in days, and valid values are integers between 7 and 3653 if the BillingMode is set to EXTENDABLE_RETENTION_PRICING, or between 7 and 2557 if BillingMode is set to FIXED_RETENTION_PRICING. By default, TerminationProtection is enabled. For event data stores for CloudTrail events, AdvancedEventSelectors includes or excludes management, data, or network activity events in your event data store. For more information about AdvancedEventSelectors, see [AdvancedEventSelectors](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedEventSelector.html). For event data stores for CloudTrail Insights events, Config configuration items, Audit Manager evidence, or non-Amazon Web Services events, AdvancedEventSelectors includes events of that type in your event data store. @@ -4218,7 +4662,7 @@ extension CloudTrailClient { /// - `EventDataStoreNotFoundException` : The specified event data store was not found. /// - `InactiveEventDataStoreException` : The event data store is inactive. /// - `InsufficientDependencyServiceAccessPermissionException` : This exception is thrown when the IAM identity that is used to create the organization resource lacks one or more required permissions for creating an organization resource in a required service. - /// - `InsufficientEncryptionPolicyException` : This exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. + /// - `InsufficientEncryptionPolicyException` : For the CreateTrailPutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation. /// - `InvalidEventSelectorsException` : This exception is thrown when the PutEventSelectors operation is called with a number of event selectors, advanced event selectors, or data resources that is not valid. The combination of event selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250. You can: /// /// * Specify a valid number of event selectors (1 to 5) for a trail. @@ -4309,12 +4753,12 @@ extension CloudTrailClient { /// /// __Possible Exceptions:__ /// - `CloudTrailAccessNotEnabledException` : This exception is thrown when trusted access has not been enabled between CloudTrail and Organizations. For more information, see [How to enable or disable trusted access](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html#orgs_how-to-enable-disable-trusted-access) in the Organizations User Guide and [Prepare For Creating a Trail For Your Organization](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html) in the CloudTrail User Guide. - /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// - `CloudTrailARNInvalidException` : This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// - `CloudTrailInvalidClientTokenIdException` : This exception is thrown when a call results in the InvalidClientTokenId error code. This can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that is in a suspended Amazon Web Services account. /// - `CloudWatchLogsDeliveryUnavailableException` : Cannot set a CloudWatch Logs delivery for this Region. /// - `ConflictException` : This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again. /// - `InsufficientDependencyServiceAccessPermissionException` : This exception is thrown when the IAM identity that is used to create the organization resource lacks one or more required permissions for creating an organization resource in a required service. - /// - `InsufficientEncryptionPolicyException` : This exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. + /// - `InsufficientEncryptionPolicyException` : For the CreateTrailPutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation. /// - `InsufficientS3BucketPolicyException` : This exception is thrown when the policy on the S3 bucket is not sufficient. /// - `InsufficientSnsTopicPolicyException` : This exception is thrown when the policy on the Amazon SNS topic is not sufficient. /// - `InvalidCloudWatchLogsLogGroupArnException` : This exception is thrown when the provided CloudWatch Logs log group is not valid. diff --git a/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/Models.swift b/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/Models.swift index 07a9503e387..86a7188a939 100644 --- a/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/Models.swift +++ b/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/Models.swift @@ -203,7 +203,7 @@ public struct ChannelNotFoundException: ClientRuntime.ModeledError, AWSClientRun } } -/// This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 +/// This exception is thrown when an operation is called with an ARN that is not valid. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 public struct CloudTrailARNInvalidException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -513,7 +513,7 @@ public struct ResourceTypeNotSupportedException: ClientRuntime.ModeledError, AWS } } -/// The number of tags per trail, event data store, or channel has exceeded the permitted amount. Currently, the limit is 50. +/// The number of tags per trail, event data store, dashboard, or channel has exceeded the permitted amount. Currently, the limit is 50. public struct TagsLimitExceededException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -565,7 +565,7 @@ public struct UnsupportedOperationException: ClientRuntime.ModeledError, AWSClie extension CloudTrailClientTypes { - /// A custom key-value pair associated with a resource such as a CloudTrail trail, event data store, or channel. + /// A custom key-value pair associated with a resource such as a CloudTrail trail, event data store, dashboard, or channel. public struct Tag: Swift.Sendable { /// The key in a key-value pair. The key must be must be no longer than 128 Unicode characters. The key must be unique for the resource to which it applies. /// This member is required. @@ -584,9 +584,9 @@ extension CloudTrailClientTypes { } } -/// Specifies the tags to add to a trail, event data store, or channel. +/// Specifies the tags to add to a trail, event data store, dashboard, or channel. public struct AddTagsInput: Swift.Sendable { - /// Specifies the ARN of the trail, event data store, or channel to which one or more tags will be added. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The format of an event data store ARN is: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The format of a channel ARN is: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// Specifies the ARN of the trail, event data store, dashboard, or channel to which one or more tags will be added. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail The format of an event data store ARN is: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The format of a dashboard ARN is: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The format of a channel ARN is: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// This member is required. public var resourceId: Swift.String? /// Contains a list of tags, up to a limit of 50 @@ -889,16 +889,20 @@ public struct CancelQueryInput: Swift.Sendable { /// The ARN (or the ID suffix of the ARN) of an event data store on which the specified query is running. @available(*, deprecated, message: "EventDataStore is no longer required by CancelQueryRequest") public var eventDataStore: Swift.String? + /// The account ID of the event data store owner. + public var eventDataStoreOwnerAccountId: Swift.String? /// The ID of the query that you want to cancel. The QueryId comes from the response of a StartQuery operation. /// This member is required. public var queryId: Swift.String? public init( eventDataStore: Swift.String? = nil, + eventDataStoreOwnerAccountId: Swift.String? = nil, queryId: Swift.String? = nil ) { self.eventDataStore = eventDataStore + self.eventDataStoreOwnerAccountId = eventDataStoreOwnerAccountId self.queryId = queryId } } @@ -945,6 +949,8 @@ extension CloudTrailClientTypes { } public struct CancelQueryOutput: Swift.Sendable { + /// The account ID of the event data store owner. + public var eventDataStoreOwnerAccountId: Swift.String? /// The ID of the canceled query. /// This member is required. public var queryId: Swift.String? @@ -953,10 +959,12 @@ public struct CancelQueryOutput: Swift.Sendable { public var queryStatus: CloudTrailClientTypes.QueryStatus? public init( + eventDataStoreOwnerAccountId: Swift.String? = nil, queryId: Swift.String? = nil, queryStatus: CloudTrailClientTypes.QueryStatus? = nil ) { + self.eventDataStoreOwnerAccountId = eventDataStoreOwnerAccountId self.queryId = queryId self.queryStatus = queryStatus } @@ -1238,8 +1246,8 @@ public struct CreateChannelOutput: Swift.Sendable { } } -/// This exception is thrown when trusted access has not been enabled between CloudTrail and Organizations. For more information, see [How to enable or disable trusted access](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html#orgs_how-to-enable-disable-trusted-access) in the Organizations User Guide and [Prepare For Creating a Trail For Your Organization](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html) in the CloudTrail User Guide. -public struct CloudTrailAccessNotEnabledException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { +/// For the CreateTrailPutInsightSelectors, UpdateTrail, StartQuery, and StartImport operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation. +public struct InsufficientEncryptionPolicyException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { /// Brief description of the exception returned by the request. @@ -1247,7 +1255,7 @@ public struct CloudTrailAccessNotEnabledException: ClientRuntime.ModeledError, A } public internal(set) var properties = Properties() - public static var typeName: Swift.String { "CloudTrailAccessNotEnabled" } + public static var typeName: Swift.String { "InsufficientEncryptionPolicy" } public static var fault: ClientRuntime.ErrorFault { .client } public static var isRetryable: Swift.Bool { false } public static var isThrottling: Swift.Bool { false } @@ -1263,8 +1271,8 @@ public struct CloudTrailAccessNotEnabledException: ClientRuntime.ModeledError, A } } -/// An event data store with that name already exists. -public struct EventDataStoreAlreadyExistsException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { +/// The query that was submitted has validation errors, or uses incorrect syntax or unsupported keywords. For more information about writing a query, see [Create or edit a query](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-create-edit-query.html) in the CloudTrail User Guide. +public struct InvalidQueryStatementException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { /// Brief description of the exception returned by the request. @@ -1272,7 +1280,7 @@ public struct EventDataStoreAlreadyExistsException: ClientRuntime.ModeledError, } public internal(set) var properties = Properties() - public static var typeName: Swift.String { "EventDataStoreAlreadyExists" } + public static var typeName: Swift.String { "InvalidQueryStatement" } public static var fault: ClientRuntime.ErrorFault { .client } public static var isRetryable: Swift.Bool { false } public static var isThrottling: Swift.Bool { false } @@ -1288,8 +1296,8 @@ public struct EventDataStoreAlreadyExistsException: ClientRuntime.ModeledError, } } -/// Your account has used the maximum number of event data stores. -public struct EventDataStoreMaxLimitExceededException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { +/// This exception is thrown when the quota is exceeded. For information about CloudTrail quotas, see [Service quotas](https://docs.aws.amazon.com/general/latest/gr/ct.html#limits_cloudtrail) in the Amazon Web Services General Reference. +public struct ServiceQuotaExceededException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { /// Brief description of the exception returned by the request. @@ -1297,7 +1305,7 @@ public struct EventDataStoreMaxLimitExceededException: ClientRuntime.ModeledErro } public internal(set) var properties = Properties() - public static var typeName: Swift.String { "EventDataStoreMaxLimitExceeded" } + public static var typeName: Swift.String { "ServiceQuotaExceeded" } public static var fault: ClientRuntime.ErrorFault { .client } public static var isRetryable: Swift.Bool { false } public static var isThrottling: Swift.Bool { false } @@ -1313,8 +1321,258 @@ public struct EventDataStoreMaxLimitExceededException: ClientRuntime.ModeledErro } } -/// This exception is thrown when the IAM identity that is used to create the organization resource lacks one or more required permissions for creating an organization resource in a required service. -public struct InsufficientDependencyServiceAccessPermissionException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { +extension CloudTrailClientTypes { + + public enum RefreshScheduleFrequencyUnit: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case days + case hours + case sdkUnknown(Swift.String) + + public static var allCases: [RefreshScheduleFrequencyUnit] { + return [ + .days, + .hours + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .days: return "DAYS" + case .hours: return "HOURS" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CloudTrailClientTypes { + + /// Specifies the frequency for a dashboard refresh schedule. For a custom dashboard, you can schedule a refresh for every 1, 6, 12, or 24 hours, or every day. + public struct RefreshScheduleFrequency: Swift.Sendable { + /// The unit to use for the refresh. For custom dashboards, the unit can be HOURS or DAYS. For the Highlights dashboard, the Unit must be HOURS. + public var unit: CloudTrailClientTypes.RefreshScheduleFrequencyUnit? + /// The value for the refresh schedule. For custom dashboards, the following values are valid when the unit is HOURS: 1, 6, 12, 24 For custom dashboards, the only valid value when the unit is DAYS is 1. For the Highlights dashboard, the Value must be 6. + public var value: Swift.Int? + + public init( + unit: CloudTrailClientTypes.RefreshScheduleFrequencyUnit? = nil, + value: Swift.Int? = nil + ) + { + self.unit = unit + self.value = value + } + } +} + +extension CloudTrailClientTypes { + + public enum RefreshScheduleStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case disabled + case enabled + case sdkUnknown(Swift.String) + + public static var allCases: [RefreshScheduleStatus] { + return [ + .disabled, + .enabled + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .disabled: return "DISABLED" + case .enabled: return "ENABLED" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CloudTrailClientTypes { + + /// The schedule for a dashboard refresh. + public struct RefreshSchedule: Swift.Sendable { + /// The frequency at which you want the dashboard refreshed. + public var frequency: CloudTrailClientTypes.RefreshScheduleFrequency? + /// Specifies whether the refresh schedule is enabled. Set the value to ENABLED to enable the refresh schedule, or to DISABLED to turn off the refresh schedule. + public var status: CloudTrailClientTypes.RefreshScheduleStatus? + /// The time of day in UTC to run the schedule; for hourly only refer to minutes; default is 00:00. + public var timeOfDay: Swift.String? + + public init( + frequency: CloudTrailClientTypes.RefreshScheduleFrequency? = nil, + status: CloudTrailClientTypes.RefreshScheduleStatus? = nil, + timeOfDay: Swift.String? = nil + ) + { + self.frequency = frequency + self.status = status + self.timeOfDay = timeOfDay + } + } +} + +extension CloudTrailClientTypes { + + /// Contains information about a widget on a CloudTrail Lake dashboard. + public struct RequestWidget: Swift.Sendable { + /// The optional query parameters. The following query parameters are valid: $StartTime$, $EndTime$, and $Period$. + public var queryParameters: [Swift.String]? + /// The query statement for the widget. For custom dashboard widgets, you can query across multiple event data stores as long as all event data stores exist in your account. When a query uses ? with eventTime, ? must be surrounded by single quotes as follows: '?'. + /// This member is required. + public var queryStatement: Swift.String? + /// The view properties for the widget. For more information about view properties, see [ View properties for widgets ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-widget-properties.html) in the CloudTrail User Guide. + /// This member is required. + public var viewProperties: [Swift.String: Swift.String]? + + public init( + queryParameters: [Swift.String]? = nil, + queryStatement: Swift.String? = nil, + viewProperties: [Swift.String: Swift.String]? = nil + ) + { + self.queryParameters = queryParameters + self.queryStatement = queryStatement + self.viewProperties = viewProperties + } + } +} + +public struct CreateDashboardInput: Swift.Sendable { + /// The name of the dashboard. The name must be unique to your account. To create the Highlights dashboard, the name must be AWSCloudTrail-Highlights. + /// This member is required. + public var name: Swift.String? + /// The refresh schedule configuration for the dashboard. To create the Highlights dashboard, you must set a refresh schedule and set the Status to ENABLED. The Unit for the refresh schedule must be HOURS and the Value must be 6. + public var refreshSchedule: CloudTrailClientTypes.RefreshSchedule? + /// A list of tags. + public var tagsList: [CloudTrailClientTypes.Tag]? + /// Specifies whether termination protection is enabled for the dashboard. If termination protection is enabled, you cannot delete the dashboard until termination protection is disabled. + public var terminationProtectionEnabled: Swift.Bool? + /// An array of widgets for a custom dashboard. A custom dashboard can have a maximum of ten widgets. You do not need to specify widgets for the Highlights dashboard. + public var widgets: [CloudTrailClientTypes.RequestWidget]? + + public init( + name: Swift.String? = nil, + refreshSchedule: CloudTrailClientTypes.RefreshSchedule? = nil, + tagsList: [CloudTrailClientTypes.Tag]? = nil, + terminationProtectionEnabled: Swift.Bool? = nil, + widgets: [CloudTrailClientTypes.RequestWidget]? = nil + ) + { + self.name = name + self.refreshSchedule = refreshSchedule + self.tagsList = tagsList + self.terminationProtectionEnabled = terminationProtectionEnabled + self.widgets = widgets + } +} + +extension CloudTrailClientTypes { + + public enum DashboardType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case custom + case managed + case sdkUnknown(Swift.String) + + public static var allCases: [DashboardType] { + return [ + .custom, + .managed + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .custom: return "CUSTOM" + case .managed: return "MANAGED" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CloudTrailClientTypes { + + /// A widget on a CloudTrail Lake dashboard. + public struct Widget: Swift.Sendable { + /// The query alias used to identify the query for the widget. + public var queryAlias: Swift.String? + /// The query parameters for the widget. + public var queryParameters: [Swift.String]? + /// The SQL query statement for the widget. + public var queryStatement: Swift.String? + /// The view properties for the widget. For more information about view properties, see [ View properties for widgets ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-widget-properties.html) in the CloudTrail User Guide.. + public var viewProperties: [Swift.String: Swift.String]? + + public init( + queryAlias: Swift.String? = nil, + queryParameters: [Swift.String]? = nil, + queryStatement: Swift.String? = nil, + viewProperties: [Swift.String: Swift.String]? = nil + ) + { + self.queryAlias = queryAlias + self.queryParameters = queryParameters + self.queryStatement = queryStatement + self.viewProperties = viewProperties + } + } +} + +public struct CreateDashboardOutput: Swift.Sendable { + /// The ARN for the dashboard. + public var dashboardArn: Swift.String? + /// The name of the dashboard. + public var name: Swift.String? + /// The refresh schedule for the dashboard, if configured. + public var refreshSchedule: CloudTrailClientTypes.RefreshSchedule? + /// A list of tags. + public var tagsList: [CloudTrailClientTypes.Tag]? + /// Indicates whether termination protection is enabled for the dashboard. + public var terminationProtectionEnabled: Swift.Bool? + /// The dashboard type. + public var type: CloudTrailClientTypes.DashboardType? + /// An array of widgets for the dashboard. + public var widgets: [CloudTrailClientTypes.Widget]? + + public init( + dashboardArn: Swift.String? = nil, + name: Swift.String? = nil, + refreshSchedule: CloudTrailClientTypes.RefreshSchedule? = nil, + tagsList: [CloudTrailClientTypes.Tag]? = nil, + terminationProtectionEnabled: Swift.Bool? = nil, + type: CloudTrailClientTypes.DashboardType? = nil, + widgets: [CloudTrailClientTypes.Widget]? = nil + ) + { + self.dashboardArn = dashboardArn + self.name = name + self.refreshSchedule = refreshSchedule + self.tagsList = tagsList + self.terminationProtectionEnabled = terminationProtectionEnabled + self.type = type + self.widgets = widgets + } +} + +/// This exception is thrown when trusted access has not been enabled between CloudTrail and Organizations. For more information, see [How to enable or disable trusted access](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html#orgs_how-to-enable-disable-trusted-access) in the Organizations User Guide and [Prepare For Creating a Trail For Your Organization](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html) in the CloudTrail User Guide. +public struct CloudTrailAccessNotEnabledException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { /// Brief description of the exception returned by the request. @@ -1322,7 +1580,7 @@ public struct InsufficientDependencyServiceAccessPermissionException: ClientRunt } public internal(set) var properties = Properties() - public static var typeName: Swift.String { "InsufficientDependencyServiceAccessPermission" } + public static var typeName: Swift.String { "CloudTrailAccessNotEnabled" } public static var fault: ClientRuntime.ErrorFault { .client } public static var isRetryable: Swift.Bool { false } public static var isThrottling: Swift.Bool { false } @@ -1338,8 +1596,8 @@ public struct InsufficientDependencyServiceAccessPermissionException: ClientRunt } } -/// This exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation. -public struct InsufficientEncryptionPolicyException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { +/// An event data store with that name already exists. +public struct EventDataStoreAlreadyExistsException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { /// Brief description of the exception returned by the request. @@ -1347,7 +1605,57 @@ public struct InsufficientEncryptionPolicyException: ClientRuntime.ModeledError, } public internal(set) var properties = Properties() - public static var typeName: Swift.String { "InsufficientEncryptionPolicy" } + public static var typeName: Swift.String { "EventDataStoreAlreadyExists" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + +/// Your account has used the maximum number of event data stores. +public struct EventDataStoreMaxLimitExceededException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// Brief description of the exception returned by the request. + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "EventDataStoreMaxLimitExceeded" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + +/// This exception is thrown when the IAM identity that is used to create the organization resource lacks one or more required permissions for creating an organization resource in a required service. +public struct InsufficientDependencyServiceAccessPermissionException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// Brief description of the exception returned by the request. + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "InsufficientDependencyServiceAccessPermission" } public static var fault: ClientRuntime.ErrorFault { .client } public static var isRetryable: Swift.Bool { false } public static var isThrottling: Swift.Bool { false } @@ -2244,6 +2552,24 @@ public struct DeleteChannelOutput: Swift.Sendable { public init() { } } +public struct DeleteDashboardInput: Swift.Sendable { + /// The name or ARN for the dashboard. + /// This member is required. + public var dashboardId: Swift.String? + + public init( + dashboardId: Swift.String? = nil + ) + { + self.dashboardId = dashboardId + } +} + +public struct DeleteDashboardOutput: Swift.Sendable { + + public init() { } +} + /// You cannot delete the event data store because Lake query federation is enabled. To delete the event data store, run the DisableFederation operation to disable Lake query federation on the event data store. public struct EventDataStoreFederationEnabledException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -2337,7 +2663,7 @@ public struct DeleteEventDataStoreOutput: Swift.Sendable { public init() { } } -/// This exception is thrown when the provided resource does not exist, or the ARN format of the resource is not valid. The following is the valid format for a resource ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel. +/// This exception is thrown when the provided resource does not exist, or the ARN format of the resource is not valid. The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE The following is the format of a dashboard ARN: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 public struct ResourceARNNotValidException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -2388,7 +2714,7 @@ public struct ResourcePolicyNotFoundException: ClientRuntime.ModeledError, AWSCl } public struct DeleteResourcePolicyInput: Swift.Sendable { - /// The Amazon Resource Name (ARN) of the CloudTrail channel you're deleting the resource-based policy from. The following is the format of a resource ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel. + /// The Amazon Resource Name (ARN) of the CloudTrail event data store, dashboard, or channel you're deleting the resource-based policy from. Example event data store ARN format: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash Example channel ARN format: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// This member is required. public var resourceArn: Swift.String? @@ -2524,20 +2850,28 @@ public struct DescribeQueryInput: Swift.Sendable { /// The ARN (or the ID suffix of the ARN) of an event data store on which the specified query was run. @available(*, deprecated, message: "EventDataStore is no longer required by DescribeQueryRequest") public var eventDataStore: Swift.String? + /// The account ID of the event data store owner. + public var eventDataStoreOwnerAccountId: Swift.String? /// The alias that identifies a query template. public var queryAlias: Swift.String? /// The query ID. public var queryId: Swift.String? + /// The ID of the dashboard refresh. + public var refreshId: Swift.String? public init( eventDataStore: Swift.String? = nil, + eventDataStoreOwnerAccountId: Swift.String? = nil, queryAlias: Swift.String? = nil, - queryId: Swift.String? = nil + queryId: Swift.String? = nil, + refreshId: Swift.String? = nil ) { self.eventDataStore = eventDataStore + self.eventDataStoreOwnerAccountId = eventDataStoreOwnerAccountId self.queryAlias = queryAlias self.queryId = queryId + self.refreshId = refreshId } } @@ -2630,6 +2964,8 @@ public struct DescribeQueryOutput: Swift.Sendable { public var deliveryStatus: CloudTrailClientTypes.DeliveryStatus? /// The error message returned if a query failed. public var errorMessage: Swift.String? + /// The account ID of the event data store owner. + public var eventDataStoreOwnerAccountId: Swift.String? /// The prompt used for a generated query. For information about generated queries, see [Create CloudTrail Lake queries from natural language prompts](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-query-generator.html) in the CloudTrail user guide. public var prompt: Swift.String? /// The ID of the query. @@ -2645,6 +2981,7 @@ public struct DescribeQueryOutput: Swift.Sendable { deliveryS3Uri: Swift.String? = nil, deliveryStatus: CloudTrailClientTypes.DeliveryStatus? = nil, errorMessage: Swift.String? = nil, + eventDataStoreOwnerAccountId: Swift.String? = nil, prompt: Swift.String? = nil, queryId: Swift.String? = nil, queryStatistics: CloudTrailClientTypes.QueryStatisticsForDescribeQuery? = nil, @@ -2655,6 +2992,7 @@ public struct DescribeQueryOutput: Swift.Sendable { self.deliveryS3Uri = deliveryS3Uri self.deliveryStatus = deliveryStatus self.errorMessage = errorMessage + self.eventDataStoreOwnerAccountId = eventDataStoreOwnerAccountId self.prompt = prompt self.queryId = queryId self.queryStatistics = queryStatistics @@ -2948,16 +3286,20 @@ public struct GenerateQueryInput: Swift.Sendable { } public struct GenerateQueryOutput: Swift.Sendable { + /// The account ID of the event data store owner. + public var eventDataStoreOwnerAccountId: Swift.String? /// An alias that identifies the prompt. When you run the StartQuery operation, you can pass in either the QueryAlias or QueryStatement parameter. public var queryAlias: Swift.String? /// The SQL query statement generated from the prompt. public var queryStatement: Swift.String? public init( + eventDataStoreOwnerAccountId: Swift.String? = nil, queryAlias: Swift.String? = nil, queryStatement: Swift.String? = nil ) { + self.eventDataStoreOwnerAccountId = eventDataStoreOwnerAccountId self.queryAlias = queryAlias self.queryStatement = queryStatement } @@ -3060,6 +3402,105 @@ public struct GetChannelOutput: Swift.Sendable { } } +public struct GetDashboardInput: Swift.Sendable { + /// The name or ARN for the dashboard. + /// This member is required. + public var dashboardId: Swift.String? + + public init( + dashboardId: Swift.String? = nil + ) + { + self.dashboardId = dashboardId + } +} + +extension CloudTrailClientTypes { + + public enum DashboardStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case created + case creating + case deleting + case updated + case updating + case sdkUnknown(Swift.String) + + public static var allCases: [DashboardStatus] { + return [ + .created, + .creating, + .deleting, + .updated, + .updating + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .created: return "CREATED" + case .creating: return "CREATING" + case .deleting: return "DELETING" + case .updated: return "UPDATED" + case .updating: return "UPDATING" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct GetDashboardOutput: Swift.Sendable { + /// The timestamp that shows when the dashboard was created. + public var createdTimestamp: Foundation.Date? + /// The ARN for the dashboard. + public var dashboardArn: Swift.String? + /// Provides information about failures for the last scheduled refresh. + public var lastRefreshFailureReason: Swift.String? + /// The ID of the last dashboard refresh. + public var lastRefreshId: Swift.String? + /// The refresh schedule for the dashboard, if configured. + public var refreshSchedule: CloudTrailClientTypes.RefreshSchedule? + /// The status of the dashboard. + public var status: CloudTrailClientTypes.DashboardStatus? + /// Indicates whether termination protection is enabled for the dashboard. + public var terminationProtectionEnabled: Swift.Bool? + /// The type of dashboard. + public var type: CloudTrailClientTypes.DashboardType? + /// The timestamp that shows when the dashboard was last updated. + public var updatedTimestamp: Foundation.Date? + /// An array of widgets for the dashboard. + public var widgets: [CloudTrailClientTypes.Widget]? + + public init( + createdTimestamp: Foundation.Date? = nil, + dashboardArn: Swift.String? = nil, + lastRefreshFailureReason: Swift.String? = nil, + lastRefreshId: Swift.String? = nil, + refreshSchedule: CloudTrailClientTypes.RefreshSchedule? = nil, + status: CloudTrailClientTypes.DashboardStatus? = nil, + terminationProtectionEnabled: Swift.Bool? = nil, + type: CloudTrailClientTypes.DashboardType? = nil, + updatedTimestamp: Foundation.Date? = nil, + widgets: [CloudTrailClientTypes.Widget]? = nil + ) + { + self.createdTimestamp = createdTimestamp + self.dashboardArn = dashboardArn + self.lastRefreshFailureReason = lastRefreshFailureReason + self.lastRefreshId = lastRefreshId + self.refreshSchedule = refreshSchedule + self.status = status + self.terminationProtectionEnabled = terminationProtectionEnabled + self.type = type + self.updatedTimestamp = updatedTimestamp + self.widgets = widgets + } +} + public struct GetEventDataStoreInput: Swift.Sendable { /// The ARN (or ID suffix of the ARN) of the event data store about which you want information. /// This member is required. @@ -3709,6 +4150,8 @@ public struct GetQueryResultsInput: Swift.Sendable { /// The ARN (or ID suffix of the ARN) of the event data store against which the query was run. @available(*, deprecated, message: "EventDataStore is no longer required by GetQueryResultsRequest") public var eventDataStore: Swift.String? + /// The account ID of the event data store owner. + public var eventDataStoreOwnerAccountId: Swift.String? /// The maximum number of query results to display on a single page. public var maxQueryResults: Swift.Int? /// A token you can use to get the next page of query results. @@ -3719,12 +4162,14 @@ public struct GetQueryResultsInput: Swift.Sendable { public init( eventDataStore: Swift.String? = nil, + eventDataStoreOwnerAccountId: Swift.String? = nil, maxQueryResults: Swift.Int? = nil, nextToken: Swift.String? = nil, queryId: Swift.String? = nil ) { self.eventDataStore = eventDataStore + self.eventDataStoreOwnerAccountId = eventDataStoreOwnerAccountId self.maxQueryResults = maxQueryResults self.nextToken = nextToken self.queryId = queryId @@ -3784,7 +4229,7 @@ public struct GetQueryResultsOutput: Swift.Sendable { } public struct GetResourcePolicyInput: Swift.Sendable { - /// The Amazon Resource Name (ARN) of the CloudTrail channel attached to the resource-based policy. The following is the format of a resource ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel. + /// The Amazon Resource Name (ARN) of the CloudTrail event data store, dashboard, or channel attached to the resource-based policy. Example event data store ARN format: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash Example channel ARN format: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// This member is required. public var resourceArn: Swift.String? @@ -3797,16 +4242,20 @@ public struct GetResourcePolicyInput: Swift.Sendable { } public struct GetResourcePolicyOutput: Swift.Sendable { - /// The Amazon Resource Name (ARN) of the CloudTrail channel attached to resource-based policy. + /// The default resource-based policy that is automatically generated for the delegated administrator of an Organizations organization. This policy will be evaluated in tandem with any policy you submit for the resource. For more information about this policy, see [Default resource policy for delegated administrators](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-organizations.html#cloudtrail-lake-organizations-eds-rbp). + public var delegatedAdminResourcePolicy: Swift.String? + /// The Amazon Resource Name (ARN) of the CloudTrail event data store, dashboard, or channel attached to resource-based policy. Example event data store ARN format: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash Example channel ARN format: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 public var resourceArn: Swift.String? - /// A JSON-formatted string that contains the resource-based policy attached to the CloudTrail channel. + /// A JSON-formatted string that contains the resource-based policy attached to the CloudTrail event data store, dashboard, or channel. public var resourcePolicy: Swift.String? public init( + delegatedAdminResourcePolicy: Swift.String? = nil, resourceArn: Swift.String? = nil, resourcePolicy: Swift.String? = nil ) { + self.delegatedAdminResourcePolicy = delegatedAdminResourcePolicy self.resourceArn = resourceArn self.resourcePolicy = resourcePolicy } @@ -3839,7 +4288,7 @@ public struct GetTrailOutput: Swift.Sendable { /// The name of a trail about which you want the current status. public struct GetTrailStatusInput: Swift.Sendable { - /// Specifies the name or the CloudTrail ARN of the trail for which you are requesting status. To get the status of a shadow trail (a replication of the trail in another Region), you must specify its ARN. The following is the format of a trail ARN. arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + /// Specifies the name or the CloudTrail ARN of the trail for which you are requesting status. To get the status of a shadow trail (a replication of the trail in another Region), you must specify its ARN. The following is the format of a trail ARN: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail If the trail is an organization trail and you are a member account in the organization in Organizations, you must provide the full ARN of that trail, and not just the name. /// This member is required. public var name: Swift.String? @@ -3960,6 +4409,66 @@ public struct ListChannelsOutput: Swift.Sendable { } } +public struct ListDashboardsInput: Swift.Sendable { + /// The maximum number of dashboards to display on a single page. + public var maxResults: Swift.Int? + /// Specify a name prefix to filter on. + public var namePrefix: Swift.String? + /// A token you can use to get the next page of dashboard results. + public var nextToken: Swift.String? + /// Specify a dashboard type to filter on: CUSTOM or MANAGED. + public var type: CloudTrailClientTypes.DashboardType? + + public init( + maxResults: Swift.Int? = nil, + namePrefix: Swift.String? = nil, + nextToken: Swift.String? = nil, + type: CloudTrailClientTypes.DashboardType? = nil + ) + { + self.maxResults = maxResults + self.namePrefix = namePrefix + self.nextToken = nextToken + self.type = type + } +} + +extension CloudTrailClientTypes { + + /// Provides information about a CloudTrail Lake dashboard. + public struct DashboardDetail: Swift.Sendable { + /// The ARN for the dashboard. + public var dashboardArn: Swift.String? + /// The type of dashboard. + public var type: CloudTrailClientTypes.DashboardType? + + public init( + dashboardArn: Swift.String? = nil, + type: CloudTrailClientTypes.DashboardType? = nil + ) + { + self.dashboardArn = dashboardArn + self.type = type + } + } +} + +public struct ListDashboardsOutput: Swift.Sendable { + /// Contains information about dashboards in the account, in the current Region that match the applied filters. + public var dashboards: [CloudTrailClientTypes.DashboardDetail]? + /// A token you can use to get the next page of dashboard results. + public var nextToken: Swift.String? + + public init( + dashboards: [CloudTrailClientTypes.DashboardDetail]? = nil, + nextToken: Swift.String? = nil + ) + { + self.dashboards = dashboards + self.nextToken = nextToken + } +} + public struct ListEventDataStoresInput: Swift.Sendable { /// The maximum number of event data stores to display on a single page. public var maxResults: Swift.Int? @@ -4255,7 +4764,7 @@ extension CloudTrailClientTypes { } public struct ListInsightsMetricDataInput: Swift.Sendable { - /// Type of datapoints to return. Valid values are NonZeroData and FillWithZeros. The default is NonZeroData. + /// Type of data points to return. Valid values are NonZeroData and FillWithZeros. The default is NonZeroData. public var dataType: CloudTrailClientTypes.InsightsMetricDataType? /// Specifies, in UTC, the end time for time-series data. The value specified is exclusive; results include data points up to the specified time stamp. The default is the time of request. public var endTime: Foundation.Date? @@ -4270,7 +4779,7 @@ public struct ListInsightsMetricDataInput: Swift.Sendable { /// The type of CloudTrail Insights event, which is either ApiCallRateInsight or ApiErrorRateInsight. The ApiCallRateInsight Insights type analyzes write-only management API calls that are aggregated per minute against a baseline API call volume. The ApiErrorRateInsight Insights type analyzes management API calls that result in error codes. /// This member is required. public var insightType: CloudTrailClientTypes.InsightType? - /// The maximum number of datapoints to return. Valid values are integers from 1 to 21600. The default value is 21600. + /// The maximum number of data points to return. Valid values are integers from 1 to 21600. The default value is 21600. public var maxResults: Swift.Int? /// Returned if all datapoints can't be returned in a single call. For example, due to reaching MaxResults. Add this parameter to the request to continue retrieving results starting from the last evaluated point. public var nextToken: Swift.String? @@ -4584,7 +5093,7 @@ public struct ListQueriesOutput: Swift.Sendable { public struct ListTagsInput: Swift.Sendable { /// Reserved for future use. public var nextToken: Swift.String? - /// Specifies a list of trail, event data store, or channel ARNs whose tags will be listed. The list has a limit of 20 ARNs. Example trail ARN format: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail Example event data store ARN format: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE Example channel ARN format: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// Specifies a list of trail, event data store, dashboard, or channel ARNs whose tags will be listed. The list has a limit of 20 ARNs. Example trail ARN format: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail Example event data store ARN format: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash Example channel ARN format: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// This member is required. public var resourceIdList: [Swift.String]? @@ -5087,13 +5596,7 @@ public struct PutInsightSelectorsOutput: Swift.Sendable { } } -/// This exception is thrown when the resouce-based policy has syntax errors, or contains a principal that is not valid. The following are requirements for the resource policy: -/// -/// * Contains only one action: cloudtrail-data:PutAuditEvents -/// -/// * Contains at least one statement. The policy can have a maximum of 20 statements. -/// -/// * Each statement contains at least one principal. A statement can have a maximum of 50 principals. +/// This exception is thrown when the resouce-based policy has syntax errors, or contains a principal that is not valid. public struct ResourcePolicyNotValidException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -5119,16 +5622,10 @@ public struct ResourcePolicyNotValidException: ClientRuntime.ModeledError, AWSCl } public struct PutResourcePolicyInput: Swift.Sendable { - /// The Amazon Resource Name (ARN) of the CloudTrail channel attached to the resource-based policy. The following is the format of a resource ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel. + /// The Amazon Resource Name (ARN) of the CloudTrail event data store, dashboard, or channel attached to the resource-based policy. Example event data store ARN format: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash Example channel ARN format: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// This member is required. public var resourceArn: Swift.String? - /// A JSON-formatted string for an Amazon Web Services resource-based policy. The following are requirements for the resource policy: - /// - /// * Contains only one action: cloudtrail-data:PutAuditEvents - /// - /// * Contains at least one statement. The policy can have a maximum of 20 statements. - /// - /// * Each statement contains at least one principal. A statement can have a maximum of 50 principals. + /// A JSON-formatted string for an Amazon Web Services resource-based policy. For example resource-based policies, see [CloudTrail resource-based policy examples](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html) in the CloudTrail User Guide. /// This member is required. public var resourcePolicy: Swift.String? @@ -5143,16 +5640,20 @@ public struct PutResourcePolicyInput: Swift.Sendable { } public struct PutResourcePolicyOutput: Swift.Sendable { - /// The Amazon Resource Name (ARN) of the CloudTrail channel attached to the resource-based policy. + /// The default resource-based policy that is automatically generated for the delegated administrator of an Organizations organization. This policy will be evaluated in tandem with any policy you submit for the resource. For more information about this policy, see [Default resource policy for delegated administrators](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-organizations.html#cloudtrail-lake-organizations-eds-rbp). + public var delegatedAdminResourcePolicy: Swift.String? + /// The Amazon Resource Name (ARN) of the CloudTrail event data store, dashboard, or channel attached to the resource-based policy. Example event data store ARN format: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash Example channel ARN format: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 public var resourceArn: Swift.String? - /// The JSON-formatted string of the Amazon Web Services resource-based policy attached to the CloudTrail channel. + /// The JSON-formatted string of the Amazon Web Services resource-based policy attached to the CloudTrail event data store, dashboard, or channel. public var resourcePolicy: Swift.String? public init( + delegatedAdminResourcePolicy: Swift.String? = nil, resourceArn: Swift.String? = nil, resourcePolicy: Swift.String? = nil ) { + self.delegatedAdminResourcePolicy = delegatedAdminResourcePolicy self.resourceArn = resourceArn self.resourcePolicy = resourcePolicy } @@ -5203,9 +5704,9 @@ public struct RegisterOrganizationDelegatedAdminOutput: Swift.Sendable { public init() { } } -/// Specifies the tags to remove from a trail, event data store, or channel. +/// Specifies the tags to remove from a trail, event data store, dashboard, or channel. public struct RemoveTagsInput: Swift.Sendable { - /// Specifies the ARN of the trail, event data store, or channel from which tags should be removed. Example trail ARN format: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail Example event data store ARN format: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE Example channel ARN format: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 + /// Specifies the ARN of the trail, event data store, dashboard, or channel from which tags should be removed. Example trail ARN format: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail Example event data store ARN format: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash Example channel ARN format: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 /// This member is required. public var resourceId: Swift.String? /// Specifies a list of tags to be removed. @@ -5322,6 +5823,35 @@ public struct RestoreEventDataStoreOutput: Swift.Sendable { } } +public struct StartDashboardRefreshInput: Swift.Sendable { + /// The name or ARN of the dashboard. + /// This member is required. + public var dashboardId: Swift.String? + /// The query parameter values for the dashboard For custom dashboards, the following query parameters are valid: $StartTime$, $EndTime$, and $Period$. For managed dashboards, the following query parameters are valid: $StartTime$, $EndTime$, $Period$, and $EventDataStoreId$. The $EventDataStoreId$ query parameter is required. + public var queryParameterValues: [Swift.String: Swift.String]? + + public init( + dashboardId: Swift.String? = nil, + queryParameterValues: [Swift.String: Swift.String]? = nil + ) + { + self.dashboardId = dashboardId + self.queryParameterValues = queryParameterValues + } +} + +public struct StartDashboardRefreshOutput: Swift.Sendable { + /// The refresh ID for the dashboard. + public var refreshId: Swift.String? + + public init( + refreshId: Swift.String? = nil + ) + { + self.refreshId = refreshId + } +} + public struct StartEventDataStoreIngestionInput: Swift.Sendable { /// The ARN (or ID suffix of the ARN) of the event data store for which you want to start ingestion. /// This member is required. @@ -5453,31 +5983,6 @@ public struct StartLoggingOutput: Swift.Sendable { public init() { } } -/// The query that was submitted has validation errors, or uses incorrect syntax or unsupported keywords. For more information about writing a query, see [Create or edit a query](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-create-edit-query.html) in the CloudTrail User Guide. -public struct InvalidQueryStatementException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - - public struct Properties { - /// Brief description of the exception returned by the request. - public internal(set) var message: Swift.String? = nil - } - - public internal(set) var properties = Properties() - public static var typeName: Swift.String { "InvalidQueryStatement" } - public static var fault: ClientRuntime.ErrorFault { .client } - public static var isRetryable: Swift.Bool { false } - public static var isThrottling: Swift.Bool { false } - public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() - public internal(set) var message: Swift.String? - public internal(set) var requestID: Swift.String? - - public init( - message: Swift.String? = nil - ) - { - self.properties.message = message - } -} - /// You are already running the maximum number of concurrent queries. The maximum number of concurrent queries is 10. Wait a minute for some queries to finish, and then run the query again. public struct MaxConcurrentQueriesException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -5506,6 +6011,8 @@ public struct MaxConcurrentQueriesException: ClientRuntime.ModeledError, AWSClie public struct StartQueryInput: Swift.Sendable { /// The URI for the S3 bucket where CloudTrail delivers the query results. public var deliveryS3Uri: Swift.String? + /// The account ID of the event data store owner. + public var eventDataStoreOwnerAccountId: Swift.String? /// The alias that identifies a query template. public var queryAlias: Swift.String? /// The query parameters for the specified QueryAlias. @@ -5515,12 +6022,14 @@ public struct StartQueryInput: Swift.Sendable { public init( deliveryS3Uri: Swift.String? = nil, + eventDataStoreOwnerAccountId: Swift.String? = nil, queryAlias: Swift.String? = nil, queryParameters: [Swift.String]? = nil, queryStatement: Swift.String? = nil ) { self.deliveryS3Uri = deliveryS3Uri + self.eventDataStoreOwnerAccountId = eventDataStoreOwnerAccountId self.queryAlias = queryAlias self.queryParameters = queryParameters self.queryStatement = queryStatement @@ -5528,13 +6037,17 @@ public struct StartQueryInput: Swift.Sendable { } public struct StartQueryOutput: Swift.Sendable { + /// The account ID of the event data store owner. + public var eventDataStoreOwnerAccountId: Swift.String? /// The ID of the started query. public var queryId: Swift.String? public init( + eventDataStoreOwnerAccountId: Swift.String? = nil, queryId: Swift.String? = nil ) { + self.eventDataStoreOwnerAccountId = eventDataStoreOwnerAccountId self.queryId = queryId } } @@ -5679,6 +6192,71 @@ public struct UpdateChannelOutput: Swift.Sendable { } } +public struct UpdateDashboardInput: Swift.Sendable { + /// The name or ARN of the dashboard. + /// This member is required. + public var dashboardId: Swift.String? + /// The refresh schedule configuration for the dashboard. + public var refreshSchedule: CloudTrailClientTypes.RefreshSchedule? + /// Specifies whether termination protection is enabled for the dashboard. If termination protection is enabled, you cannot delete the dashboard until termination protection is disabled. + public var terminationProtectionEnabled: Swift.Bool? + /// An array of widgets for the dashboard. A custom dashboard can have a maximum of 10 widgets. To add new widgets, pass in an array that includes the existing widgets along with any new widgets. Run the GetDashboard operation to get the list of widgets for the dashboard. To remove widgets, pass in an array that includes the existing widgets minus the widgets you want removed. + public var widgets: [CloudTrailClientTypes.RequestWidget]? + + public init( + dashboardId: Swift.String? = nil, + refreshSchedule: CloudTrailClientTypes.RefreshSchedule? = nil, + terminationProtectionEnabled: Swift.Bool? = nil, + widgets: [CloudTrailClientTypes.RequestWidget]? = nil + ) + { + self.dashboardId = dashboardId + self.refreshSchedule = refreshSchedule + self.terminationProtectionEnabled = terminationProtectionEnabled + self.widgets = widgets + } +} + +public struct UpdateDashboardOutput: Swift.Sendable { + /// The timestamp that shows when the dashboard was created. + public var createdTimestamp: Foundation.Date? + /// The ARN for the dashboard. + public var dashboardArn: Swift.String? + /// The name for the dashboard. + public var name: Swift.String? + /// The refresh schedule for the dashboard, if configured. + public var refreshSchedule: CloudTrailClientTypes.RefreshSchedule? + /// Indicates whether termination protection is enabled for the dashboard. + public var terminationProtectionEnabled: Swift.Bool? + /// The type of dashboard. + public var type: CloudTrailClientTypes.DashboardType? + /// The timestamp that shows when the dashboard was updated. + public var updatedTimestamp: Foundation.Date? + /// An array of widgets for the dashboard. + public var widgets: [CloudTrailClientTypes.Widget]? + + public init( + createdTimestamp: Foundation.Date? = nil, + dashboardArn: Swift.String? = nil, + name: Swift.String? = nil, + refreshSchedule: CloudTrailClientTypes.RefreshSchedule? = nil, + terminationProtectionEnabled: Swift.Bool? = nil, + type: CloudTrailClientTypes.DashboardType? = nil, + updatedTimestamp: Foundation.Date? = nil, + widgets: [CloudTrailClientTypes.Widget]? = nil + ) + { + self.createdTimestamp = createdTimestamp + self.dashboardArn = dashboardArn + self.name = name + self.refreshSchedule = refreshSchedule + self.terminationProtectionEnabled = terminationProtectionEnabled + self.type = type + self.updatedTimestamp = updatedTimestamp + self.widgets = widgets + } +} + public struct UpdateEventDataStoreInput: Swift.Sendable { /// The advanced event selectors used to select events for the event data store. You can configure up to five advanced event selectors for each event data store. public var advancedEventSelectors: [CloudTrailClientTypes.AdvancedEventSelector]? @@ -5961,6 +6539,13 @@ extension CreateChannelInput { } } +extension CreateDashboardInput { + + static func urlPathProvider(_ value: CreateDashboardInput) -> Swift.String? { + return "/" + } +} + extension CreateEventDataStoreInput { static func urlPathProvider(_ value: CreateEventDataStoreInput) -> Swift.String? { @@ -5982,6 +6567,13 @@ extension DeleteChannelInput { } } +extension DeleteDashboardInput { + + static func urlPathProvider(_ value: DeleteDashboardInput) -> Swift.String? { + return "/" + } +} + extension DeleteEventDataStoreInput { static func urlPathProvider(_ value: DeleteEventDataStoreInput) -> Swift.String? { @@ -6052,6 +6644,13 @@ extension GetChannelInput { } } +extension GetDashboardInput { + + static func urlPathProvider(_ value: GetDashboardInput) -> Swift.String? { + return "/" + } +} + extension GetEventDataStoreInput { static func urlPathProvider(_ value: GetEventDataStoreInput) -> Swift.String? { @@ -6115,6 +6714,13 @@ extension ListChannelsInput { } } +extension ListDashboardsInput { + + static func urlPathProvider(_ value: ListDashboardsInput) -> Swift.String? { + return "/" + } +} + extension ListEventDataStoresInput { static func urlPathProvider(_ value: ListEventDataStoresInput) -> Swift.String? { @@ -6220,6 +6826,13 @@ extension RestoreEventDataStoreInput { } } +extension StartDashboardRefreshInput { + + static func urlPathProvider(_ value: StartDashboardRefreshInput) -> Swift.String? { + return "/" + } +} + extension StartEventDataStoreIngestionInput { static func urlPathProvider(_ value: StartEventDataStoreIngestionInput) -> Swift.String? { @@ -6276,6 +6889,13 @@ extension UpdateChannelInput { } } +extension UpdateDashboardInput { + + static func urlPathProvider(_ value: UpdateDashboardInput) -> Swift.String? { + return "/" + } +} + extension UpdateEventDataStoreInput { static func urlPathProvider(_ value: UpdateEventDataStoreInput) -> Swift.String? { @@ -6304,6 +6924,7 @@ extension CancelQueryInput { static func write(value: CancelQueryInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["EventDataStore"].write(value.eventDataStore) + try writer["EventDataStoreOwnerAccountId"].write(value.eventDataStoreOwnerAccountId) try writer["QueryId"].write(value.queryId) } } @@ -6319,6 +6940,18 @@ extension CreateChannelInput { } } +extension CreateDashboardInput { + + static func write(value: CreateDashboardInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Name"].write(value.name) + try writer["RefreshSchedule"].write(value.refreshSchedule, with: CloudTrailClientTypes.RefreshSchedule.write(value:to:)) + try writer["TagsList"].writeList(value.tagsList, memberWritingClosure: CloudTrailClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["TerminationProtectionEnabled"].write(value.terminationProtectionEnabled) + try writer["Widgets"].writeList(value.widgets, memberWritingClosure: CloudTrailClientTypes.RequestWidget.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + extension CreateEventDataStoreInput { static func write(value: CreateEventDataStoreInput?, to writer: SmithyJSON.Writer) throws { @@ -6363,6 +6996,14 @@ extension DeleteChannelInput { } } +extension DeleteDashboardInput { + + static func write(value: DeleteDashboardInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["DashboardId"].write(value.dashboardId) + } +} + extension DeleteEventDataStoreInput { static func write(value: DeleteEventDataStoreInput?, to writer: SmithyJSON.Writer) throws { @@ -6400,8 +7041,10 @@ extension DescribeQueryInput { static func write(value: DescribeQueryInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["EventDataStore"].write(value.eventDataStore) + try writer["EventDataStoreOwnerAccountId"].write(value.eventDataStoreOwnerAccountId) try writer["QueryAlias"].write(value.queryAlias) try writer["QueryId"].write(value.queryId) + try writer["RefreshId"].write(value.refreshId) } } @@ -6448,6 +7091,14 @@ extension GetChannelInput { } } +extension GetDashboardInput { + + static func write(value: GetDashboardInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["DashboardId"].write(value.dashboardId) + } +} + extension GetEventDataStoreInput { static func write(value: GetEventDataStoreInput?, to writer: SmithyJSON.Writer) throws { @@ -6486,6 +7137,7 @@ extension GetQueryResultsInput { static func write(value: GetQueryResultsInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["EventDataStore"].write(value.eventDataStore) + try writer["EventDataStoreOwnerAccountId"].write(value.eventDataStoreOwnerAccountId) try writer["MaxQueryResults"].write(value.maxQueryResults) try writer["NextToken"].write(value.nextToken) try writer["QueryId"].write(value.queryId) @@ -6525,6 +7177,17 @@ extension ListChannelsInput { } } +extension ListDashboardsInput { + + static func write(value: ListDashboardsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["MaxResults"].write(value.maxResults) + try writer["NamePrefix"].write(value.namePrefix) + try writer["NextToken"].write(value.nextToken) + try writer["Type"].write(value.type) + } +} + extension ListEventDataStoresInput { static func write(value: ListEventDataStoresInput?, to writer: SmithyJSON.Writer) throws { @@ -6680,6 +7343,15 @@ extension RestoreEventDataStoreInput { } } +extension StartDashboardRefreshInput { + + static func write(value: StartDashboardRefreshInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["DashboardId"].write(value.dashboardId) + try writer["QueryParameterValues"].writeMap(value.queryParameterValues, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + } +} + extension StartEventDataStoreIngestionInput { static func write(value: StartEventDataStoreIngestionInput?, to writer: SmithyJSON.Writer) throws { @@ -6713,6 +7385,7 @@ extension StartQueryInput { static func write(value: StartQueryInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["DeliveryS3Uri"].write(value.deliveryS3Uri) + try writer["EventDataStoreOwnerAccountId"].write(value.eventDataStoreOwnerAccountId) try writer["QueryAlias"].write(value.queryAlias) try writer["QueryParameters"].writeList(value.queryParameters, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["QueryStatement"].write(value.queryStatement) @@ -6753,6 +7426,17 @@ extension UpdateChannelInput { } } +extension UpdateDashboardInput { + + static func write(value: UpdateDashboardInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["DashboardId"].write(value.dashboardId) + try writer["RefreshSchedule"].write(value.refreshSchedule, with: CloudTrailClientTypes.RefreshSchedule.write(value:to:)) + try writer["TerminationProtectionEnabled"].write(value.terminationProtectionEnabled) + try writer["Widgets"].writeList(value.widgets, memberWritingClosure: CloudTrailClientTypes.RequestWidget.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + extension UpdateEventDataStoreInput { static func write(value: UpdateEventDataStoreInput?, to writer: SmithyJSON.Writer) throws { @@ -6801,6 +7485,7 @@ extension CancelQueryOutput { let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader var value = CancelQueryOutput() + value.eventDataStoreOwnerAccountId = try reader["EventDataStoreOwnerAccountId"].readIfPresent() value.queryId = try reader["QueryId"].readIfPresent() ?? "" value.queryStatus = try reader["QueryStatus"].readIfPresent() ?? .sdkUnknown("") return value @@ -6817,8 +7502,26 @@ extension CreateChannelOutput { value.channelArn = try reader["ChannelArn"].readIfPresent() value.destinations = try reader["Destinations"].readListIfPresent(memberReadingClosure: CloudTrailClientTypes.Destination.read(from:), memberNodeInfo: "member", isFlattened: false) value.name = try reader["Name"].readIfPresent() - value.source = try reader["Source"].readIfPresent() - value.tags = try reader["Tags"].readListIfPresent(memberReadingClosure: CloudTrailClientTypes.Tag.read(from:), memberNodeInfo: "member", isFlattened: false) + value.source = try reader["Source"].readIfPresent() + value.tags = try reader["Tags"].readListIfPresent(memberReadingClosure: CloudTrailClientTypes.Tag.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension CreateDashboardOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateDashboardOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateDashboardOutput() + value.dashboardArn = try reader["DashboardArn"].readIfPresent() + value.name = try reader["Name"].readIfPresent() + value.refreshSchedule = try reader["RefreshSchedule"].readIfPresent(with: CloudTrailClientTypes.RefreshSchedule.read(from:)) + value.tagsList = try reader["TagsList"].readListIfPresent(memberReadingClosure: CloudTrailClientTypes.Tag.read(from:), memberNodeInfo: "member", isFlattened: false) + value.terminationProtectionEnabled = try reader["TerminationProtectionEnabled"].readIfPresent() + value.type = try reader["Type"].readIfPresent() + value.widgets = try reader["Widgets"].readListIfPresent(memberReadingClosure: CloudTrailClientTypes.Widget.read(from:), memberNodeInfo: "member", isFlattened: false) return value } } @@ -6878,6 +7581,13 @@ extension DeleteChannelOutput { } } +extension DeleteDashboardOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDashboardOutput { + return DeleteDashboardOutput() + } +} + extension DeleteEventDataStoreOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteEventDataStoreOutput { @@ -6916,6 +7626,7 @@ extension DescribeQueryOutput { value.deliveryS3Uri = try reader["DeliveryS3Uri"].readIfPresent() value.deliveryStatus = try reader["DeliveryStatus"].readIfPresent() value.errorMessage = try reader["ErrorMessage"].readIfPresent() + value.eventDataStoreOwnerAccountId = try reader["EventDataStoreOwnerAccountId"].readIfPresent() value.prompt = try reader["Prompt"].readIfPresent() value.queryId = try reader["QueryId"].readIfPresent() value.queryStatistics = try reader["QueryStatistics"].readIfPresent(with: CloudTrailClientTypes.QueryStatisticsForDescribeQuery.read(from:)) @@ -6971,6 +7682,7 @@ extension GenerateQueryOutput { let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader var value = GenerateQueryOutput() + value.eventDataStoreOwnerAccountId = try reader["EventDataStoreOwnerAccountId"].readIfPresent() value.queryAlias = try reader["QueryAlias"].readIfPresent() value.queryStatement = try reader["QueryStatement"].readIfPresent() return value @@ -6994,6 +7706,27 @@ extension GetChannelOutput { } } +extension GetDashboardOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDashboardOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetDashboardOutput() + value.createdTimestamp = try reader["CreatedTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.dashboardArn = try reader["DashboardArn"].readIfPresent() + value.lastRefreshFailureReason = try reader["LastRefreshFailureReason"].readIfPresent() + value.lastRefreshId = try reader["LastRefreshId"].readIfPresent() + value.refreshSchedule = try reader["RefreshSchedule"].readIfPresent(with: CloudTrailClientTypes.RefreshSchedule.read(from:)) + value.status = try reader["Status"].readIfPresent() + value.terminationProtectionEnabled = try reader["TerminationProtectionEnabled"].readIfPresent() + value.type = try reader["Type"].readIfPresent() + value.updatedTimestamp = try reader["UpdatedTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.widgets = try reader["Widgets"].readListIfPresent(memberReadingClosure: CloudTrailClientTypes.Widget.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension GetEventDataStoreOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetEventDataStoreOutput { @@ -7092,6 +7825,7 @@ extension GetResourcePolicyOutput { let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader var value = GetResourcePolicyOutput() + value.delegatedAdminResourcePolicy = try reader["DelegatedAdminResourcePolicy"].readIfPresent() value.resourceArn = try reader["ResourceArn"].readIfPresent() value.resourcePolicy = try reader["ResourcePolicy"].readIfPresent() return value @@ -7151,6 +7885,19 @@ extension ListChannelsOutput { } } +extension ListDashboardsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListDashboardsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListDashboardsOutput() + value.dashboards = try reader["Dashboards"].readListIfPresent(memberReadingClosure: CloudTrailClientTypes.DashboardDetail.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["NextToken"].readIfPresent() + return value + } +} + extension ListEventDataStoresOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListEventDataStoresOutput { @@ -7309,6 +8056,7 @@ extension PutResourcePolicyOutput { let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader var value = PutResourcePolicyOutput() + value.delegatedAdminResourcePolicy = try reader["DelegatedAdminResourcePolicy"].readIfPresent() value.resourceArn = try reader["ResourceArn"].readIfPresent() value.resourcePolicy = try reader["ResourcePolicy"].readIfPresent() return value @@ -7352,6 +8100,18 @@ extension RestoreEventDataStoreOutput { } } +extension StartDashboardRefreshOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartDashboardRefreshOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = StartDashboardRefreshOutput() + value.refreshId = try reader["RefreshId"].readIfPresent() + return value + } +} + extension StartEventDataStoreIngestionOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartEventDataStoreIngestionOutput { @@ -7392,6 +8152,7 @@ extension StartQueryOutput { let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader var value = StartQueryOutput() + value.eventDataStoreOwnerAccountId = try reader["EventDataStoreOwnerAccountId"].readIfPresent() value.queryId = try reader["QueryId"].readIfPresent() return value } @@ -7446,6 +8207,25 @@ extension UpdateChannelOutput { } } +extension UpdateDashboardOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateDashboardOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateDashboardOutput() + value.createdTimestamp = try reader["CreatedTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.dashboardArn = try reader["DashboardArn"].readIfPresent() + value.name = try reader["Name"].readIfPresent() + value.refreshSchedule = try reader["RefreshSchedule"].readIfPresent(with: CloudTrailClientTypes.RefreshSchedule.read(from:)) + value.terminationProtectionEnabled = try reader["TerminationProtectionEnabled"].readIfPresent() + value.type = try reader["Type"].readIfPresent() + value.updatedTimestamp = try reader["UpdatedTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.widgets = try reader["Widgets"].readListIfPresent(memberReadingClosure: CloudTrailClientTypes.Widget.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension UpdateEventDataStoreOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateEventDataStoreOutput { @@ -7572,6 +8352,27 @@ enum CreateChannelOutputError { } } +enum CreateDashboardOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "EventDataStoreNotFound": return try EventDataStoreNotFoundException.makeError(baseError: baseError) + case "InactiveEventDataStore": return try InactiveEventDataStoreException.makeError(baseError: baseError) + case "InsufficientEncryptionPolicy": return try InsufficientEncryptionPolicyException.makeError(baseError: baseError) + case "InvalidQueryStatement": return try InvalidQueryStatementException.makeError(baseError: baseError) + case "InvalidTagParameter": return try InvalidTagParameterException.makeError(baseError: baseError) + case "ServiceQuotaExceeded": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "UnsupportedOperation": return try UnsupportedOperationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum CreateEventDataStoreOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -7666,6 +8467,22 @@ enum DeleteChannelOutputError { } } +enum DeleteDashboardOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ResourceNotFound": return try ResourceNotFoundException.makeError(baseError: baseError) + case "UnsupportedOperation": return try UnsupportedOperationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum DeleteEventDataStoreOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -7701,6 +8518,7 @@ enum DeleteResourcePolicyOutputError { let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) if let error = baseError.customError() { return error } switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "OperationNotPermitted": return try OperationNotPermittedException.makeError(baseError: baseError) case "ResourceARNNotValid": return try ResourceARNNotValidException.makeError(baseError: baseError) case "ResourceNotFound": return try ResourceNotFoundException.makeError(baseError: baseError) @@ -7892,6 +8710,21 @@ enum GetChannelOutputError { } } +enum GetDashboardOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFound": return try ResourceNotFoundException.makeError(baseError: baseError) + case "UnsupportedOperation": return try UnsupportedOperationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum GetEventDataStoreOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -8065,6 +8898,20 @@ enum ListChannelsOutputError { } } +enum ListDashboardsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "UnsupportedOperation": return try UnsupportedOperationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListEventDataStoresOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -8297,6 +9144,7 @@ enum PutResourcePolicyOutputError { let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) if let error = baseError.customError() { return error } switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "OperationNotPermitted": return try OperationNotPermittedException.makeError(baseError: baseError) case "ResourceARNNotValid": return try ResourceARNNotValidException.makeError(baseError: baseError) case "ResourceNotFound": return try ResourceNotFoundException.makeError(baseError: baseError) @@ -8388,6 +9236,24 @@ enum RestoreEventDataStoreOutputError { } } +enum StartDashboardRefreshOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "EventDataStoreNotFound": return try EventDataStoreNotFoundException.makeError(baseError: baseError) + case "InactiveEventDataStore": return try InactiveEventDataStoreException.makeError(baseError: baseError) + case "ResourceNotFound": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceeded": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "UnsupportedOperation": return try UnsupportedOperationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum StartEventDataStoreIngestionOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -8574,6 +9440,27 @@ enum UpdateChannelOutputError { } } +enum UpdateDashboardOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "EventDataStoreNotFound": return try EventDataStoreNotFoundException.makeError(baseError: baseError) + case "InactiveEventDataStore": return try InactiveEventDataStoreException.makeError(baseError: baseError) + case "InsufficientEncryptionPolicy": return try InsufficientEncryptionPolicyException.makeError(baseError: baseError) + case "InvalidQueryStatement": return try InvalidQueryStatementException.makeError(baseError: baseError) + case "ResourceNotFound": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceeded": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "UnsupportedOperation": return try UnsupportedOperationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum UpdateEventDataStoreOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -8952,6 +9839,45 @@ extension ChannelAlreadyExistsException { } } +extension InsufficientEncryptionPolicyException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InsufficientEncryptionPolicyException { + let reader = baseError.errorBodyReader + var value = InsufficientEncryptionPolicyException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension InvalidQueryStatementException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidQueryStatementException { + let reader = baseError.errorBodyReader + var value = InvalidQueryStatementException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ServiceQuotaExceededException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ServiceQuotaExceededException { + let reader = baseError.errorBodyReader + var value = ServiceQuotaExceededException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + extension EventDataStoreAlreadyExistsException { static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> EventDataStoreAlreadyExistsException { @@ -9004,19 +9930,6 @@ extension InvalidEventSelectorsException { } } -extension InsufficientEncryptionPolicyException { - - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InsufficientEncryptionPolicyException { - let reader = baseError.errorBodyReader - var value = InsufficientEncryptionPolicyException() - value.properties.message = try reader["Message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message - return value - } -} - extension CloudTrailAccessNotEnabledException { static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> CloudTrailAccessNotEnabledException { @@ -9719,19 +10632,6 @@ extension InvalidImportSourceException { } } -extension InvalidQueryStatementException { - - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidQueryStatementException { - let reader = baseError.errorBodyReader - var value = InvalidQueryStatementException() - value.properties.message = try reader["Message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message - return value - } -} - extension MaxConcurrentQueriesException { static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> MaxConcurrentQueriesException { @@ -9779,6 +10679,55 @@ extension CloudTrailClientTypes.Tag { } } +extension CloudTrailClientTypes.Widget { + + static func read(from reader: SmithyJSON.Reader) throws -> CloudTrailClientTypes.Widget { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudTrailClientTypes.Widget() + value.queryAlias = try reader["QueryAlias"].readIfPresent() + value.queryStatement = try reader["QueryStatement"].readIfPresent() + value.queryParameters = try reader["QueryParameters"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.viewProperties = try reader["ViewProperties"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value + } +} + +extension CloudTrailClientTypes.RefreshSchedule { + + static func write(value: CloudTrailClientTypes.RefreshSchedule?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Frequency"].write(value.frequency, with: CloudTrailClientTypes.RefreshScheduleFrequency.write(value:to:)) + try writer["Status"].write(value.status) + try writer["TimeOfDay"].write(value.timeOfDay) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudTrailClientTypes.RefreshSchedule { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudTrailClientTypes.RefreshSchedule() + value.frequency = try reader["Frequency"].readIfPresent(with: CloudTrailClientTypes.RefreshScheduleFrequency.read(from:)) + value.status = try reader["Status"].readIfPresent() + value.timeOfDay = try reader["TimeOfDay"].readIfPresent() + return value + } +} + +extension CloudTrailClientTypes.RefreshScheduleFrequency { + + static func write(value: CloudTrailClientTypes.RefreshScheduleFrequency?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Unit"].write(value.unit) + try writer["Value"].write(value.value) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudTrailClientTypes.RefreshScheduleFrequency { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudTrailClientTypes.RefreshScheduleFrequency() + value.unit = try reader["Unit"].readIfPresent() + value.value = try reader["Value"].readIfPresent() + return value + } +} + extension CloudTrailClientTypes.AdvancedEventSelector { static func write(value: CloudTrailClientTypes.AdvancedEventSelector?, to writer: SmithyJSON.Writer) throws { @@ -10022,6 +10971,17 @@ extension CloudTrailClientTypes.Channel { } } +extension CloudTrailClientTypes.DashboardDetail { + + static func read(from reader: SmithyJSON.Reader) throws -> CloudTrailClientTypes.DashboardDetail { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudTrailClientTypes.DashboardDetail() + value.dashboardArn = try reader["DashboardArn"].readIfPresent() + value.type = try reader["Type"].readIfPresent() + return value + } +} + extension CloudTrailClientTypes.EventDataStore { static func read(from reader: SmithyJSON.Reader) throws -> CloudTrailClientTypes.EventDataStore { @@ -10146,6 +11106,16 @@ extension CloudTrailClientTypes.Resource { } } +extension CloudTrailClientTypes.RequestWidget { + + static func write(value: CloudTrailClientTypes.RequestWidget?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["QueryParameters"].writeList(value.queryParameters, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["QueryStatement"].write(value.queryStatement) + try writer["ViewProperties"].writeMap(value.viewProperties, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + } +} + extension CloudTrailClientTypes.LookupAttribute { static func write(value: CloudTrailClientTypes.LookupAttribute?, to writer: SmithyJSON.Writer) throws { diff --git a/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/Paginators.swift b/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/Paginators.swift index 1b02811eecc..df52c157ba4 100644 --- a/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/Paginators.swift +++ b/Sources/Services/AWSCloudTrail/Sources/AWSCloudTrail/Paginators.swift @@ -29,6 +29,7 @@ extension GetQueryResultsInput: ClientRuntime.PaginateToken { public func usingPaginationToken(_ token: Swift.String) -> GetQueryResultsInput { return GetQueryResultsInput( eventDataStore: self.eventDataStore, + eventDataStoreOwnerAccountId: self.eventDataStoreOwnerAccountId, maxQueryResults: self.maxQueryResults, nextToken: token, queryId: self.queryId diff --git a/Sources/Services/AWSCloudTrailData/Sources/AWSCloudTrailData/CloudTrailDataClient.swift b/Sources/Services/AWSCloudTrailData/Sources/AWSCloudTrailData/CloudTrailDataClient.swift index e3bbf911d7c..3a61ea86403 100644 --- a/Sources/Services/AWSCloudTrailData/Sources/AWSCloudTrailData/CloudTrailDataClient.swift +++ b/Sources/Services/AWSCloudTrailData/Sources/AWSCloudTrailData/CloudTrailDataClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudTrailDataClient: ClientRuntime.Client { public static let clientName = "CloudTrailDataClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudTrailDataClient.CloudTrailDataClientConfiguration let serviceName = "CloudTrail Data" diff --git a/Sources/Services/AWSCloudWatch/Sources/AWSCloudWatch/CloudWatchClient.swift b/Sources/Services/AWSCloudWatch/Sources/AWSCloudWatch/CloudWatchClient.swift index 5314a2456e1..bfdc199c5a3 100644 --- a/Sources/Services/AWSCloudWatch/Sources/AWSCloudWatch/CloudWatchClient.swift +++ b/Sources/Services/AWSCloudWatch/Sources/AWSCloudWatch/CloudWatchClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudWatchClient: ClientRuntime.Client { public static let clientName = "CloudWatchClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudWatchClient.CloudWatchClientConfiguration let serviceName = "CloudWatch" diff --git a/Sources/Services/AWSCloudWatchEvents/Sources/AWSCloudWatchEvents/CloudWatchEventsClient.swift b/Sources/Services/AWSCloudWatchEvents/Sources/AWSCloudWatchEvents/CloudWatchEventsClient.swift index e56a75a9f0f..a131a503d88 100644 --- a/Sources/Services/AWSCloudWatchEvents/Sources/AWSCloudWatchEvents/CloudWatchEventsClient.swift +++ b/Sources/Services/AWSCloudWatchEvents/Sources/AWSCloudWatchEvents/CloudWatchEventsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudWatchEventsClient: ClientRuntime.Client { public static let clientName = "CloudWatchEventsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudWatchEventsClient.CloudWatchEventsClientConfiguration let serviceName = "CloudWatch Events" diff --git a/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/CloudWatchLogsClient.swift b/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/CloudWatchLogsClient.swift index d0b09ff430a..2892bc3b2a4 100644 --- a/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/CloudWatchLogsClient.swift +++ b/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/CloudWatchLogsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CloudWatchLogsClient: ClientRuntime.Client { public static let clientName = "CloudWatchLogsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CloudWatchLogsClient.CloudWatchLogsClientConfiguration let serviceName = "CloudWatch Logs" @@ -750,12 +750,19 @@ extension CloudWatchLogsClient { /// Performs the `DeleteAccountPolicy` operation on the `Logs_20140328` service. /// - /// Deletes a CloudWatch Logs account policy. This stops the policy from applying to all log groups or a subset of log groups in the account. Log-group level policies will still be in effect. To use this operation, you must be signed on with the correct permissions depending on the type of policy that you are deleting. + /// Deletes a CloudWatch Logs account policy. This stops the account-wide policy from applying to log groups in the account. If you delete a data protection policy or subscription filter policy, any log-group level policies of those types remain in effect. To use this operation, you must be signed on with the correct permissions depending on the type of policy that you are deleting. /// /// * To delete a data protection policy, you must have the logs:DeleteDataProtectionPolicy and logs:DeleteAccountPolicy permissions. /// /// * To delete a subscription filter policy, you must have the logs:DeleteSubscriptionFilter and logs:DeleteAccountPolicy permissions. /// + /// * To delete a transformer policy, you must have the logs:DeleteTransformer and logs:DeleteAccountPolicy permissions. + /// + /// * To delete a field index policy, you must have the logs:DeleteIndexPolicy and logs:DeleteAccountPolicy permissions. + /// + /// + /// If you delete a field index policy, the indexing of the log events that happened before you deleted the policy will still be used for up to 30 days to improve CloudWatch Logs Insights queries. + /// /// - Parameter DeleteAccountPolicyInput : [no documentation found] /// /// - Returns: `DeleteAccountPolicyOutput` : [no documentation found] @@ -1269,6 +1276,80 @@ extension CloudWatchLogsClient { return try await op.execute(input: input) } + /// Performs the `DeleteIndexPolicy` operation on the `Logs_20140328` service. + /// + /// Deletes a log-group level field index policy that was applied to a single log group. The indexing of the log events that happened before you delete the policy will still be used for as many as 30 days to improve CloudWatch Logs Insights queries. You can't use this operation to delete an account-level index policy. Instead, use [DeletAccountPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteAccountPolicy.html). If you delete a log-group level field index policy and there is an account-level field index policy, in a few minutes the log group begins using that account-wide policy to index new incoming log events. + /// + /// - Parameter DeleteIndexPolicyInput : [no documentation found] + /// + /// - Returns: `DeleteIndexPolicyOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidParameterException` : A parameter is specified incorrectly. + /// - `LimitExceededException` : You have reached the maximum number of resources that can be created. + /// - `OperationAbortedException` : Multiple concurrent requests to update the same resource were in conflict. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ServiceUnavailableException` : The service cannot complete the request. + public func deleteIndexPolicy(input: DeleteIndexPolicyInput) async throws -> DeleteIndexPolicyOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteIndexPolicy") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "logs") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteIndexPolicyInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteIndexPolicyOutput.httpOutput(from:), DeleteIndexPolicyOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudWatchLogsClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "Logs_20140328.DeleteIndexPolicy")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteIndexPolicyInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudWatchLogs") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteIndexPolicy") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DeleteLogAnomalyDetector` operation on the `Logs_20140328` service. /// /// Deletes the specified CloudWatch Logs anomaly detector. @@ -1851,6 +1932,80 @@ extension CloudWatchLogsClient { return try await op.execute(input: input) } + /// Performs the `DeleteTransformer` operation on the `Logs_20140328` service. + /// + /// Deletes the log transformer for the specified log group. As soon as you do this, the transformation of incoming log events according to that transformer stops. If this account has an account-level transformer that applies to this log group, the log group begins using that account-level transformer when this log-group level transformer is deleted. After you delete a transformer, be sure to edit any metric filters or subscription filters that relied on the transformed versions of the log events. + /// + /// - Parameter DeleteTransformerInput : [no documentation found] + /// + /// - Returns: `DeleteTransformerOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidOperationException` : The operation is not valid on the specified resource. + /// - `InvalidParameterException` : A parameter is specified incorrectly. + /// - `OperationAbortedException` : Multiple concurrent requests to update the same resource were in conflict. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ServiceUnavailableException` : The service cannot complete the request. + public func deleteTransformer(input: DeleteTransformerInput) async throws -> DeleteTransformerOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteTransformer") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "logs") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteTransformerInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteTransformerOutput.httpOutput(from:), DeleteTransformerOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudWatchLogsClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "Logs_20140328.DeleteTransformer")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteTransformerInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudWatchLogs") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteTransformer") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DescribeAccountPolicies` operation on the `Logs_20140328` service. /// /// Returns a list of all CloudWatch Logs account policies in the account. @@ -2358,6 +2513,154 @@ extension CloudWatchLogsClient { return try await op.execute(input: input) } + /// Performs the `DescribeFieldIndexes` operation on the `Logs_20140328` service. + /// + /// Returns a list of field indexes listed in the field index policies of one or more log groups. For more information about field index policies, see [PutIndexPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutIndexPolicy.html). + /// + /// - Parameter DescribeFieldIndexesInput : [no documentation found] + /// + /// - Returns: `DescribeFieldIndexesOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidParameterException` : A parameter is specified incorrectly. + /// - `LimitExceededException` : You have reached the maximum number of resources that can be created. + /// - `OperationAbortedException` : Multiple concurrent requests to update the same resource were in conflict. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ServiceUnavailableException` : The service cannot complete the request. + public func describeFieldIndexes(input: DescribeFieldIndexesInput) async throws -> DescribeFieldIndexesOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "describeFieldIndexes") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "logs") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DescribeFieldIndexesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DescribeFieldIndexesOutput.httpOutput(from:), DescribeFieldIndexesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudWatchLogsClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "Logs_20140328.DescribeFieldIndexes")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DescribeFieldIndexesInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudWatchLogs") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DescribeFieldIndexes") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DescribeIndexPolicies` operation on the `Logs_20140328` service. + /// + /// Returns the field index policies of one or more log groups. For more information about field index policies, see [PutIndexPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutIndexPolicy.html). If a specified log group has a log-group level index policy, that policy is returned by this operation. If a specified log group doesn't have a log-group level index policy, but an account-wide index policy applies to it, that account-wide policy is returned by this operation. To find information about only account-level policies, use [DescribeAccountPolicies](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeAccountPolicies.html) instead. + /// + /// - Parameter DescribeIndexPoliciesInput : [no documentation found] + /// + /// - Returns: `DescribeIndexPoliciesOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidParameterException` : A parameter is specified incorrectly. + /// - `LimitExceededException` : You have reached the maximum number of resources that can be created. + /// - `OperationAbortedException` : Multiple concurrent requests to update the same resource were in conflict. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ServiceUnavailableException` : The service cannot complete the request. + public func describeIndexPolicies(input: DescribeIndexPoliciesInput) async throws -> DescribeIndexPoliciesOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "describeIndexPolicies") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "logs") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DescribeIndexPoliciesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DescribeIndexPoliciesOutput.httpOutput(from:), DescribeIndexPoliciesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudWatchLogsClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "Logs_20140328.DescribeIndexPolicies")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DescribeIndexPoliciesInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudWatchLogs") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DescribeIndexPolicies") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DescribeLogGroups` operation on the `Logs_20140328` service. /// /// Lists the specified log groups. You can list all your log groups or filter the results by prefix. The results are ASCII-sorted by log group name. CloudWatch Logs doesn't support IAM policies that control access to the DescribeLogGroups action by using the aws:ResourceTag/key-name condition key. Other CloudWatch Logs actions do support the use of the aws:ResourceTag/key-name condition key to control access. For more information about using tags to control access, see [Controlling access to Amazon Web Services resources using tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html). If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). @@ -3741,6 +4044,79 @@ extension CloudWatchLogsClient { return try await op.execute(input: input) } + /// Performs the `GetTransformer` operation on the `Logs_20140328` service. + /// + /// Returns the information about the log transformer associated with this log group. This operation returns data only for transformers created at the log group level. To get information for an account-level transformer, use [DescribeAccountPolicies](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeAccountPolicies.html). + /// + /// - Parameter GetTransformerInput : [no documentation found] + /// + /// - Returns: `GetTransformerOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidOperationException` : The operation is not valid on the specified resource. + /// - `InvalidParameterException` : A parameter is specified incorrectly. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ServiceUnavailableException` : The service cannot complete the request. + public func getTransformer(input: GetTransformerInput) async throws -> GetTransformerOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getTransformer") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "logs") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetTransformerInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetTransformerOutput.httpOutput(from:), GetTransformerOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudWatchLogsClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "Logs_20140328.GetTransformer")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetTransformerInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudWatchLogs") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetTransformer") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListAnomalies` operation on the `Logs_20140328` service. /// /// Returns a list of anomalies that log anomaly detectors have found. For details about the structure format of each anomaly object that is returned, see the example in this section. @@ -3887,6 +4263,79 @@ extension CloudWatchLogsClient { return try await op.execute(input: input) } + /// Performs the `ListLogGroupsForQuery` operation on the `Logs_20140328` service. + /// + /// Returns a list of the log groups that were analyzed during a single CloudWatch Logs Insights query. This can be useful for queries that use log group name prefixes or the filterIndex command, because the log groups are dynamically selected in these cases. For more information about field indexes, see [Create field indexes to improve query performance and reduce costs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Field-Indexing.html). + /// + /// - Parameter ListLogGroupsForQueryInput : [no documentation found] + /// + /// - Returns: `ListLogGroupsForQueryOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You don't have sufficient permissions to perform this action. + /// - `InvalidParameterException` : A parameter is specified incorrectly. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ServiceUnavailableException` : The service cannot complete the request. + public func listLogGroupsForQuery(input: ListLogGroupsForQueryInput) async throws -> ListLogGroupsForQueryOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listLogGroupsForQuery") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "logs") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListLogGroupsForQueryInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListLogGroupsForQueryOutput.httpOutput(from:), ListLogGroupsForQueryOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudWatchLogsClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "Logs_20140328.ListLogGroupsForQuery")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListLogGroupsForQueryInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudWatchLogs") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListLogGroupsForQuery") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListTagsForResource` operation on the `Logs_20140328` service. /// /// Displays the tags associated with a CloudWatch Logs resource. Currently, log groups and destinations support tagging. @@ -4033,7 +4482,7 @@ extension CloudWatchLogsClient { /// Performs the `PutAccountPolicy` operation on the `Logs_20140328` service. /// - /// Creates an account-level data protection policy or subscription filter policy that applies to all log groups or a subset of log groups in the account. Data protection policy A data protection policy can help safeguard sensitive data that's ingested by your log groups by auditing and masking the sensitive log data. Each account can have only one account-level data protection policy. Sensitive data is detected and masked when it is ingested into a log group. When you set a data protection policy, log events ingested into the log groups before that time are not masked. If you use PutAccountPolicy to create a data protection policy for your whole account, it applies to both existing log groups and all log groups that are created later in this account. The account-level policy is applied to existing log groups with eventual consistency. It might take up to 5 minutes before sensitive data in existing log groups begins to be masked. By default, when a user views a log event that includes masked data, the sensitive data is replaced by asterisks. A user who has the logs:Unmask permission can use a [GetLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html) or [FilterLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_FilterLogEvents.html) operation with the unmask parameter set to true to view the unmasked log events. Users with the logs:Unmask can also view unmasked data in the CloudWatch Logs console by running a CloudWatch Logs Insights query with the unmask query command. For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). To use the PutAccountPolicy operation for a data protection policy, you must be signed on with the logs:PutDataProtectionPolicy and logs:PutAccountPolicy permissions. The PutAccountPolicy operation applies to all log groups in the account. You can use [PutDataProtectionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDataProtectionPolicy.html) to create a data protection policy that applies to just one log group. If a log group has its own data protection policy and the account also has an account-level data protection policy, then the two policies are cumulative. Any sensitive term specified in either policy is masked. Subscription filter policy A subscription filter policy sets up a real-time feed of log events from CloudWatch Logs to other Amazon Web Services services. Account-level subscription filter policies apply to both existing log groups and log groups that are created later in this account. Supported destinations are Kinesis Data Streams, Firehose, and Lambda. When log events are sent to the receiving service, they are Base64 encoded and compressed with the GZIP format. The following destinations are supported for subscription filters: + /// Creates an account-level data protection policy, subscription filter policy, or field index policy that applies to all log groups or a subset of log groups in the account. Data protection policy A data protection policy can help safeguard sensitive data that's ingested by your log groups by auditing and masking the sensitive log data. Each account can have only one account-level data protection policy. Sensitive data is detected and masked when it is ingested into a log group. When you set a data protection policy, log events ingested into the log groups before that time are not masked. If you use PutAccountPolicy to create a data protection policy for your whole account, it applies to both existing log groups and all log groups that are created later in this account. The account-level policy is applied to existing log groups with eventual consistency. It might take up to 5 minutes before sensitive data in existing log groups begins to be masked. By default, when a user views a log event that includes masked data, the sensitive data is replaced by asterisks. A user who has the logs:Unmask permission can use a [GetLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html) or [FilterLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_FilterLogEvents.html) operation with the unmask parameter set to true to view the unmasked log events. Users with the logs:Unmask can also view unmasked data in the CloudWatch Logs console by running a CloudWatch Logs Insights query with the unmask query command. For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). To use the PutAccountPolicy operation for a data protection policy, you must be signed on with the logs:PutDataProtectionPolicy and logs:PutAccountPolicy permissions. The PutAccountPolicy operation applies to all log groups in the account. You can use [PutDataProtectionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDataProtectionPolicy.html) to create a data protection policy that applies to just one log group. If a log group has its own data protection policy and the account also has an account-level data protection policy, then the two policies are cumulative. Any sensitive term specified in either policy is masked. Subscription filter policy A subscription filter policy sets up a real-time feed of log events from CloudWatch Logs to other Amazon Web Services services. Account-level subscription filter policies apply to both existing log groups and log groups that are created later in this account. Supported destinations are Kinesis Data Streams, Firehose, and Lambda. When log events are sent to the receiving service, they are Base64 encoded and compressed with the GZIP format. The following destinations are supported for subscription filters: /// /// * An Kinesis Data Streams data stream in the same account as the subscription policy, for same-account delivery. /// @@ -4044,7 +4493,7 @@ extension CloudWatchLogsClient { /// * A logical destination in a different account created with [PutDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestination.html), for cross-account delivery. Kinesis Data Streams and Firehose are supported as logical destinations. /// /// - /// Each account can have one account-level subscription filter policy per Region. If you are updating an existing filter, you must specify the correct name in PolicyName. To perform a PutAccountPolicy subscription filter operation for any destination except a Lambda function, you must also have the iam:PassRole permission. + /// Each account can have one account-level subscription filter policy per Region. If you are updating an existing filter, you must specify the correct name in PolicyName. To perform a PutAccountPolicy subscription filter operation for any destination except a Lambda function, you must also have the iam:PassRole permission. Transformer policy Creates or updates a log transformer policy for your account. You use log transformers to transform log events into a different format, making them easier for you to process and analyze. You can also transform logs from different sources into standardized formats that contain relevant, source-specific information. After you have created a transformer, CloudWatch Logs performs this transformation at the time of log ingestion. You can then refer to the transformed versions of the logs during operations such as querying with CloudWatch Logs Insights or creating metric filters or subscription filters. You can also use a transformer to copy metadata from metadata keys into the log events themselves. This metadata can include log group name, log stream name, account ID and Region. A transformer for a log group is a series of processors, where each processor applies one type of transformation to the log events ingested into this log group. For more information about the available processors to use in a transformer, see [ Processors that you can use](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-Processors). Having log events in standardized format enables visibility across your applications for your log analysis, reporting, and alarming needs. CloudWatch Logs provides transformation for common log types with out-of-the-box transformation templates for major Amazon Web Services log sources such as VPC flow logs, Lambda, and Amazon RDS. You can use pre-built transformation templates or create custom transformation policies. You can create transformers only for the log groups in the Standard log class. You can have one account-level transformer policy that applies to all log groups in the account. Or you can create as many as 20 account-level transformer policies that are each scoped to a subset of log groups with the selectionCriteria parameter. If you have multiple account-level transformer policies with selection criteria, no two of them can use the same or overlapping log group name prefixes. For example, if you have one policy filtered to log groups that start with my-log, you can't have another field index policy filtered to my-logpprod or my-logging. You can also set up a transformer at the log-group level. For more information, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html). If there is both a log-group level transformer created with PutTransformer and an account-level transformer that could apply to the same log group, the log group uses only the log-group level transformer. It ignores the account-level transformer. Field index policy You can use field index policies to create indexes on fields found in log events in the log group. Creating field indexes can help lower the scan volume for CloudWatch Logs Insights queries that reference those fields, because these queries attempt to skip the processing of log events that are known to not match the indexed field. Good fields to index are fields that you often need to query for and fields or values that match only a small fraction of the total log events. Common examples of indexes include request ID, session ID, user IDs, or instance IDs. For more information, see [Create field indexes to improve query performance and reduce costs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Field-Indexing.html) To find the fields that are in your log group events, use the [GetLogGroupFields](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogGroupFields.html) operation. For example, suppose you have created a field index for requestId. Then, any CloudWatch Logs Insights query on that log group that includes requestId = value or requestId in [value, value, ...] will attempt to process only the log events where the indexed field matches the specified value. Matches of log events to the names of indexed fields are case-sensitive. For example, an indexed field of RequestId won't match a log event containing requestId. You can have one account-level field index policy that applies to all log groups in the account. Or you can create as many as 20 account-level field index policies that are each scoped to a subset of log groups with the selectionCriteria parameter. If you have multiple account-level index policies with selection criteria, no two of them can use the same or overlapping log group name prefixes. For example, if you have one policy filtered to log groups that start with my-log, you can't have another field index policy filtered to my-logpprod or my-logging. If you create an account-level field index policy in a monitoring account in cross-account observability, the policy is applied only to the monitoring account and not to any source accounts. If you want to create a field index policy for a single log group, you can use [PutIndexPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutIndexPolicy.html) instead of PutAccountPolicy. If you do so, that log group will use only that log-group level policy, and will ignore the account-level policy that you create with [PutAccountPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutAccountPolicy.html). /// /// - Parameter PutAccountPolicyInput : [no documentation found] /// @@ -4589,6 +5038,87 @@ extension CloudWatchLogsClient { return try await op.execute(input: input) } + /// Performs the `PutIndexPolicy` operation on the `Logs_20140328` service. + /// + /// Creates or updates a field index policy for the specified log group. Only log groups in the Standard log class support field index policies. For more information about log classes, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html). You can use field index policies to create field indexes on fields found in log events in the log group. Creating field indexes speeds up and lowers the costs for CloudWatch Logs Insights queries that reference those field indexes, because these queries attempt to skip the processing of log events that are known to not match the indexed field. Good fields to index are fields that you often need to query for and fields or values that match only a small fraction of the total log events. Common examples of indexes include request ID, session ID, userID, and instance IDs. For more information, see [Create field indexes to improve query performance and reduce costs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Field-Indexing.html). To find the fields that are in your log group events, use the [GetLogGroupFields](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogGroupFields.html) operation. For example, suppose you have created a field index for requestId. Then, any CloudWatch Logs Insights query on that log group that includes requestId = value or requestId IN [value, value, ...] will process fewer log events to reduce costs, and have improved performance. Each index policy has the following quotas and restrictions: + /// + /// * As many as 20 fields can be included in the policy. + /// + /// * Each field name can include as many as 100 characters. + /// + /// + /// Matches of log events to the names of indexed fields are case-sensitive. For example, a field index of RequestId won't match a log event containing requestId. Log group-level field index policies created with PutIndexPolicy override account-level field index policies created with [PutAccountPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutAccountPolicy.html). If you use PutIndexPolicy to create a field index policy for a log group, that log group uses only that policy. The log group ignores any account-wide field index policy that you might have created. + /// + /// - Parameter PutIndexPolicyInput : [no documentation found] + /// + /// - Returns: `PutIndexPolicyOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidParameterException` : A parameter is specified incorrectly. + /// - `LimitExceededException` : You have reached the maximum number of resources that can be created. + /// - `OperationAbortedException` : Multiple concurrent requests to update the same resource were in conflict. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ServiceUnavailableException` : The service cannot complete the request. + public func putIndexPolicy(input: PutIndexPolicyInput) async throws -> PutIndexPolicyOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "putIndexPolicy") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "logs") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(PutIndexPolicyInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(PutIndexPolicyOutput.httpOutput(from:), PutIndexPolicyOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudWatchLogsClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "Logs_20140328.PutIndexPolicy")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: PutIndexPolicyInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudWatchLogs") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "PutIndexPolicy") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `PutLogEvents` operation on the `Logs_20140328` service. /// /// Uploads a batch of log events to the specified log stream. The sequence token is now ignored in PutLogEvents actions. PutLogEvents actions are always accepted and never return InvalidSequenceTokenException or DataAlreadyAcceptedException even if the sequence token is not valid. You can use parallel PutLogEvents actions on the same log stream. The batch of events must satisfy the following constraints: @@ -4685,7 +5215,7 @@ extension CloudWatchLogsClient { /// Performs the `PutMetricFilter` operation on the `Logs_20140328` service. /// - /// Creates or updates a metric filter and associates it with the specified log group. With metric filters, you can configure rules to extract metric data from log events ingested through [PutLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html). The maximum number of metric filters that can be associated with a log group is 100. Using regular expressions to create metric filters is supported. For these filters, there is a quotas of quota of two regular expression patterns within a single filter pattern. There is also a quota of five regular expression patterns per log group. For more information about using regular expressions in metric filters, see [ Filter pattern syntax for metric filters, subscription filters, filter log events, and Live Tail](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). When you create a metric filter, you can also optionally assign a unit and dimensions to the metric that is created. Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as IPAddress or requestID as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. CloudWatch Logs might disable a metric filter if it generates 1,000 different name/value pairs for your specified dimensions within one hour. You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [ Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). + /// Creates or updates a metric filter and associates it with the specified log group. With metric filters, you can configure rules to extract metric data from log events ingested through [PutLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html). The maximum number of metric filters that can be associated with a log group is 100. Using regular expressions to create metric filters is supported. For these filters, there is a quota of two regular expression patterns within a single filter pattern. There is also a quota of five regular expression patterns per log group. For more information about using regular expressions in metric filters, see [ Filter pattern syntax for metric filters, subscription filters, filter log events, and Live Tail](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). When you create a metric filter, you can also optionally assign a unit and dimensions to the metric that is created. Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as IPAddress or requestID as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. CloudWatch Logs might disable a metric filter if it generates 1,000 different name/value pairs for your specified dimensions within one hour. You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [ Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). /// /// - Parameter PutMetricFilterInput : [no documentation found] /// @@ -4694,6 +5224,7 @@ extension CloudWatchLogsClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ + /// - `InvalidOperationException` : The operation is not valid on the specified resource. /// - `InvalidParameterException` : A parameter is specified incorrectly. /// - `LimitExceededException` : You have reached the maximum number of resources that can be created. /// - `OperationAbortedException` : Multiple concurrent requests to update the same resource were in conflict. @@ -4998,6 +5529,7 @@ extension CloudWatchLogsClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ + /// - `InvalidOperationException` : The operation is not valid on the specified resource. /// - `InvalidParameterException` : A parameter is specified incorrectly. /// - `LimitExceededException` : You have reached the maximum number of resources that can be created. /// - `OperationAbortedException` : Multiple concurrent requests to update the same resource were in conflict. @@ -5061,6 +5593,81 @@ extension CloudWatchLogsClient { return try await op.execute(input: input) } + /// Performs the `PutTransformer` operation on the `Logs_20140328` service. + /// + /// Creates or updates a log transformer for a single log group. You use log transformers to transform log events into a different format, making them easier for you to process and analyze. You can also transform logs from different sources into standardized formats that contains relevant, source-specific information. After you have created a transformer, CloudWatch Logs performs the transformations at the time of log ingestion. You can then refer to the transformed versions of the logs during operations such as querying with CloudWatch Logs Insights or creating metric filters or subscription filers. You can also use a transformer to copy metadata from metadata keys into the log events themselves. This metadata can include log group name, log stream name, account ID and Region. A transformer for a log group is a series of processors, where each processor applies one type of transformation to the log events ingested into this log group. The processors work one after another, in the order that you list them, like a pipeline. For more information about the available processors to use in a transformer, see [ Processors that you can use](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-Processors). Having log events in standardized format enables visibility across your applications for your log analysis, reporting, and alarming needs. CloudWatch Logs provides transformation for common log types with out-of-the-box transformation templates for major Amazon Web Services log sources such as VPC flow logs, Lambda, and Amazon RDS. You can use pre-built transformation templates or create custom transformation policies. You can create transformers only for the log groups in the Standard log class. You can also set up a transformer at the account level. For more information, see [PutAccountPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutAccountPolicy.html). If there is both a log-group level transformer created with PutTransformer and an account-level transformer that could apply to the same log group, the log group uses only the log-group level transformer. It ignores the account-level transformer. + /// + /// - Parameter PutTransformerInput : [no documentation found] + /// + /// - Returns: `PutTransformerOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidOperationException` : The operation is not valid on the specified resource. + /// - `InvalidParameterException` : A parameter is specified incorrectly. + /// - `LimitExceededException` : You have reached the maximum number of resources that can be created. + /// - `OperationAbortedException` : Multiple concurrent requests to update the same resource were in conflict. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ServiceUnavailableException` : The service cannot complete the request. + public func putTransformer(input: PutTransformerInput) async throws -> PutTransformerOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "putTransformer") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "logs") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(PutTransformerInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(PutTransformerOutput.httpOutput(from:), PutTransformerOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudWatchLogsClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "Logs_20140328.PutTransformer")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: PutTransformerInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudWatchLogs") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "PutTransformer") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `StartLiveTail` operation on the `Logs_20140328` service. /// /// Starts a Live Tail streaming session for one or more log groups. A Live Tail session returns a stream of log events that have been recently ingested in the log groups. For more information, see [Use Live Tail to view logs in near real time](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs_LiveTail.html). The response to this operation is a response stream, over which the server sends live log events and the client receives them. The following objects are sent over the stream: @@ -5148,7 +5755,14 @@ extension CloudWatchLogsClient { /// Performs the `StartQuery` operation on the `Logs_20140328` service. /// - /// Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). After you run a query using StartQuery, the query results are stored by CloudWatch Logs. You can use [GetQueryResults](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetQueryResults.html) to retrieve the results of a query, using the queryId that StartQuery returns. If you have associated a KMS key with the query results in this account, then [StartQuery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html) uses that key to encrypt the results when it stores them. If no key is associated with query results, the query results are encrypted with the default CloudWatch Logs encryption method. Queries time out after 60 minutes of runtime. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start a query in a linked source account. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). For a cross-account StartQuery operation, the query definition must be defined in the monitoring account. You can have up to 30 concurrent CloudWatch Logs insights queries, including queries that have been added to dashboards. + /// Starts a query of one or more log groups using CloudWatch Logs Insights. You specify the log groups and time range to query and the query string to use. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). After you run a query using StartQuery, the query results are stored by CloudWatch Logs. You can use [GetQueryResults](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetQueryResults.html) to retrieve the results of a query, using the queryId that StartQuery returns. To specify the log groups to query, a StartQuery operation must include one of the following: + /// + /// * Either exactly one of the following parameters: logGroupName, logGroupNames, or logGroupIdentifiers + /// + /// * Or the queryString must include a SOURCE command to select log groups for the query. The SOURCE command can select log groups based on log group name prefix, account ID, and log class. For more information about the SOURCE command, see [SOURCE](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-Source.html). + /// + /// + /// If you have associated a KMS key with the query results in this account, then [StartQuery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html) uses that key to encrypt the results when it stores them. If no key is associated with query results, the query results are encrypted with the default CloudWatch Logs encryption method. Queries time out after 60 minutes of runtime. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start a query in a linked source account. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). For a cross-account StartQuery operation, the query definition must be defined in the monitoring account. You can have up to 30 concurrent CloudWatch Logs insights queries, including queries that have been added to dashboards. /// /// - Parameter StartQueryInput : [no documentation found] /// @@ -5508,6 +6122,78 @@ extension CloudWatchLogsClient { return try await op.execute(input: input) } + /// Performs the `TestTransformer` operation on the `Logs_20140328` service. + /// + /// Use this operation to test a log transformer. You enter the transformer configuration and a set of log events to test with. The operation responds with an array that includes the original log events and the transformed versions. + /// + /// - Parameter TestTransformerInput : [no documentation found] + /// + /// - Returns: `TestTransformerOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidOperationException` : The operation is not valid on the specified resource. + /// - `InvalidParameterException` : A parameter is specified incorrectly. + /// - `ServiceUnavailableException` : The service cannot complete the request. + public func testTransformer(input: TestTransformerInput) async throws -> TestTransformerOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "testTransformer") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "logs") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(TestTransformerInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(TestTransformerOutput.httpOutput(from:), TestTransformerOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CloudWatchLogsClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "Logs_20140328.TestTransformer")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: TestTransformerInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CloudWatchLogs") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "TestTransformer") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `UntagLogGroup` operation on the `Logs_20140328` service. /// /// The UntagLogGroup operation is on the path to deprecation. We recommend that you use [UntagResource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UntagResource.html) instead. Removes the specified tags from the specified log group. To list the tags for a log group, use [ListTagsForResource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListTagsForResource.html). To add tags, use [TagResource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_TagResource.html). CloudWatch Logs doesn't support IAM policies that prevent users from assigning specified tags to log groups using the aws:Resource/key-name or aws:TagKeys condition keys. diff --git a/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/Models.swift b/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/Models.swift index f343e754d3b..d99b4433745 100644 --- a/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/Models.swift +++ b/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/Models.swift @@ -123,6 +123,11 @@ public struct DeleteSubscriptionFilterOutput: Swift.Sendable { public init() { } } +public struct DeleteTransformerOutput: Swift.Sendable { + + public init() { } +} + public struct DisassociateKmsKeyOutput: Swift.Sendable { public init() { } @@ -148,6 +153,11 @@ public struct PutSubscriptionFilterOutput: Swift.Sendable { public init() { } } +public struct PutTransformerOutput: Swift.Sendable { + + public init() { } +} + public struct TagLogGroupOutput: Swift.Sendable { public init() { } @@ -206,13 +216,17 @@ extension CloudWatchLogsClientTypes { public enum PolicyType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case dataProtectionPolicy + case fieldIndexPolicy case subscriptionFilterPolicy + case transformerPolicy case sdkUnknown(Swift.String) public static var allCases: [PolicyType] { return [ .dataProtectionPolicy, - .subscriptionFilterPolicy + .fieldIndexPolicy, + .subscriptionFilterPolicy, + .transformerPolicy ] } @@ -224,7 +238,9 @@ extension CloudWatchLogsClientTypes { public var rawValue: Swift.String { switch self { case .dataProtectionPolicy: return "DATA_PROTECTION_POLICY" + case .fieldIndexPolicy: return "FIELD_INDEX_POLICY" case .subscriptionFilterPolicy: return "SUBSCRIPTION_FILTER_POLICY" + case .transformerPolicy: return "TRANSFORMER_POLICY" case let .sdkUnknown(s): return s } } @@ -273,7 +289,7 @@ extension CloudWatchLogsClientTypes { public var policyType: CloudWatchLogsClientTypes.PolicyType? /// The scope of the account policy. public var scope: CloudWatchLogsClientTypes.Scope? - /// The log group selection criteria for this subscription filter policy. + /// The log group selection criteria that is used for this policy. public var selectionCriteria: Swift.String? public init( @@ -297,6 +313,49 @@ extension CloudWatchLogsClientTypes { } } +extension CloudWatchLogsClientTypes { + + /// This object defines one key that will be added with the [ addKeys](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-addKey) processor. + public struct AddKeyEntry: Swift.Sendable { + /// The key of the new entry to be added to the log event + /// This member is required. + public var key: Swift.String? + /// Specifies whether to overwrite the value if the key already exists in the log event. If you omit this, the default is false. + public var overwriteIfExists: Swift.Bool + /// The value of the new entry to be added to the log event + /// This member is required. + public var value: Swift.String? + + public init( + key: Swift.String? = nil, + overwriteIfExists: Swift.Bool = false, + value: Swift.String? = nil + ) + { + self.key = key + self.overwriteIfExists = overwriteIfExists + self.value = value + } + } +} + +extension CloudWatchLogsClientTypes { + + /// This processor adds new key-value pairs to the log event. For more information about this processor including examples, see [ addKeys](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-addKeys) in the CloudWatch Logs User Guide. + public struct AddKeys: Swift.Sendable { + /// An array of objects, where each object contains the information about one key to add to the log event. + /// This member is required. + public var entries: [CloudWatchLogsClientTypes.AddKeyEntry]? + + public init( + entries: [CloudWatchLogsClientTypes.AddKeyEntry]? = nil + ) + { + self.entries = entries + } + } +} + extension CloudWatchLogsClientTypes { /// A structure that represents a valid record field header and whether it is mandatory. @@ -987,6 +1046,49 @@ public struct ConflictException: ClientRuntime.ModeledError, AWSClientRuntime.AW } } +extension CloudWatchLogsClientTypes { + + /// This object defines one value to be copied with the [ copyValue](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-copoyValue) processor. + public struct CopyValueEntry: Swift.Sendable { + /// Specifies whether to overwrite the value if the destination key already exists. If you omit this, the default is false. + public var overwriteIfExists: Swift.Bool + /// The key to copy. + /// This member is required. + public var source: Swift.String? + /// The key of the field to copy the value to. + /// This member is required. + public var target: Swift.String? + + public init( + overwriteIfExists: Swift.Bool = false, + source: Swift.String? = nil, + target: Swift.String? = nil + ) + { + self.overwriteIfExists = overwriteIfExists + self.source = source + self.target = target + } + } +} + +extension CloudWatchLogsClientTypes { + + /// This processor copies values within a log event. You can also use this processor to add metadata to log events by copying the values of the following metadata keys into the log events: @logGroupName, @logGroupStream, @accountId, @regionName. For more information about this processor including examples, see [ copyValue](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-copyValue) in the CloudWatch Logs User Guide. + public struct CopyValue: Swift.Sendable { + /// An array of CopyValueEntry objects, where each object contains the information about one field value to copy. + /// This member is required. + public var entries: [CloudWatchLogsClientTypes.CopyValueEntry]? + + public init( + entries: [CloudWatchLogsClientTypes.CopyValueEntry]? = nil + ) + { + self.entries = entries + } + } +} + /// This request exceeds a service quota. public struct ServiceQuotaExceededException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -1381,6 +1483,34 @@ public struct CreateLogStreamInput: Swift.Sendable { } } +extension CloudWatchLogsClientTypes { + + /// The CSV processor parses comma-separated values (CSV) from the log events into columns. For more information about this processor including examples, see [ csv](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-csv) in the CloudWatch Logs User Guide. + public struct CSV: Swift.Sendable { + /// An array of names to use for the columns in the transformed log event. If you omit this, default column names ([column_1, column_2 ...]) are used. + public var columns: [Swift.String]? + /// The character used to separate each column in the original comma-separated value log event. If you omit this, the processor looks for the comma , character as the delimiter. + public var delimiter: Swift.String? + /// The character used used as a text qualifier for a single column of data. If you omit this, the double quotation mark " character is used. + public var quoteCharacter: Swift.String? + /// The path to the field in the log event that has the comma separated values to be parsed. If you omit this value, the whole log message is processed. + public var source: Swift.String? + + public init( + columns: [Swift.String]? = nil, + delimiter: Swift.String? = nil, + quoteCharacter: Swift.String? = nil, + source: Swift.String? = nil + ) + { + self.columns = columns + self.delimiter = delimiter + self.quoteCharacter = quoteCharacter + self.source = source + } + } +} + /// The event was already logged. PutLogEvents actions are now always accepted and never return DataAlreadyAcceptedException regardless of whether a given batch of log events has already been accepted. public struct DataAlreadyAcceptedException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -1443,6 +1573,49 @@ extension CloudWatchLogsClientTypes { } } +extension CloudWatchLogsClientTypes { + + /// This processor converts a datetime string into a format that you specify. For more information about this processor including examples, see [ datetimeConverter](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-datetimeConverter) in the CloudWatch Logs User Guide. + public struct DateTimeConverter: Swift.Sendable { + /// The locale of the source field. If you omit this, the default of locale.ROOT is used. + public var locale: Swift.String? + /// A list of patterns to match against the source field. + /// This member is required. + public var matchPatterns: [Swift.String]? + /// The key to apply the date conversion to. + /// This member is required. + public var source: Swift.String? + /// The time zone of the source field. If you omit this, the default used is the UTC zone. + public var sourceTimezone: Swift.String? + /// The JSON field to store the result in. + /// This member is required. + public var target: Swift.String? + /// The datetime format to use for the converted data in the target field. If you omit this, the default of yyyy-MM-dd'T'HH:mm:ss.SSS'Z is used. + public var targetFormat: Swift.String? + /// The time zone of the target field. If you omit this, the default used is the UTC zone. + public var targetTimezone: Swift.String? + + public init( + locale: Swift.String? = nil, + matchPatterns: [Swift.String]? = nil, + source: Swift.String? = nil, + sourceTimezone: Swift.String? = nil, + target: Swift.String? = nil, + targetFormat: Swift.String? = nil, + targetTimezone: Swift.String? = nil + ) + { + self.locale = locale + self.matchPatterns = matchPatterns + self.source = source + self.sourceTimezone = sourceTimezone + self.target = target + self.targetFormat = targetFormat + self.targetTimezone = targetTimezone + } + } +} + public struct DeleteAccountPolicyInput: Swift.Sendable { /// The name of the policy to delete. /// This member is required. @@ -1539,6 +1712,41 @@ public struct DeleteDestinationInput: Swift.Sendable { } } +public struct DeleteIndexPolicyInput: Swift.Sendable { + /// The log group to delete the index policy for. You can specify either the name or the ARN of the log group. + /// This member is required. + public var logGroupIdentifier: Swift.String? + + public init( + logGroupIdentifier: Swift.String? = nil + ) + { + self.logGroupIdentifier = logGroupIdentifier + } +} + +public struct DeleteIndexPolicyOutput: Swift.Sendable { + + public init() { } +} + +extension CloudWatchLogsClientTypes { + + /// This processor deletes entries from a log event. These entries are key-value pairs. For more information about this processor including examples, see [ deleteKeys](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-deleteKeys) in the CloudWatch Logs User Guide. + public struct DeleteKeys: Swift.Sendable { + /// The list of keys to delete. + /// This member is required. + public var withKeys: [Swift.String]? + + public init( + withKeys: [Swift.String]? = nil + ) + { + self.withKeys = withKeys + } + } +} + public struct DeleteLogAnomalyDetectorInput: Swift.Sendable { /// The ARN of the anomaly detector to delete. You can find the ARNs of log anomaly detectors in your account by using the [ListLogAnomalyDetectors](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListLogAnomalyDetectors.html) operation. /// This member is required. @@ -1669,6 +1877,19 @@ public struct DeleteSubscriptionFilterInput: Swift.Sendable { } } +public struct DeleteTransformerInput: Swift.Sendable { + /// Specify either the name or ARN of the log group to delete the transformer for. If the log group is in a source account and you are using a monitoring account, you must use the log group ARN. + /// This member is required. + public var logGroupIdentifier: Swift.String? + + public init( + logGroupIdentifier: Swift.String? = nil + ) + { + self.logGroupIdentifier = logGroupIdentifier + } +} + extension CloudWatchLogsClientTypes { /// A structure that contains information about one logs delivery destination. @@ -1783,6 +2004,8 @@ extension CloudWatchLogsClientTypes { public struct DescribeAccountPoliciesInput: Swift.Sendable { /// If you are using an account that is set up as a monitoring account for CloudWatch unified cross-account observability, you can use this to specify the account ID of a source account. If you do, the operation returns the account policy for the specified account. Currently, you can specify only one account ID in this parameter. If you omit this parameter, only the policy in the current account is returned. public var accountIdentifiers: [Swift.String]? + /// The token for the next set of items to return. (You received this token from a previous call.) + public var nextToken: Swift.String? /// Use this parameter to limit the returned policies to only the policy with the name that you specify. public var policyName: Swift.String? /// Use this parameter to limit the returned policies to only the policies that match the policy type that you specify. @@ -1791,11 +2014,13 @@ public struct DescribeAccountPoliciesInput: Swift.Sendable { public init( accountIdentifiers: [Swift.String]? = nil, + nextToken: Swift.String? = nil, policyName: Swift.String? = nil, policyType: CloudWatchLogsClientTypes.PolicyType? = nil ) { self.accountIdentifiers = accountIdentifiers + self.nextToken = nextToken self.policyName = policyName self.policyType = policyType } @@ -1804,12 +2029,16 @@ public struct DescribeAccountPoliciesInput: Swift.Sendable { public struct DescribeAccountPoliciesOutput: Swift.Sendable { /// An array of structures that contain information about the CloudWatch Logs account policies that match the specified filters. public var accountPolicies: [CloudWatchLogsClientTypes.AccountPolicy]? + /// The token to use when requesting the next set of items. The token expires after 24 hours. + public var nextToken: Swift.String? public init( - accountPolicies: [CloudWatchLogsClientTypes.AccountPolicy]? = nil + accountPolicies: [CloudWatchLogsClientTypes.AccountPolicy]? = nil, + nextToken: Swift.String? = nil ) { self.accountPolicies = accountPolicies + self.nextToken = nextToken } } @@ -2198,6 +2427,165 @@ public struct DescribeExportTasksOutput: Swift.Sendable { } } +public struct DescribeFieldIndexesInput: Swift.Sendable { + /// An array containing the names or ARNs of the log groups that you want to retrieve field indexes for. + /// This member is required. + public var logGroupIdentifiers: [Swift.String]? + /// The token for the next set of items to return. The token expires after 24 hours. + public var nextToken: Swift.String? + + public init( + logGroupIdentifiers: [Swift.String]? = nil, + nextToken: Swift.String? = nil + ) + { + self.logGroupIdentifiers = logGroupIdentifiers + self.nextToken = nextToken + } +} + +extension CloudWatchLogsClientTypes { + + /// This structure describes one log event field that is used as an index in at least one index policy in this account. + public struct FieldIndex: Swift.Sendable { + /// The string that this field index matches. + public var fieldIndexName: Swift.String? + /// The time and date of the earliest log event that matches this field index, after the index policy that contains it was created. + public var firstEventTime: Swift.Int? + /// The time and date of the most recent log event that matches this field index. + public var lastEventTime: Swift.Int? + /// The most recent time that CloudWatch Logs scanned ingested log events to search for this field index to improve the speed of future CloudWatch Logs Insights queries that search for this field index. + public var lastScanTime: Swift.Int? + /// If this field index appears in an index policy that applies only to a single log group, the ARN of that log group is displayed here. + public var logGroupIdentifier: Swift.String? + + public init( + fieldIndexName: Swift.String? = nil, + firstEventTime: Swift.Int? = nil, + lastEventTime: Swift.Int? = nil, + lastScanTime: Swift.Int? = nil, + logGroupIdentifier: Swift.String? = nil + ) + { + self.fieldIndexName = fieldIndexName + self.firstEventTime = firstEventTime + self.lastEventTime = lastEventTime + self.lastScanTime = lastScanTime + self.logGroupIdentifier = logGroupIdentifier + } + } +} + +public struct DescribeFieldIndexesOutput: Swift.Sendable { + /// An array containing the field index information. + public var fieldIndexes: [CloudWatchLogsClientTypes.FieldIndex]? + /// The token for the next set of items to return. The token expires after 24 hours. + public var nextToken: Swift.String? + + public init( + fieldIndexes: [CloudWatchLogsClientTypes.FieldIndex]? = nil, + nextToken: Swift.String? = nil + ) + { + self.fieldIndexes = fieldIndexes + self.nextToken = nextToken + } +} + +public struct DescribeIndexPoliciesInput: Swift.Sendable { + /// An array containing the name or ARN of the log group that you want to retrieve field index policies for. + /// This member is required. + public var logGroupIdentifiers: [Swift.String]? + /// The token for the next set of items to return. The token expires after 24 hours. + public var nextToken: Swift.String? + + public init( + logGroupIdentifiers: [Swift.String]? = nil, + nextToken: Swift.String? = nil + ) + { + self.logGroupIdentifiers = logGroupIdentifiers + self.nextToken = nextToken + } +} + +extension CloudWatchLogsClientTypes { + + public enum IndexSource: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case account + case logGroup + case sdkUnknown(Swift.String) + + public static var allCases: [IndexSource] { + return [ + .account, + .logGroup + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .account: return "ACCOUNT" + case .logGroup: return "LOG_GROUP" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CloudWatchLogsClientTypes { + + /// This structure contains information about one field index policy in this account. + public struct IndexPolicy: Swift.Sendable { + /// The date and time that this index policy was most recently updated. + public var lastUpdateTime: Swift.Int? + /// The ARN of the log group that this index policy applies to. + public var logGroupIdentifier: Swift.String? + /// The policy document for this index policy, in JSON format. + public var policyDocument: Swift.String? + /// The name of this policy. Responses about log group-level field index policies don't have this field, because those policies don't have names. + public var policyName: Swift.String? + /// This field indicates whether this is an account-level index policy or an index policy that applies only to a single log group. + public var source: CloudWatchLogsClientTypes.IndexSource? + + public init( + lastUpdateTime: Swift.Int? = nil, + logGroupIdentifier: Swift.String? = nil, + policyDocument: Swift.String? = nil, + policyName: Swift.String? = nil, + source: CloudWatchLogsClientTypes.IndexSource? = nil + ) + { + self.lastUpdateTime = lastUpdateTime + self.logGroupIdentifier = logGroupIdentifier + self.policyDocument = policyDocument + self.policyName = policyName + self.source = source + } + } +} + +public struct DescribeIndexPoliciesOutput: Swift.Sendable { + /// An array containing the field index policies. + public var indexPolicies: [CloudWatchLogsClientTypes.IndexPolicy]? + /// The token for the next set of items to return. The token expires after 24 hours. + public var nextToken: Swift.String? + + public init( + indexPolicies: [CloudWatchLogsClientTypes.IndexPolicy]? = nil, + nextToken: Swift.String? = nil + ) + { + self.indexPolicies = indexPolicies + self.nextToken = nextToken + } +} + public struct DescribeLogGroupsInput: Swift.Sendable { /// When includeLinkedAccounts is set to True, use this parameter to specify the list of accounts to search. You can specify as many as 20 account IDs in the array. public var accountIdentifiers: [Swift.String]? @@ -2657,6 +3045,8 @@ extension CloudWatchLogsClientTypes { /// Metric filters express how CloudWatch Logs would extract metric observations from ingested log events and transform them into metric data in a CloudWatch metric. public struct MetricFilter: Swift.Sendable { + /// This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html). If this value is true, the metric filter is applied on the transformed version of the log events instead of the original ingested log events. + public var applyOnTransformedLogs: Swift.Bool /// The creation time of the metric filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public var creationTime: Swift.Int? /// The name of the metric filter. @@ -2669,6 +3059,7 @@ extension CloudWatchLogsClientTypes { public var metricTransformations: [CloudWatchLogsClientTypes.MetricTransformation]? public init( + applyOnTransformedLogs: Swift.Bool = false, creationTime: Swift.Int? = nil, filterName: Swift.String? = nil, filterPattern: Swift.String? = nil, @@ -2676,6 +3067,7 @@ extension CloudWatchLogsClientTypes { metricTransformations: [CloudWatchLogsClientTypes.MetricTransformation]? = nil ) { + self.applyOnTransformedLogs = applyOnTransformedLogs self.creationTime = creationTime self.filterName = filterName self.filterPattern = filterPattern @@ -3000,6 +3392,8 @@ extension CloudWatchLogsClientTypes { /// Represents a subscription filter. public struct SubscriptionFilter: Swift.Sendable { + /// This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html). If this value is true, the subscription filter is applied on the transformed version of the log events instead of the original ingested log events. + public var applyOnTransformedLogs: Swift.Bool /// The creation time of the subscription filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public var creationTime: Swift.Int? /// The Amazon Resource Name (ARN) of the destination. @@ -3016,6 +3410,7 @@ extension CloudWatchLogsClientTypes { public var roleArn: Swift.String? public init( + applyOnTransformedLogs: Swift.Bool = false, creationTime: Swift.Int? = nil, destinationArn: Swift.String? = nil, distribution: CloudWatchLogsClientTypes.Distribution? = nil, @@ -3025,6 +3420,7 @@ extension CloudWatchLogsClientTypes { roleArn: Swift.String? = nil ) { + self.applyOnTransformedLogs = applyOnTransformedLogs self.creationTime = creationTime self.destinationArn = destinationArn self.distribution = distribution @@ -3077,11 +3473,11 @@ public struct DisassociateKmsKeyInput: Swift.Sendable { extension CloudWatchLogsClientTypes { - /// Reserved for internal use. + /// The entity associated with the log events in a PutLogEvents call. public struct Entity: Swift.Sendable { - /// Reserved for internal use. + /// Additional attributes of the entity that are not used to specify the identity of the entity. A list of key-value pairs. For details about how to use the attributes, see [How to add related information to telemetry](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/adding-your-own-related-telemetry.html) in the CloudWatch User Guide. public var attributes: [Swift.String: Swift.String]? - /// Reserved for internal use. + /// The attributes of the entity which identify the specific entity, as a list of key-value pairs. Entities with the same keyAttributes are considered to be the same entity. There are five allowed attributes (key names): Type, ResourceType, IdentifierName, and Environment. For details about how to use the key attributes, see [How to add related information to telemetry](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/adding-your-own-related-telemetry.html) in the CloudWatch User Guide. public var keyAttributes: [Swift.String: Swift.String]? public init( @@ -3264,6 +3660,35 @@ public struct FilterLogEventsOutput: Swift.Sendable { } } +extension CloudWatchLogsClientTypes { + + public enum FlattenedElement: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case first + case last + case sdkUnknown(Swift.String) + + public static var allCases: [FlattenedElement] { + return [ + .first, + .last + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .first: return "first" + case .last: return "last" + case let .sdkUnknown(s): return s + } + } + } +} + public struct GetDataProtectionPolicyInput: Swift.Sendable { /// The name or ARN of the log group that contains the data protection policy that you want to see. /// This member is required. @@ -3675,10 +4100,16 @@ extension CloudWatchLogsClientTypes { extension CloudWatchLogsClientTypes { - /// Contains the number of log events scanned by the query, the number of log events that matched the query criteria, and the total number of bytes in the log events that were scanned. + /// Contains the number of log events scanned by the query, the number of log events that matched the query criteria, and the total number of bytes in the log events that were scanned. If the query involved log groups that have field index policies, the estimated number of skipped log events and the total bytes of those skipped log events are included. Using field indexes to skip log events in queries reduces scan volume and improves performance. For more information, see [Create field indexes to improve query performance and reduce scan volume](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Field-Indexing.html). public struct QueryStatistics: Swift.Sendable { /// The total number of bytes in the log events scanned during the query. public var bytesScanned: Swift.Double + /// An estimate of the number of bytes in the log events that were skipped when processing this query, because the query contained an indexed field. Skipping these entries lowers query costs and improves the query performance time. For more information about field indexes, see [PutIndexPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutIndexPolicy.html). + public var estimatedBytesSkipped: Swift.Double + /// An estimate of the number of log events that were skipped when processing this query, because the query contained an indexed field. Skipping these entries lowers query costs and improves the query performance time. For more information about field indexes, see [PutIndexPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutIndexPolicy.html). + public var estimatedRecordsSkipped: Swift.Double + /// The number of log groups that were scanned by this query. + public var logGroupsScanned: Swift.Double /// The number of log events that matched the query string. public var recordsMatched: Swift.Double /// The total number of log events scanned during the query. @@ -3686,11 +4117,17 @@ extension CloudWatchLogsClientTypes { public init( bytesScanned: Swift.Double = 0.0, + estimatedBytesSkipped: Swift.Double = 0.0, + estimatedRecordsSkipped: Swift.Double = 0.0, + logGroupsScanned: Swift.Double = 0.0, recordsMatched: Swift.Double = 0.0, recordsScanned: Swift.Double = 0.0 ) { self.bytesScanned = bytesScanned + self.estimatedBytesSkipped = estimatedBytesSkipped + self.estimatedRecordsSkipped = estimatedRecordsSkipped + self.logGroupsScanned = logGroupsScanned self.recordsMatched = recordsMatched self.recordsScanned = recordsScanned } @@ -3721,615 +4158,668 @@ public struct GetQueryResultsOutput: Swift.Sendable { } } -extension CloudWatchLogsClientTypes { +public struct GetTransformerInput: Swift.Sendable { + /// Specify either the name or ARN of the log group to return transformer information for. If the log group is in a source account and you are using a monitoring account, you must use the log group ARN. + /// This member is required. + public var logGroupIdentifier: Swift.String? - /// Represents a log event, which is a record of activity that was recorded by the application or resource being monitored. - public struct InputLogEvent: Swift.Sendable { - /// The raw event message. Each log event can be no larger than 256 KB. - /// This member is required. - public var message: Swift.String? - /// The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + public init( + logGroupIdentifier: Swift.String? = nil + ) + { + self.logGroupIdentifier = logGroupIdentifier + } +} + +extension CloudWatchLogsClientTypes { + + /// This processor uses pattern matching to parse and structure unstructured data. This processor can also extract fields from log messages. For more information about this processor including examples, see [ grok](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-Grok) in the CloudWatch Logs User Guide. + public struct Grok: Swift.Sendable { + /// The grok pattern to match against the log event. For a list of supported grok patterns, see [Supported grok patterns](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#Grok-Patterns). /// This member is required. - public var timestamp: Swift.Int? + public var match: Swift.String? + /// The path to the field in the log event that you want to parse. If you omit this value, the whole log message is parsed. + public var source: Swift.String? public init( - message: Swift.String? = nil, - timestamp: Swift.Int? = nil + match: Swift.String? = nil, + source: Swift.String? = nil ) { - self.message = message - self.timestamp = timestamp + self.match = match + self.source = source } } } -/// The sequence token is not valid. You can get the correct sequence token in the expectedSequenceToken field in the InvalidSequenceTokenException message. PutLogEvents actions are now always accepted and never return InvalidSequenceTokenException regardless of receiving an invalid sequence token. -public struct InvalidSequenceTokenException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - - public struct Properties { - public internal(set) var expectedSequenceToken: Swift.String? = nil - public internal(set) var message: Swift.String? = nil - } +extension CloudWatchLogsClientTypes { - public internal(set) var properties = Properties() - public static var typeName: Swift.String { "InvalidSequenceTokenException" } - public static var fault: ClientRuntime.ErrorFault { .client } - public static var isRetryable: Swift.Bool { false } - public static var isThrottling: Swift.Bool { false } - public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() - public internal(set) var message: Swift.String? - public internal(set) var requestID: Swift.String? + /// This processor takes a list of objects that contain key fields, and converts them into a map of target keys. For more information about this processor including examples, see [ listToMap](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-listToMap) in the CloudWatch Logs User Guide. + public struct ListToMap: Swift.Sendable { + /// A Boolean value to indicate whether the list will be flattened into single items. Specify true to flatten the list. The default is false + public var flatten: Swift.Bool + /// If you set flatten to true, use flattenedElement to specify which element, first or last, to keep. You must specify this parameter if flatten is true + public var flattenedElement: CloudWatchLogsClientTypes.FlattenedElement? + /// The key of the field to be extracted as keys in the generated map + /// This member is required. + public var key: Swift.String? + /// The key in the log event that has a list of objects that will be converted to a map. + /// This member is required. + public var source: Swift.String? + /// The key of the field that will hold the generated map + public var target: Swift.String? + /// If this is specified, the values that you specify in this parameter will be extracted from the source objects and put into the values of the generated map. Otherwise, original objects in the source list will be put into the values of the generated map. + public var valueKey: Swift.String? - public init( - expectedSequenceToken: Swift.String? = nil, - message: Swift.String? = nil - ) - { - self.properties.expectedSequenceToken = expectedSequenceToken - self.properties.message = message + public init( + flatten: Swift.Bool = false, + flattenedElement: CloudWatchLogsClientTypes.FlattenedElement? = nil, + key: Swift.String? = nil, + source: Swift.String? = nil, + target: Swift.String? = nil, + valueKey: Swift.String? = nil + ) + { + self.flatten = flatten + self.flattenedElement = flattenedElement + self.key = key + self.source = source + self.target = target + self.valueKey = valueKey + } } } extension CloudWatchLogsClientTypes { - public enum SuppressionState: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { - case suppressed - case unsuppressed - case sdkUnknown(Swift.String) - - public static var allCases: [SuppressionState] { - return [ - .suppressed, - .unsuppressed - ] - } - - public init?(rawValue: Swift.String) { - let value = Self.allCases.first(where: { $0.rawValue == rawValue }) - self = value ?? Self.sdkUnknown(rawValue) - } + /// This processor converts a string to lowercase. For more information about this processor including examples, see [ lowerCaseString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-lowerCaseString) in the CloudWatch Logs User Guide. + public struct LowerCaseString: Swift.Sendable { + /// The array caontaining the keys of the fields to convert to lowercase. + /// This member is required. + public var withKeys: [Swift.String]? - public var rawValue: Swift.String { - switch self { - case .suppressed: return "SUPPRESSED" - case .unsuppressed: return "UNSUPPRESSED" - case let .sdkUnknown(s): return s - } + public init( + withKeys: [Swift.String]? = nil + ) + { + self.withKeys = withKeys } } } -public struct ListAnomaliesInput: Swift.Sendable { - /// Use this to optionally limit the results to only the anomalies found by a certain anomaly detector. - public var anomalyDetectorArn: Swift.String? - /// The maximum number of items to return. If you don't specify a value, the default maximum value of 50 items is used. - public var limit: Swift.Int? - /// The token for the next set of items to return. The token expires after 24 hours. - public var nextToken: Swift.String? - /// You can specify this parameter if you want to the operation to return only anomalies that are currently either suppressed or unsuppressed. - public var suppressionState: CloudWatchLogsClientTypes.SuppressionState? - - public init( - anomalyDetectorArn: Swift.String? = nil, - limit: Swift.Int? = nil, - nextToken: Swift.String? = nil, - suppressionState: CloudWatchLogsClientTypes.SuppressionState? = nil - ) - { - self.anomalyDetectorArn = anomalyDetectorArn - self.limit = limit - self.nextToken = nextToken - self.suppressionState = suppressionState - } -} +extension CloudWatchLogsClientTypes { -public struct ListAnomaliesOutput: Swift.Sendable { - /// An array of structures, where each structure contains information about one anomaly that a log anomaly detector has found. - public var anomalies: [CloudWatchLogsClientTypes.Anomaly]? - /// The token for the next set of items to return. The token expires after 24 hours. - public var nextToken: Swift.String? + /// This object defines one key that will be moved with the [ moveKey](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-moveKey) processor. + public struct MoveKeyEntry: Swift.Sendable { + /// Specifies whether to overwrite the value if the destination key already exists. If you omit this, the default is false. + public var overwriteIfExists: Swift.Bool + /// The key to move. + /// This member is required. + public var source: Swift.String? + /// The key to move to. + /// This member is required. + public var target: Swift.String? - public init( - anomalies: [CloudWatchLogsClientTypes.Anomaly]? = nil, - nextToken: Swift.String? = nil - ) - { - self.anomalies = anomalies - self.nextToken = nextToken + public init( + overwriteIfExists: Swift.Bool = false, + source: Swift.String? = nil, + target: Swift.String? = nil + ) + { + self.overwriteIfExists = overwriteIfExists + self.source = source + self.target = target + } } } -public struct ListLogAnomalyDetectorsInput: Swift.Sendable { - /// Use this to optionally filter the results to only include anomaly detectors that are associated with the specified log group. - public var filterLogGroupArn: Swift.String? - /// The maximum number of items to return. If you don't specify a value, the default maximum value of 50 items is used. - public var limit: Swift.Int? - /// The token for the next set of items to return. The token expires after 24 hours. - public var nextToken: Swift.String? +extension CloudWatchLogsClientTypes { - public init( - filterLogGroupArn: Swift.String? = nil, - limit: Swift.Int? = nil, - nextToken: Swift.String? = nil - ) - { - self.filterLogGroupArn = filterLogGroupArn - self.limit = limit - self.nextToken = nextToken + /// This processor moves a key from one field to another. The original key is deleted. For more information about this processor including examples, see [ moveKeys](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-moveKeys) in the CloudWatch Logs User Guide. + public struct MoveKeys: Swift.Sendable { + /// An array of objects, where each object contains the information about one key to move. + /// This member is required. + public var entries: [CloudWatchLogsClientTypes.MoveKeyEntry]? + + public init( + entries: [CloudWatchLogsClientTypes.MoveKeyEntry]? = nil + ) + { + self.entries = entries + } } } -public struct ListLogAnomalyDetectorsOutput: Swift.Sendable { - /// An array of structures, where each structure in the array contains information about one anomaly detector. - public var anomalyDetectors: [CloudWatchLogsClientTypes.AnomalyDetector]? - /// The token for the next set of items to return. The token expires after 24 hours. - public var nextToken: Swift.String? +extension CloudWatchLogsClientTypes { - public init( - anomalyDetectors: [CloudWatchLogsClientTypes.AnomalyDetector]? = nil, - nextToken: Swift.String? = nil - ) - { - self.anomalyDetectors = anomalyDetectors - self.nextToken = nextToken + /// This processor parses CloudFront vended logs, extract fields, and convert them into JSON format. Encoded field values are decoded. Values that are integers and doubles are treated as such. For more information about this processor including examples, see [ parseCloudfront](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parseCloudfront) For more information about CloudFront log format, see [ Configure and use standard logs (access logs)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html). If you use this processor, it must be the first processor in your transformer. + public struct ParseCloudfront: Swift.Sendable { + /// Omit this parameter and the whole log message will be processed by this processor. No other value than @message is allowed for source. + public var source: Swift.String? + + public init( + source: Swift.String? = nil + ) + { + self.source = source + } } } -public struct ListTagsForResourceInput: Swift.Sendable { - /// The ARN of the resource that you want to view tags for. The ARN format of a log group is arn:aws:logs:Region:account-id:log-group:log-group-name The ARN format of a destination is arn:aws:logs:Region:account-id:destination:destination-name For more information about ARN format, see [CloudWatch Logs resources and operations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html). - /// This member is required. - public var resourceArn: Swift.String? +extension CloudWatchLogsClientTypes { - public init( - resourceArn: Swift.String? = nil - ) - { - self.resourceArn = resourceArn + /// This processor parses log events that are in JSON format. It can extract JSON key-value pairs and place them under a destination that you specify. Additionally, because you must have at least one parse-type processor in a transformer, you can use ParseJSON as that processor for JSON-format logs, so that you can also apply other processors, such as mutate processors, to these logs. For more information about this processor including examples, see [ parseJSON](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parseJSON) in the CloudWatch Logs User Guide. + public struct ParseJSON: Swift.Sendable { + /// The location to put the parsed key value pair into. If you omit this parameter, it is placed under the root node. + public var destination: Swift.String? + /// Path to the field in the log event that will be parsed. Use dot notation to access child fields. For example, store.book + public var source: Swift.String? + + public init( + destination: Swift.String? = nil, + source: Swift.String? = nil + ) + { + self.destination = destination + self.source = source + } } } -public struct ListTagsForResourceOutput: Swift.Sendable { - /// The list of tags associated with the requested resource.> - public var tags: [Swift.String: Swift.String]? +extension CloudWatchLogsClientTypes { - public init( - tags: [Swift.String: Swift.String]? = nil - ) - { - self.tags = tags + /// This processor parses a specified field in the original log event into key-value pairs. For more information about this processor including examples, see [ parseKeyValue](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parseKeyValue) in the CloudWatch Logs User Guide. + public struct ParseKeyValue: Swift.Sendable { + /// The destination field to put the extracted key-value pairs into + public var destination: Swift.String? + /// The field delimiter string that is used between key-value pairs in the original log events. If you omit this, the ampersand & character is used. + public var fieldDelimiter: Swift.String? + /// If you want to add a prefix to all transformed keys, specify it here. + public var keyPrefix: Swift.String? + /// The delimiter string to use between the key and value in each pair in the transformed log event. If you omit this, the equal = character is used. + public var keyValueDelimiter: Swift.String? + /// A value to insert into the value field in the result, when a key-value pair is not successfully split. + public var nonMatchValue: Swift.String? + /// Specifies whether to overwrite the value if the destination key already exists. If you omit this, the default is false. + public var overwriteIfExists: Swift.Bool + /// Path to the field in the log event that will be parsed. Use dot notation to access child fields. For example, store.book + public var source: Swift.String? + + public init( + destination: Swift.String? = nil, + fieldDelimiter: Swift.String? = nil, + keyPrefix: Swift.String? = nil, + keyValueDelimiter: Swift.String? = nil, + nonMatchValue: Swift.String? = nil, + overwriteIfExists: Swift.Bool = false, + source: Swift.String? = nil + ) + { + self.destination = destination + self.fieldDelimiter = fieldDelimiter + self.keyPrefix = keyPrefix + self.keyValueDelimiter = keyValueDelimiter + self.nonMatchValue = nonMatchValue + self.overwriteIfExists = overwriteIfExists + self.source = source + } } } -@available(*, deprecated, message: "Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse") -public struct ListTagsLogGroupInput: Swift.Sendable { - /// The name of the log group. - /// This member is required. - public var logGroupName: Swift.String? +extension CloudWatchLogsClientTypes { - public init( - logGroupName: Swift.String? = nil - ) - { - self.logGroupName = logGroupName + /// Use this processor to parse RDS for PostgreSQL vended logs, extract fields, and and convert them into a JSON format. This processor always processes the entire log event message. For more information about this processor including examples, see [ parsePostGres](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parsePostGres). For more information about RDS for PostgreSQL log format, see [ RDS for PostgreSQL database log filesTCP flag sequence](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.PostgreSQL.html#USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix). If you use this processor, it must be the first processor in your transformer. + public struct ParsePostgres: Swift.Sendable { + /// Omit this parameter and the whole log message will be processed by this processor. No other value than @message is allowed for source. + public var source: Swift.String? + + public init( + source: Swift.String? = nil + ) + { + self.source = source + } } } -@available(*, deprecated, message: "Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse") -public struct ListTagsLogGroupOutput: Swift.Sendable { - /// The tags for the log group. - public var tags: [Swift.String: Swift.String]? +extension CloudWatchLogsClientTypes { - public init( - tags: [Swift.String: Swift.String]? = nil - ) - { - self.tags = tags + /// Use this processor to parse Route 53 vended logs, extract fields, and and convert them into a JSON format. This processor always processes the entire log event message. For more information about this processor including examples, see [ parseRoute53](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parseRoute53). If you use this processor, it must be the first processor in your transformer. + public struct ParseRoute53: Swift.Sendable { + /// Omit this parameter and the whole log message will be processed by this processor. No other value than @message is allowed for source. + public var source: Swift.String? + + public init( + source: Swift.String? = nil + ) + { + self.source = source + } } } extension CloudWatchLogsClientTypes { - /// This object contains the information for one log event returned in a Live Tail stream. - public struct LiveTailSessionLogEvent: Swift.Sendable { - /// The timestamp specifying when this log event was ingested into the log group. - public var ingestionTime: Swift.Int? - /// The name or ARN of the log group that ingested this log event. - public var logGroupIdentifier: Swift.String? - /// The name of the log stream that ingested this log event. - public var logStreamName: Swift.String? - /// The log event message text. - public var message: Swift.String? - /// The timestamp specifying when this log event was created. - public var timestamp: Swift.Int? + /// Use this processor to parse Amazon VPC vended logs, extract fields, and and convert them into a JSON format. This processor always processes the entire log event message. This processor doesn't support custom log formats, such as NAT gateway logs. For more information about custom log formats in Amazon VPC, see [ parseVPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs-records-examples.html#flow-log-example-tcp-flag) For more information about this processor including examples, see [ parseVPC](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parseVPC). If you use this processor, it must be the first processor in your transformer. + public struct ParseVPC: Swift.Sendable { + /// Omit this parameter and the whole log message will be processed by this processor. No other value than @message is allowed for source. + public var source: Swift.String? public init( - ingestionTime: Swift.Int? = nil, - logGroupIdentifier: Swift.String? = nil, - logStreamName: Swift.String? = nil, - message: Swift.String? = nil, - timestamp: Swift.Int? = nil + source: Swift.String? = nil ) { - self.ingestionTime = ingestionTime - self.logGroupIdentifier = logGroupIdentifier - self.logStreamName = logStreamName - self.message = message - self.timestamp = timestamp + self.source = source } } } extension CloudWatchLogsClientTypes { - /// This object contains the metadata for one LiveTailSessionUpdate structure. It indicates whether that update includes only a sample of 500 log events out of a larger number of ingested log events, or if it contains all of the matching log events ingested during that second of time. - public struct LiveTailSessionMetadata: Swift.Sendable { - /// If this is true, then more than 500 log events matched the request for this update, and the sessionResults includes a sample of 500 of those events. If this is false, then 500 or fewer log events matched the request for this update, so no sampling was necessary. In this case, the sessionResults array includes all log events that matched your request during this time. - public var sampled: Swift.Bool + /// Use this processor to parse WAF vended logs, extract fields, and and convert them into a JSON format. This processor always processes the entire log event message. For more information about this processor including examples, see [ parseWAF](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parsePostGres). For more information about WAF log format, see [ Log examples for web ACL traffic](https://docs.aws.amazon.com/waf/latest/developerguide/logging-examples.html). If you use this processor, it must be the first processor in your transformer. + public struct ParseWAF: Swift.Sendable { + /// Omit this parameter and the whole log message will be processed by this processor. No other value than @message is allowed for source. + public var source: Swift.String? public init( - sampled: Swift.Bool = false + source: Swift.String? = nil ) { - self.sampled = sampled + self.source = source } } } extension CloudWatchLogsClientTypes { - /// This object contains information about this Live Tail session, including the log groups included and the log stream filters, if any. - public struct LiveTailSessionStart: Swift.Sendable { - /// An optional pattern to filter the results to include only log events that match the pattern. For example, a filter pattern of error 404 displays only log events that include both error and 404. For more information about filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). - public var logEventFilterPattern: Swift.String? - /// An array of the names and ARNs of the log groups included in this Live Tail session. - public var logGroupIdentifiers: [Swift.String]? - /// If your StartLiveTail operation request included a logStreamNamePrefixes parameter that filtered the session to only include log streams that have names that start with certain prefixes, these prefixes are listed here. - public var logStreamNamePrefixes: [Swift.String]? - /// If your StartLiveTail operation request included a logStreamNames parameter that filtered the session to only include certain log streams, these streams are listed here. - public var logStreamNames: [Swift.String]? - /// The unique ID generated by CloudWatch Logs to identify this Live Tail session request. - public var requestId: Swift.String? - /// The unique ID generated by CloudWatch Logs to identify this Live Tail session. - public var sessionId: Swift.String? + /// This object defines one key that will be renamed with the [ renameKey](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-renameKey) processor. + public struct RenameKeyEntry: Swift.Sendable { + /// The key to rename + /// This member is required. + public var key: Swift.String? + /// Specifies whether to overwrite the existing value if the destination key already exists. The default is false + public var overwriteIfExists: Swift.Bool + /// The string to use for the new key name + /// This member is required. + public var renameTo: Swift.String? public init( - logEventFilterPattern: Swift.String? = nil, - logGroupIdentifiers: [Swift.String]? = nil, - logStreamNamePrefixes: [Swift.String]? = nil, - logStreamNames: [Swift.String]? = nil, - requestId: Swift.String? = nil, - sessionId: Swift.String? = nil + key: Swift.String? = nil, + overwriteIfExists: Swift.Bool = false, + renameTo: Swift.String? = nil ) { - self.logEventFilterPattern = logEventFilterPattern - self.logGroupIdentifiers = logGroupIdentifiers - self.logStreamNamePrefixes = logStreamNamePrefixes - self.logStreamNames = logStreamNames - self.requestId = requestId - self.sessionId = sessionId + self.key = key + self.overwriteIfExists = overwriteIfExists + self.renameTo = renameTo } } } extension CloudWatchLogsClientTypes { - /// This object contains the log events and metadata for a Live Tail session. - public struct LiveTailSessionUpdate: Swift.Sendable { - /// This object contains the session metadata for a Live Tail session. - public var sessionMetadata: CloudWatchLogsClientTypes.LiveTailSessionMetadata? - /// An array, where each member of the array includes the information for one log event in the Live Tail session. A sessionResults array can include as many as 500 log events. If the number of log events matching the request exceeds 500 per second, the log events are sampled down to 500 log events to be included in each sessionUpdate structure. - public var sessionResults: [CloudWatchLogsClientTypes.LiveTailSessionLogEvent]? + /// Use this processor to rename keys in a log event. For more information about this processor including examples, see [ renameKeys](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-renameKeys) in the CloudWatch Logs User Guide. + public struct RenameKeys: Swift.Sendable { + /// An array of RenameKeyEntry objects, where each object contains the information about a single key to rename. + /// This member is required. + public var entries: [CloudWatchLogsClientTypes.RenameKeyEntry]? public init( - sessionMetadata: CloudWatchLogsClientTypes.LiveTailSessionMetadata? = nil, - sessionResults: [CloudWatchLogsClientTypes.LiveTailSessionLogEvent]? = nil + entries: [CloudWatchLogsClientTypes.RenameKeyEntry]? = nil ) { - self.sessionMetadata = sessionMetadata - self.sessionResults = sessionResults + self.entries = entries } } } -public struct PutAccountPolicyInput: Swift.Sendable { - /// Specify the policy, in JSON. Data protection policy A data protection policy must include two JSON blocks: - /// - /// * The first block must include both a DataIdentifer array and an Operation property with an Audit action. The DataIdentifer array lists the types of sensitive data that you want to mask. For more information about the available options, see [Types of data that you can mask](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-types.html). The Operation property with an Audit action is required to find the sensitive data terms. This Audit action must contain a FindingsDestination object. You can optionally use that FindingsDestination object to list one or more destinations to send audit findings to. If you specify destinations such as log groups, Firehose streams, and S3 buckets, they must already exist. - /// - /// * The second block must include both a DataIdentifer array and an Operation property with an Deidentify action. The DataIdentifer array must exactly match the DataIdentifer array in the first block of the policy. The Operation property with the Deidentify action is what actually masks the data, and it must contain the "MaskConfig": {} object. The "MaskConfig": {} object must be empty. - /// - /// - /// For an example data protection policy, see the Examples section on this page. The contents of the two DataIdentifer arrays must match exactly. In addition to the two JSON blocks, the policyDocument can also include Name, Description, and Version fields. The Name is different than the operation's policyName parameter, and is used as a dimension when CloudWatch Logs reports audit findings metrics to CloudWatch. The JSON specified in policyDocument can be up to 30,720 characters long. Subscription filter policy A subscription filter policy can include the following attributes in a JSON block: - /// - /// * DestinationArn The ARN of the destination to deliver log events to. Supported destinations are: - /// - /// * An Kinesis Data Streams data stream in the same account as the subscription policy, for same-account delivery. - /// - /// * An Firehose data stream in the same account as the subscription policy, for same-account delivery. - /// - /// * A Lambda function in the same account as the subscription policy, for same-account delivery. - /// - /// * A logical destination in a different account created with [PutDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestination.html), for cross-account delivery. Kinesis Data Streams and Firehose are supported as logical destinations. - /// - /// - /// - /// - /// * RoleArn The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. - /// - /// * FilterPattern A filter pattern for subscribing to a filtered stream of log events. - /// - /// * Distribution The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to Random for a more even distribution. This property is only applicable when the destination is an Kinesis Data Streams data stream. - /// This member is required. - public var policyDocument: Swift.String? - /// A name for the policy. This must be unique within the account. - /// This member is required. - public var policyName: Swift.String? - /// The type of policy that you're creating or updating. - /// This member is required. - public var policyType: CloudWatchLogsClientTypes.PolicyType? - /// Currently the only valid value for this parameter is ALL, which specifies that the data protection policy applies to all log groups in the account. If you omit this parameter, the default of ALL is used. - public var scope: CloudWatchLogsClientTypes.Scope? - /// Use this parameter to apply the subscription filter policy to a subset of log groups in the account. Currently, the only supported filter is LogGroupName NOT IN []. The selectionCriteria string can be up to 25KB in length. The length is determined by using its UTF-8 bytes. Using the selectionCriteria parameter is useful to help prevent infinite loops. For more information, see [Log recursion prevention](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions-recursion-prevention.html). Specifing selectionCriteria is valid only when you specify SUBSCRIPTION_FILTER_POLICY for policyType. - public var selectionCriteria: Swift.String? +extension CloudWatchLogsClientTypes { - public init( - policyDocument: Swift.String? = nil, - policyName: Swift.String? = nil, - policyType: CloudWatchLogsClientTypes.PolicyType? = nil, - scope: CloudWatchLogsClientTypes.Scope? = nil, - selectionCriteria: Swift.String? = nil - ) - { - self.policyDocument = policyDocument - self.policyName = policyName - self.policyType = policyType - self.scope = scope - self.selectionCriteria = selectionCriteria + /// This object defines one log field that will be split with the [ splitString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-splitString) processor. + public struct SplitStringEntry: Swift.Sendable { + /// The separator characters to split the string entry on. + /// This member is required. + public var delimiter: Swift.String? + /// The key of the field to split. + /// This member is required. + public var source: Swift.String? + + public init( + delimiter: Swift.String? = nil, + source: Swift.String? = nil + ) + { + self.delimiter = delimiter + self.source = source + } } } -public struct PutAccountPolicyOutput: Swift.Sendable { - /// The account policy that you created. - public var accountPolicy: CloudWatchLogsClientTypes.AccountPolicy? +extension CloudWatchLogsClientTypes { - public init( - accountPolicy: CloudWatchLogsClientTypes.AccountPolicy? = nil - ) - { - self.accountPolicy = accountPolicy + /// Use this processor to split a field into an array of strings using a delimiting character. For more information about this processor including examples, see [ splitString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-splitString) in the CloudWatch Logs User Guide. + public struct SplitString: Swift.Sendable { + /// An array of SplitStringEntry objects, where each object contains the information about one field to split. + /// This member is required. + public var entries: [CloudWatchLogsClientTypes.SplitStringEntry]? + + public init( + entries: [CloudWatchLogsClientTypes.SplitStringEntry]? = nil + ) + { + self.entries = entries + } } } -public struct PutDataProtectionPolicyInput: Swift.Sendable { - /// Specify either the log group name or log group ARN. - /// This member is required. - public var logGroupIdentifier: Swift.String? - /// Specify the data protection policy, in JSON. This policy must include two JSON blocks: - /// - /// * The first block must include both a DataIdentifer array and an Operation property with an Audit action. The DataIdentifer array lists the types of sensitive data that you want to mask. For more information about the available options, see [Types of data that you can mask](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-types.html). The Operation property with an Audit action is required to find the sensitive data terms. This Audit action must contain a FindingsDestination object. You can optionally use that FindingsDestination object to list one or more destinations to send audit findings to. If you specify destinations such as log groups, Firehose streams, and S3 buckets, they must already exist. - /// - /// * The second block must include both a DataIdentifer array and an Operation property with an Deidentify action. The DataIdentifer array must exactly match the DataIdentifer array in the first block of the policy. The Operation property with the Deidentify action is what actually masks the data, and it must contain the "MaskConfig": {} object. The "MaskConfig": {} object must be empty. - /// - /// - /// For an example data protection policy, see the Examples section on this page. The contents of the two DataIdentifer arrays must match exactly. In addition to the two JSON blocks, the policyDocument can also include Name, Description, and Version fields. The Name is used as a dimension when CloudWatch Logs reports audit findings metrics to CloudWatch. The JSON specified in policyDocument can be up to 30,720 characters. - /// This member is required. - public var policyDocument: Swift.String? +extension CloudWatchLogsClientTypes { - public init( - logGroupIdentifier: Swift.String? = nil, - policyDocument: Swift.String? = nil - ) - { - self.logGroupIdentifier = logGroupIdentifier - self.policyDocument = policyDocument + /// This object defines one log field key that will be replaced using the [ substituteString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-substituteString) processor. + public struct SubstituteStringEntry: Swift.Sendable { + /// The regular expression string to be replaced. Special regex characters such as [ and ] must be escaped using \\ when using double quotes and with \ when using single quotes. For more information, see [ Class Pattern](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/regex/Pattern.html) on the Oracle web site. + /// This member is required. + public var from: Swift.String? + /// The key to modify + /// This member is required. + public var source: Swift.String? + /// The string to be substituted for each match of from + /// This member is required. + public var to: Swift.String? + + public init( + from: Swift.String? = nil, + source: Swift.String? = nil, + to: Swift.String? = nil + ) + { + self.from = from + self.source = source + self.to = to + } } } -public struct PutDataProtectionPolicyOutput: Swift.Sendable { - /// The date and time that this policy was most recently updated. - public var lastUpdatedTime: Swift.Int? - /// The log group name or ARN that you specified in your request. - public var logGroupIdentifier: Swift.String? - /// The data protection policy used for this log group. - public var policyDocument: Swift.String? +extension CloudWatchLogsClientTypes { - public init( - lastUpdatedTime: Swift.Int? = nil, - logGroupIdentifier: Swift.String? = nil, - policyDocument: Swift.String? = nil - ) - { - self.lastUpdatedTime = lastUpdatedTime - self.logGroupIdentifier = logGroupIdentifier - self.policyDocument = policyDocument + /// This processor matches a key’s value against a regular expression and replaces all matches with a replacement string. For more information about this processor including examples, see [ substituteString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-substituteString) in the CloudWatch Logs User Guide. + public struct SubstituteString: Swift.Sendable { + /// An array of objects, where each object contains the information about one key to match and replace. + /// This member is required. + public var entries: [CloudWatchLogsClientTypes.SubstituteStringEntry]? + + public init( + entries: [CloudWatchLogsClientTypes.SubstituteStringEntry]? = nil + ) + { + self.entries = entries + } } } -public struct PutDeliveryDestinationInput: Swift.Sendable { - /// A structure that contains the ARN of the Amazon Web Services resource that will receive the logs. - /// This member is required. - public var deliveryDestinationConfiguration: CloudWatchLogsClientTypes.DeliveryDestinationConfiguration? - /// A name for this delivery destination. This name must be unique for all delivery destinations in your account. - /// This member is required. - public var name: Swift.String? - /// The format for the logs that this delivery destination will receive. - public var outputFormat: CloudWatchLogsClientTypes.OutputFormat? - /// An optional list of key-value pairs to associate with the resource. For more information about tagging, see [Tagging Amazon Web Services resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) - public var tags: [Swift.String: Swift.String]? +extension CloudWatchLogsClientTypes { - public init( - deliveryDestinationConfiguration: CloudWatchLogsClientTypes.DeliveryDestinationConfiguration? = nil, - name: Swift.String? = nil, - outputFormat: CloudWatchLogsClientTypes.OutputFormat? = nil, - tags: [Swift.String: Swift.String]? = nil - ) - { - self.deliveryDestinationConfiguration = deliveryDestinationConfiguration - self.name = name - self.outputFormat = outputFormat - self.tags = tags + /// Use this processor to remove leading and trailing whitespace. For more information about this processor including examples, see [ trimString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-trimString) in the CloudWatch Logs User Guide. + public struct TrimString: Swift.Sendable { + /// The array containing the keys of the fields to trim. + /// This member is required. + public var withKeys: [Swift.String]? + + public init( + withKeys: [Swift.String]? = nil + ) + { + self.withKeys = withKeys + } } } -public struct PutDeliveryDestinationOutput: Swift.Sendable { - /// A structure containing information about the delivery destination that you just created or updated. - public var deliveryDestination: CloudWatchLogsClientTypes.DeliveryDestination? +extension CloudWatchLogsClientTypes { - public init( - deliveryDestination: CloudWatchLogsClientTypes.DeliveryDestination? = nil - ) - { - self.deliveryDestination = deliveryDestination - } -} + public enum ModelType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case boolean + case double + case integer + case string + case sdkUnknown(Swift.String) -public struct PutDeliveryDestinationPolicyInput: Swift.Sendable { - /// The name of the delivery destination to assign this policy to. - /// This member is required. - public var deliveryDestinationName: Swift.String? - /// The contents of the policy. - /// This member is required. - public var deliveryDestinationPolicy: Swift.String? + public static var allCases: [ModelType] { + return [ + .boolean, + .double, + .integer, + .string + ] + } - public init( - deliveryDestinationName: Swift.String? = nil, - deliveryDestinationPolicy: Swift.String? = nil - ) - { - self.deliveryDestinationName = deliveryDestinationName - self.deliveryDestinationPolicy = deliveryDestinationPolicy + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .boolean: return "boolean" + case .double: return "double" + case .integer: return "integer" + case .string: return "string" + case let .sdkUnknown(s): return s + } + } } } -public struct PutDeliveryDestinationPolicyOutput: Swift.Sendable { - /// The contents of the policy that you just created. - public var policy: CloudWatchLogsClientTypes.Policy? +extension CloudWatchLogsClientTypes { - public init( - policy: CloudWatchLogsClientTypes.Policy? = nil - ) - { - self.policy = policy + /// This object defines one value type that will be converted using the [ typeConverter](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-typeConverter) processor. + public struct TypeConverterEntry: Swift.Sendable { + /// The key with the value that is to be converted to a different type. + /// This member is required. + public var key: Swift.String? + /// The type to convert the field value to. Valid values are integer, double, string and boolean. + /// This member is required. + public var type: CloudWatchLogsClientTypes.ModelType? + + public init( + key: Swift.String? = nil, + type: CloudWatchLogsClientTypes.ModelType? = nil + ) + { + self.key = key + self.type = type + } } } -public struct PutDeliverySourceInput: Swift.Sendable { - /// Defines the type of log that the source is sending. - /// - /// * For Amazon Bedrock, the valid value is APPLICATION_LOGS. - /// - /// * For Amazon CodeWhisperer, the valid value is EVENT_LOGS. - /// - /// * For IAM Identity Center, the valid value is ERROR_LOGS. - /// - /// * For Amazon WorkMail, the valid values are ACCESS_CONTROL_LOGS, AUTHENTICATION_LOGS, WORKMAIL_AVAILABILITY_PROVIDER_LOGS, and WORKMAIL_MAILBOX_ACCESS_LOGS. - /// This member is required. - public var logType: Swift.String? - /// A name for this delivery source. This name must be unique for all delivery sources in your account. - /// This member is required. - public var name: Swift.String? - /// The ARN of the Amazon Web Services resource that is generating and sending logs. For example, arn:aws:workmail:us-east-1:123456789012:organization/m-1234EXAMPLEabcd1234abcd1234abcd1234 - /// This member is required. - public var resourceArn: Swift.String? - /// An optional list of key-value pairs to associate with the resource. For more information about tagging, see [Tagging Amazon Web Services resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) - public var tags: [Swift.String: Swift.String]? +extension CloudWatchLogsClientTypes { - public init( - logType: Swift.String? = nil, - name: Swift.String? = nil, - resourceArn: Swift.String? = nil, - tags: [Swift.String: Swift.String]? = nil - ) - { - self.logType = logType - self.name = name - self.resourceArn = resourceArn - self.tags = tags + /// Use this processor to convert a value type associated with the specified key to the specified type. It's a casting processor that changes the types of the specified fields. Values can be converted into one of the following datatypes: integer, double, string and boolean. For more information about this processor including examples, see [ trimString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-trimString) in the CloudWatch Logs User Guide. + public struct TypeConverter: Swift.Sendable { + /// An array of TypeConverterEntry objects, where each object contains the information about one field to change the type of. + /// This member is required. + public var entries: [CloudWatchLogsClientTypes.TypeConverterEntry]? + + public init( + entries: [CloudWatchLogsClientTypes.TypeConverterEntry]? = nil + ) + { + self.entries = entries + } } } -public struct PutDeliverySourceOutput: Swift.Sendable { - /// A structure containing information about the delivery source that was just created or updated. - public var deliverySource: CloudWatchLogsClientTypes.DeliverySource? +extension CloudWatchLogsClientTypes { - public init( - deliverySource: CloudWatchLogsClientTypes.DeliverySource? = nil - ) - { - self.deliverySource = deliverySource + /// This processor converts a string field to uppercase. For more information about this processor including examples, see [ upperCaseString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-upperCaseString) in the CloudWatch Logs User Guide. + public struct UpperCaseString: Swift.Sendable { + /// The array of containing the keys of the field to convert to uppercase. + /// This member is required. + public var withKeys: [Swift.String]? + + public init( + withKeys: [Swift.String]? = nil + ) + { + self.withKeys = withKeys + } } } -public struct PutDestinationInput: Swift.Sendable { - /// A name for the destination. - /// This member is required. - public var destinationName: Swift.String? - /// The ARN of an IAM role that grants CloudWatch Logs permissions to call the Amazon Kinesis PutRecord operation on the destination stream. - /// This member is required. - public var roleArn: Swift.String? - /// An optional list of key-value pairs to associate with the resource. For more information about tagging, see [Tagging Amazon Web Services resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) - public var tags: [Swift.String: Swift.String]? - /// The ARN of an Amazon Kinesis stream to which to deliver matching log events. - /// This member is required. - public var targetArn: Swift.String? +extension CloudWatchLogsClientTypes { - public init( - destinationName: Swift.String? = nil, - roleArn: Swift.String? = nil, - tags: [Swift.String: Swift.String]? = nil, - targetArn: Swift.String? = nil - ) - { - self.destinationName = destinationName - self.roleArn = roleArn - self.tags = tags - self.targetArn = targetArn - } -} + /// This structure contains the information about one processor in a log transformer. + public struct Processor: Swift.Sendable { + /// Use this parameter to include the [ addKeys](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-addKeys) processor in your transformer. + public var addKeys: CloudWatchLogsClientTypes.AddKeys? + /// Use this parameter to include the [ copyValue](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-copyValue) processor in your transformer. + public var copyValue: CloudWatchLogsClientTypes.CopyValue? + /// Use this parameter to include the [ CSV](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-CSV) processor in your transformer. + public var csv: CloudWatchLogsClientTypes.CSV? + /// Use this parameter to include the [ datetimeConverter](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-datetimeConverter) processor in your transformer. + public var dateTimeConverter: CloudWatchLogsClientTypes.DateTimeConverter? + /// Use this parameter to include the [ deleteKeys](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-deleteKeys) processor in your transformer. + public var deleteKeys: CloudWatchLogsClientTypes.DeleteKeys? + /// Use this parameter to include the [ grok](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-grok) processor in your transformer. + public var grok: CloudWatchLogsClientTypes.Grok? + /// Use this parameter to include the [ listToMap](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-listToMap) processor in your transformer. + public var listToMap: CloudWatchLogsClientTypes.ListToMap? + /// Use this parameter to include the [ lowerCaseString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-lowerCaseString) processor in your transformer. + public var lowerCaseString: CloudWatchLogsClientTypes.LowerCaseString? + /// Use this parameter to include the [ moveKeys](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-moveKeys) processor in your transformer. + public var moveKeys: CloudWatchLogsClientTypes.MoveKeys? + /// Use this parameter to include the [ parseCloudfront](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parseCloudfront) processor in your transformer. If you use this processor, it must be the first processor in your transformer. + public var parseCloudfront: CloudWatchLogsClientTypes.ParseCloudfront? + /// Use this parameter to include the [ parseJSON](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parseJSON) processor in your transformer. + public var parseJSON: CloudWatchLogsClientTypes.ParseJSON? + /// Use this parameter to include the [ parseKeyValue](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parseKeyValue) processor in your transformer. + public var parseKeyValue: CloudWatchLogsClientTypes.ParseKeyValue? + /// Use this parameter to include the [ parsePostGres](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parsePostGres) processor in your transformer. If you use this processor, it must be the first processor in your transformer. + public var parsePostgres: CloudWatchLogsClientTypes.ParsePostgres? + /// Use this parameter to include the [ parseRoute53](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parseRoute53) processor in your transformer. If you use this processor, it must be the first processor in your transformer. + public var parseRoute53: CloudWatchLogsClientTypes.ParseRoute53? + /// Use this parameter to include the [ parseVPC](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parseVPC) processor in your transformer. If you use this processor, it must be the first processor in your transformer. + public var parseVPC: CloudWatchLogsClientTypes.ParseVPC? + /// Use this parameter to include the [ parseWAF](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-parseWAF) processor in your transformer. If you use this processor, it must be the first processor in your transformer. + public var parseWAF: CloudWatchLogsClientTypes.ParseWAF? + /// Use this parameter to include the [ renameKeys](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-renameKeys) processor in your transformer. + public var renameKeys: CloudWatchLogsClientTypes.RenameKeys? + /// Use this parameter to include the [ splitString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-splitString) processor in your transformer. + public var splitString: CloudWatchLogsClientTypes.SplitString? + /// Use this parameter to include the [ substituteString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-substituteString) processor in your transformer. + public var substituteString: CloudWatchLogsClientTypes.SubstituteString? + /// Use this parameter to include the [ trimString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-trimString) processor in your transformer. + public var trimString: CloudWatchLogsClientTypes.TrimString? + /// Use this parameter to include the [ typeConverter](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-typeConverter) processor in your transformer. + public var typeConverter: CloudWatchLogsClientTypes.TypeConverter? + /// Use this parameter to include the [ upperCaseString](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-upperCaseString) processor in your transformer. + public var upperCaseString: CloudWatchLogsClientTypes.UpperCaseString? -public struct PutDestinationOutput: Swift.Sendable { - /// The destination. - public var destination: CloudWatchLogsClientTypes.Destination? + public init( + addKeys: CloudWatchLogsClientTypes.AddKeys? = nil, + copyValue: CloudWatchLogsClientTypes.CopyValue? = nil, + csv: CloudWatchLogsClientTypes.CSV? = nil, + dateTimeConverter: CloudWatchLogsClientTypes.DateTimeConverter? = nil, + deleteKeys: CloudWatchLogsClientTypes.DeleteKeys? = nil, + grok: CloudWatchLogsClientTypes.Grok? = nil, + listToMap: CloudWatchLogsClientTypes.ListToMap? = nil, + lowerCaseString: CloudWatchLogsClientTypes.LowerCaseString? = nil, + moveKeys: CloudWatchLogsClientTypes.MoveKeys? = nil, + parseCloudfront: CloudWatchLogsClientTypes.ParseCloudfront? = nil, + parseJSON: CloudWatchLogsClientTypes.ParseJSON? = nil, + parseKeyValue: CloudWatchLogsClientTypes.ParseKeyValue? = nil, + parsePostgres: CloudWatchLogsClientTypes.ParsePostgres? = nil, + parseRoute53: CloudWatchLogsClientTypes.ParseRoute53? = nil, + parseVPC: CloudWatchLogsClientTypes.ParseVPC? = nil, + parseWAF: CloudWatchLogsClientTypes.ParseWAF? = nil, + renameKeys: CloudWatchLogsClientTypes.RenameKeys? = nil, + splitString: CloudWatchLogsClientTypes.SplitString? = nil, + substituteString: CloudWatchLogsClientTypes.SubstituteString? = nil, + trimString: CloudWatchLogsClientTypes.TrimString? = nil, + typeConverter: CloudWatchLogsClientTypes.TypeConverter? = nil, + upperCaseString: CloudWatchLogsClientTypes.UpperCaseString? = nil + ) + { + self.addKeys = addKeys + self.copyValue = copyValue + self.csv = csv + self.dateTimeConverter = dateTimeConverter + self.deleteKeys = deleteKeys + self.grok = grok + self.listToMap = listToMap + self.lowerCaseString = lowerCaseString + self.moveKeys = moveKeys + self.parseCloudfront = parseCloudfront + self.parseJSON = parseJSON + self.parseKeyValue = parseKeyValue + self.parsePostgres = parsePostgres + self.parseRoute53 = parseRoute53 + self.parseVPC = parseVPC + self.parseWAF = parseWAF + self.renameKeys = renameKeys + self.splitString = splitString + self.substituteString = substituteString + self.trimString = trimString + self.typeConverter = typeConverter + self.upperCaseString = upperCaseString + } + } +} + +public struct GetTransformerOutput: Swift.Sendable { + /// The creation time of the transformer, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + public var creationTime: Swift.Int? + /// The date and time when this transformer was most recently modified, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + public var lastModifiedTime: Swift.Int? + /// The ARN of the log group that you specified in your request. + public var logGroupIdentifier: Swift.String? + /// This sructure contains the configuration of the requested transformer. + public var transformerConfig: [CloudWatchLogsClientTypes.Processor]? public init( - destination: CloudWatchLogsClientTypes.Destination? = nil + creationTime: Swift.Int? = nil, + lastModifiedTime: Swift.Int? = nil, + logGroupIdentifier: Swift.String? = nil, + transformerConfig: [CloudWatchLogsClientTypes.Processor]? = nil ) { - self.destination = destination + self.creationTime = creationTime + self.lastModifiedTime = lastModifiedTime + self.logGroupIdentifier = logGroupIdentifier + self.transformerConfig = transformerConfig } } -public struct PutDestinationPolicyInput: Swift.Sendable { - /// An IAM policy document that authorizes cross-account users to deliver their log events to the associated destination. This can be up to 5120 bytes. - /// This member is required. - public var accessPolicy: Swift.String? - /// A name for an existing destination. - /// This member is required. - public var destinationName: Swift.String? - /// Specify true if you are updating an existing destination policy to grant permission to an organization ID instead of granting permission to individual Amazon Web Services accounts. Before you update a destination policy this way, you must first update the subscription filters in the accounts that send logs to this destination. If you do not, the subscription filters might stop working. By specifying true for forceUpdate, you are affirming that you have already updated the subscription filters. For more information, see [ Updating an existing cross-account subscription](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Cross-Account-Log_Subscription-Update.html) If you omit this parameter, the default of false is used. - public var forceUpdate: Swift.Bool? +extension CloudWatchLogsClientTypes { - public init( - accessPolicy: Swift.String? = nil, - destinationName: Swift.String? = nil, - forceUpdate: Swift.Bool? = nil - ) - { - self.accessPolicy = accessPolicy - self.destinationName = destinationName - self.forceUpdate = forceUpdate + /// Represents a log event, which is a record of activity that was recorded by the application or resource being monitored. + public struct InputLogEvent: Swift.Sendable { + /// The raw event message. Each log event can be no larger than 256 KB. + /// This member is required. + public var message: Swift.String? + /// The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + /// This member is required. + public var timestamp: Swift.Int? + + public init( + message: Swift.String? = nil, + timestamp: Swift.Int? = nil + ) + { + self.message = message + self.timestamp = timestamp + } } } -/// The most likely cause is an Amazon Web Services access key ID or secret key that's not valid. -public struct UnrecognizedClientException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { +/// The sequence token is not valid. You can get the correct sequence token in the expectedSequenceToken field in the InvalidSequenceTokenException message. PutLogEvents actions are now always accepted and never return InvalidSequenceTokenException regardless of receiving an invalid sequence token. +public struct InvalidSequenceTokenException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { + public internal(set) var expectedSequenceToken: Swift.String? = nil public internal(set) var message: Swift.String? = nil } public internal(set) var properties = Properties() - public static var typeName: Swift.String { "UnrecognizedClientException" } + public static var typeName: Swift.String { "InvalidSequenceTokenException" } public static var fault: ClientRuntime.ErrorFault { .client } public static var isRetryable: Swift.Bool { false } public static var isThrottling: Swift.Bool { false } @@ -4338,3915 +4828,3926 @@ public struct UnrecognizedClientException: ClientRuntime.ModeledError, AWSClient public internal(set) var requestID: Swift.String? public init( + expectedSequenceToken: Swift.String? = nil, message: Swift.String? = nil ) { + self.properties.expectedSequenceToken = expectedSequenceToken self.properties.message = message } } -public struct PutLogEventsInput: Swift.Sendable { - /// Reserved for internal use. - public var entity: CloudWatchLogsClientTypes.Entity? - /// The log events. - /// This member is required. - public var logEvents: [CloudWatchLogsClientTypes.InputLogEvent]? - /// The name of the log group. - /// This member is required. - public var logGroupName: Swift.String? - /// The name of the log stream. - /// This member is required. - public var logStreamName: Swift.String? - /// The sequence token obtained from the response of the previous PutLogEvents call. The sequenceToken parameter is now ignored in PutLogEvents actions. PutLogEvents actions are now accepted and never return InvalidSequenceTokenException or DataAlreadyAcceptedException even if the sequence token is not valid. - public var sequenceToken: Swift.String? - - public init( - entity: CloudWatchLogsClientTypes.Entity? = nil, - logEvents: [CloudWatchLogsClientTypes.InputLogEvent]? = nil, - logGroupName: Swift.String? = nil, - logStreamName: Swift.String? = nil, - sequenceToken: Swift.String? = nil - ) - { - self.entity = entity - self.logEvents = logEvents - self.logGroupName = logGroupName - self.logStreamName = logStreamName - self.sequenceToken = sequenceToken - } -} - extension CloudWatchLogsClientTypes { - /// Reserved for internal use. - public struct RejectedEntityInfo: Swift.Sendable { - /// Reserved for internal use. - /// This member is required. - public var errorType: CloudWatchLogsClientTypes.EntityRejectionErrorType? + public enum SuppressionState: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case suppressed + case unsuppressed + case sdkUnknown(Swift.String) - public init( - errorType: CloudWatchLogsClientTypes.EntityRejectionErrorType? = nil - ) - { - self.errorType = errorType + public static var allCases: [SuppressionState] { + return [ + .suppressed, + .unsuppressed + ] } - } -} - -extension CloudWatchLogsClientTypes { - /// Represents the rejected events. - public struct RejectedLogEventsInfo: Swift.Sendable { - /// The expired log events. - public var expiredLogEventEndIndex: Swift.Int? - /// The index of the first log event that is too new. This field is inclusive. - public var tooNewLogEventStartIndex: Swift.Int? - /// The index of the last log event that is too old. This field is exclusive. - public var tooOldLogEventEndIndex: Swift.Int? + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } - public init( - expiredLogEventEndIndex: Swift.Int? = nil, - tooNewLogEventStartIndex: Swift.Int? = nil, - tooOldLogEventEndIndex: Swift.Int? = nil - ) - { - self.expiredLogEventEndIndex = expiredLogEventEndIndex - self.tooNewLogEventStartIndex = tooNewLogEventStartIndex - self.tooOldLogEventEndIndex = tooOldLogEventEndIndex + public var rawValue: Swift.String { + switch self { + case .suppressed: return "SUPPRESSED" + case .unsuppressed: return "UNSUPPRESSED" + case let .sdkUnknown(s): return s + } } } } -public struct PutLogEventsOutput: Swift.Sendable { - /// The next sequence token. This field has been deprecated. The sequence token is now ignored in PutLogEvents actions. PutLogEvents actions are always accepted even if the sequence token is not valid. You can use parallel PutLogEvents actions on the same log stream and you do not need to wait for the response of a previous PutLogEvents action to obtain the nextSequenceToken value. - public var nextSequenceToken: Swift.String? - /// Reserved for internal use. - public var rejectedEntityInfo: CloudWatchLogsClientTypes.RejectedEntityInfo? - /// The rejected events. - public var rejectedLogEventsInfo: CloudWatchLogsClientTypes.RejectedLogEventsInfo? +public struct ListAnomaliesInput: Swift.Sendable { + /// Use this to optionally limit the results to only the anomalies found by a certain anomaly detector. + public var anomalyDetectorArn: Swift.String? + /// The maximum number of items to return. If you don't specify a value, the default maximum value of 50 items is used. + public var limit: Swift.Int? + /// The token for the next set of items to return. The token expires after 24 hours. + public var nextToken: Swift.String? + /// You can specify this parameter if you want to the operation to return only anomalies that are currently either suppressed or unsuppressed. + public var suppressionState: CloudWatchLogsClientTypes.SuppressionState? public init( - nextSequenceToken: Swift.String? = nil, - rejectedEntityInfo: CloudWatchLogsClientTypes.RejectedEntityInfo? = nil, - rejectedLogEventsInfo: CloudWatchLogsClientTypes.RejectedLogEventsInfo? = nil + anomalyDetectorArn: Swift.String? = nil, + limit: Swift.Int? = nil, + nextToken: Swift.String? = nil, + suppressionState: CloudWatchLogsClientTypes.SuppressionState? = nil ) { - self.nextSequenceToken = nextSequenceToken - self.rejectedEntityInfo = rejectedEntityInfo - self.rejectedLogEventsInfo = rejectedLogEventsInfo + self.anomalyDetectorArn = anomalyDetectorArn + self.limit = limit + self.nextToken = nextToken + self.suppressionState = suppressionState } } -public struct PutMetricFilterInput: Swift.Sendable { - /// A name for the metric filter. - /// This member is required. - public var filterName: Swift.String? - /// A filter pattern for extracting metric data out of ingested log events. - /// This member is required. - public var filterPattern: Swift.String? - /// The name of the log group. - /// This member is required. - public var logGroupName: Swift.String? - /// A collection of information that defines how metric data gets emitted. - /// This member is required. - public var metricTransformations: [CloudWatchLogsClientTypes.MetricTransformation]? +public struct ListAnomaliesOutput: Swift.Sendable { + /// An array of structures, where each structure contains information about one anomaly that a log anomaly detector has found. + public var anomalies: [CloudWatchLogsClientTypes.Anomaly]? + /// The token for the next set of items to return. The token expires after 24 hours. + public var nextToken: Swift.String? public init( - filterName: Swift.String? = nil, - filterPattern: Swift.String? = nil, - logGroupName: Swift.String? = nil, - metricTransformations: [CloudWatchLogsClientTypes.MetricTransformation]? = nil + anomalies: [CloudWatchLogsClientTypes.Anomaly]? = nil, + nextToken: Swift.String? = nil ) { - self.filterName = filterName - self.filterPattern = filterPattern - self.logGroupName = logGroupName - self.metricTransformations = metricTransformations + self.anomalies = anomalies + self.nextToken = nextToken } } -public struct PutQueryDefinitionInput: Swift.Sendable { - /// Used as an idempotency token, to avoid returning an exception if the service receives the same request twice because of a network error. - public var clientToken: Swift.String? - /// Use this parameter to include specific log groups as part of your query definition. If you are updating a query definition and you omit this parameter, then the updated definition will contain no log groups. - public var logGroupNames: [Swift.String]? - /// A name for the query definition. If you are saving numerous query definitions, we recommend that you name them. This way, you can find the ones you want by using the first part of the name as a filter in the queryDefinitionNamePrefix parameter of [DescribeQueryDefinitions](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeQueryDefinitions.html). - /// This member is required. - public var name: Swift.String? - /// If you are updating a query definition, use this parameter to specify the ID of the query definition that you want to update. You can use [DescribeQueryDefinitions](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeQueryDefinitions.html) to retrieve the IDs of your saved query definitions. If you are creating a query definition, do not specify this parameter. CloudWatch generates a unique ID for the new query definition and include it in the response to this operation. - public var queryDefinitionId: Swift.String? - /// The query string to use for this definition. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). - /// This member is required. - public var queryString: Swift.String? +public struct ListLogAnomalyDetectorsInput: Swift.Sendable { + /// Use this to optionally filter the results to only include anomaly detectors that are associated with the specified log group. + public var filterLogGroupArn: Swift.String? + /// The maximum number of items to return. If you don't specify a value, the default maximum value of 50 items is used. + public var limit: Swift.Int? + /// The token for the next set of items to return. The token expires after 24 hours. + public var nextToken: Swift.String? public init( - clientToken: Swift.String? = nil, - logGroupNames: [Swift.String]? = nil, - name: Swift.String? = nil, - queryDefinitionId: Swift.String? = nil, - queryString: Swift.String? = nil + filterLogGroupArn: Swift.String? = nil, + limit: Swift.Int? = nil, + nextToken: Swift.String? = nil ) { - self.clientToken = clientToken - self.logGroupNames = logGroupNames - self.name = name - self.queryDefinitionId = queryDefinitionId - self.queryString = queryString + self.filterLogGroupArn = filterLogGroupArn + self.limit = limit + self.nextToken = nextToken } } -public struct PutQueryDefinitionOutput: Swift.Sendable { - /// The ID of the query definition. - public var queryDefinitionId: Swift.String? +public struct ListLogAnomalyDetectorsOutput: Swift.Sendable { + /// An array of structures, where each structure in the array contains information about one anomaly detector. + public var anomalyDetectors: [CloudWatchLogsClientTypes.AnomalyDetector]? + /// The token for the next set of items to return. The token expires after 24 hours. + public var nextToken: Swift.String? public init( - queryDefinitionId: Swift.String? = nil + anomalyDetectors: [CloudWatchLogsClientTypes.AnomalyDetector]? = nil, + nextToken: Swift.String? = nil ) { - self.queryDefinitionId = queryDefinitionId + self.anomalyDetectors = anomalyDetectors + self.nextToken = nextToken } } -public struct PutResourcePolicyInput: Swift.Sendable { - /// Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. This parameter is required. The following example creates a resource policy enabling the Route 53 service to put DNS query logs in to the specified log group. Replace "logArn" with the ARN of your CloudWatch Logs resource, such as a log group or log stream. CloudWatch Logs also supports [aws:SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) and [aws:SourceAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) condition context keys. In the example resource policy, you would replace the value of SourceArn with the resource making the call from Route 53 to CloudWatch Logs. You would also replace the value of SourceAccount with the Amazon Web Services account ID making that call. { "Version": "2012-10-17", "Statement": [ { "Sid": "Route53LogsToCloudWatchLogs", "Effect": "Allow", "Principal": { "Service": [ "route53.amazonaws.com" ] }, "Action": "logs:PutLogEvents", "Resource": "logArn", "Condition": { "ArnLike": { "aws:SourceArn": "myRoute53ResourceArn" }, "StringEquals": { "aws:SourceAccount": "myAwsAccountId" } } } ] } - public var policyDocument: Swift.String? - /// Name of the new policy. This parameter is required. - public var policyName: Swift.String? +public struct ListLogGroupsForQueryInput: Swift.Sendable { + /// Limits the number of returned log groups to the specified number. + public var maxResults: Swift.Int? + /// The token for the next set of items to return. The token expires after 24 hours. + public var nextToken: Swift.String? + /// The ID of the query to use. This query ID is from the response to your [StartQuery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html) operation. + /// This member is required. + public var queryId: Swift.String? public init( - policyDocument: Swift.String? = nil, - policyName: Swift.String? = nil + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil, + queryId: Swift.String? = nil ) { - self.policyDocument = policyDocument - self.policyName = policyName + self.maxResults = maxResults + self.nextToken = nextToken + self.queryId = queryId } } -public struct PutResourcePolicyOutput: Swift.Sendable { - /// The new policy. - public var resourcePolicy: CloudWatchLogsClientTypes.ResourcePolicy? +public struct ListLogGroupsForQueryOutput: Swift.Sendable { + /// An array of the names and ARNs of the log groups that were processed in the query. + public var logGroupIdentifiers: [Swift.String]? + /// The token for the next set of items to return. The token expires after 24 hours. + public var nextToken: Swift.String? public init( - resourcePolicy: CloudWatchLogsClientTypes.ResourcePolicy? = nil + logGroupIdentifiers: [Swift.String]? = nil, + nextToken: Swift.String? = nil ) { - self.resourcePolicy = resourcePolicy + self.logGroupIdentifiers = logGroupIdentifiers + self.nextToken = nextToken } } -public struct PutRetentionPolicyInput: Swift.Sendable { - /// The name of the log group. - /// This member is required. - public var logGroupName: Swift.String? - /// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). +public struct ListTagsForResourceInput: Swift.Sendable { + /// The ARN of the resource that you want to view tags for. The ARN format of a log group is arn:aws:logs:Region:account-id:log-group:log-group-name The ARN format of a destination is arn:aws:logs:Region:account-id:destination:destination-name For more information about ARN format, see [CloudWatch Logs resources and operations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html). /// This member is required. - public var retentionInDays: Swift.Int? + public var resourceArn: Swift.String? public init( - logGroupName: Swift.String? = nil, - retentionInDays: Swift.Int? = nil + resourceArn: Swift.String? = nil ) { - self.logGroupName = logGroupName - self.retentionInDays = retentionInDays + self.resourceArn = resourceArn } } -public struct PutSubscriptionFilterInput: Swift.Sendable { - /// The ARN of the destination to deliver matching log events to. Currently, the supported destinations are: - /// - /// * An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery. - /// - /// * A logical destination (specified using an ARN) belonging to a different account, for cross-account delivery. If you're setting up a cross-account subscription, the destination must have an IAM policy associated with it. The IAM policy must allow the sender to send logs to the destination. For more information, see [PutDestinationPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestinationPolicy.html). - /// - /// * A Kinesis Data Firehose delivery stream belonging to the same account as the subscription filter, for same-account delivery. - /// - /// * A Lambda function belonging to the same account as the subscription filter, for same-account delivery. - /// This member is required. - public var destinationArn: Swift.String? - /// The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis data stream. - public var distribution: CloudWatchLogsClientTypes.Distribution? - /// A name for the subscription filter. If you are updating an existing filter, you must specify the correct name in filterName. To find the name of the filter currently associated with a log group, use [DescribeSubscriptionFilters](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeSubscriptionFilters.html). - /// This member is required. - public var filterName: Swift.String? - /// A filter pattern for subscribing to a filtered stream of log events. - /// This member is required. - public var filterPattern: Swift.String? - /// The name of the log group. - /// This member is required. - public var logGroupName: Swift.String? - /// The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. - public var roleArn: Swift.String? +public struct ListTagsForResourceOutput: Swift.Sendable { + /// The list of tags associated with the requested resource.> + public var tags: [Swift.String: Swift.String]? public init( - destinationArn: Swift.String? = nil, - distribution: CloudWatchLogsClientTypes.Distribution? = nil, - filterName: Swift.String? = nil, - filterPattern: Swift.String? = nil, - logGroupName: Swift.String? = nil, - roleArn: Swift.String? = nil + tags: [Swift.String: Swift.String]? = nil ) { - self.destinationArn = destinationArn - self.distribution = distribution - self.filterName = filterName - self.filterPattern = filterPattern - self.logGroupName = logGroupName - self.roleArn = roleArn + self.tags = tags } } -public struct StartLiveTailInput: Swift.Sendable { - /// An optional pattern to use to filter the results to include only log events that match the pattern. For example, a filter pattern of error 404 causes only log events that include both error and 404 to be included in the Live Tail stream. Regular expression filter patterns are supported. For more information about filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). - public var logEventFilterPattern: Swift.String? - /// An array where each item in the array is a log group to include in the Live Tail session. Specify each log group by its ARN. If you specify an ARN, the ARN can't end with an asterisk (*). You can include up to 10 log groups. +@available(*, deprecated, message: "Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse") +public struct ListTagsLogGroupInput: Swift.Sendable { + /// The name of the log group. /// This member is required. - public var logGroupIdentifiers: [Swift.String]? - /// If you specify this parameter, then only log events in the log streams that have names that start with the prefixes that you specify here are included in the Live Tail session. If you specify this field, you can't also specify the logStreamNames field. You can specify this parameter only if you specify only one log group in logGroupIdentifiers. - public var logStreamNamePrefixes: [Swift.String]? - /// If you specify this parameter, then only log events in the log streams that you specify here are included in the Live Tail session. If you specify this field, you can't also specify the logStreamNamePrefixes field. You can specify this parameter only if you specify only one log group in logGroupIdentifiers. - public var logStreamNames: [Swift.String]? + public var logGroupName: Swift.String? public init( - logEventFilterPattern: Swift.String? = nil, - logGroupIdentifiers: [Swift.String]? = nil, - logStreamNamePrefixes: [Swift.String]? = nil, - logStreamNames: [Swift.String]? = nil + logGroupName: Swift.String? = nil ) { - self.logEventFilterPattern = logEventFilterPattern - self.logGroupIdentifiers = logGroupIdentifiers - self.logStreamNamePrefixes = logStreamNamePrefixes - self.logStreamNames = logStreamNames + self.logGroupName = logGroupName } } -/// his exception is returned if an unknown error occurs during a Live Tail session. -public struct SessionStreamingException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - - public struct Properties { - public internal(set) var message: Swift.String? = nil - } - - public internal(set) var properties = Properties() - public static var typeName: Swift.String { "SessionStreamingException" } - public static var fault: ClientRuntime.ErrorFault { .client } - public static var isRetryable: Swift.Bool { false } - public static var isThrottling: Swift.Bool { false } - public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() - public internal(set) var message: Swift.String? - public internal(set) var requestID: Swift.String? +@available(*, deprecated, message: "Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse") +public struct ListTagsLogGroupOutput: Swift.Sendable { + /// The tags for the log group. + public var tags: [Swift.String: Swift.String]? public init( - message: Swift.String? = nil + tags: [Swift.String: Swift.String]? = nil ) { - self.properties.message = message + self.tags = tags } } -/// This exception is returned in a Live Tail stream when the Live Tail session times out. Live Tail sessions time out after three hours. -public struct SessionTimeoutException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { +extension CloudWatchLogsClientTypes { - public struct Properties { - public internal(set) var message: Swift.String? = nil + /// This object contains the information for one log event returned in a Live Tail stream. + public struct LiveTailSessionLogEvent: Swift.Sendable { + /// The timestamp specifying when this log event was ingested into the log group. + public var ingestionTime: Swift.Int? + /// The name or ARN of the log group that ingested this log event. + public var logGroupIdentifier: Swift.String? + /// The name of the log stream that ingested this log event. + public var logStreamName: Swift.String? + /// The log event message text. + public var message: Swift.String? + /// The timestamp specifying when this log event was created. + public var timestamp: Swift.Int? + + public init( + ingestionTime: Swift.Int? = nil, + logGroupIdentifier: Swift.String? = nil, + logStreamName: Swift.String? = nil, + message: Swift.String? = nil, + timestamp: Swift.Int? = nil + ) + { + self.ingestionTime = ingestionTime + self.logGroupIdentifier = logGroupIdentifier + self.logStreamName = logStreamName + self.message = message + self.timestamp = timestamp + } } +} - public internal(set) var properties = Properties() - public static var typeName: Swift.String { "SessionTimeoutException" } - public static var fault: ClientRuntime.ErrorFault { .client } - public static var isRetryable: Swift.Bool { false } - public static var isThrottling: Swift.Bool { false } - public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() - public internal(set) var message: Swift.String? - public internal(set) var requestID: Swift.String? +extension CloudWatchLogsClientTypes { - public init( - message: Swift.String? = nil - ) - { - self.properties.message = message + /// This object contains the metadata for one LiveTailSessionUpdate structure. It indicates whether that update includes only a sample of 500 log events out of a larger number of ingested log events, or if it contains all of the matching log events ingested during that second of time. + public struct LiveTailSessionMetadata: Swift.Sendable { + /// If this is true, then more than 500 log events matched the request for this update, and the sessionResults includes a sample of 500 of those events. If this is false, then 500 or fewer log events matched the request for this update, so no sampling was necessary. In this case, the sessionResults array includes all log events that matched your request during this time. + public var sampled: Swift.Bool + + public init( + sampled: Swift.Bool = false + ) + { + self.sampled = sampled + } } } extension CloudWatchLogsClientTypes { - /// This object includes the stream returned by your [StartLiveTail](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartLiveTail.html) request. - public enum StartLiveTailResponseStream: Swift.Sendable { - /// This object contains information about this Live Tail session, including the log groups included and the log stream filters, if any. - case sessionstart(CloudWatchLogsClientTypes.LiveTailSessionStart) - /// This object contains the log events and session metadata. - case sessionupdate(CloudWatchLogsClientTypes.LiveTailSessionUpdate) - case sdkUnknown(Swift.String) - } -} - -public struct StartLiveTailOutput: Swift.Sendable { - /// An object that includes the stream returned by your request. It can include both log events and exceptions. - public var responseStream: AsyncThrowingStream? - - public init( - responseStream: AsyncThrowingStream? = nil - ) - { - self.responseStream = responseStream - } -} - -extension CloudWatchLogsClientTypes { - - /// Reserved. - public struct QueryCompileErrorLocation: Swift.Sendable { - /// Reserved. - public var endCharOffset: Swift.Int? - /// Reserved. - public var startCharOffset: Swift.Int? + /// This object contains information about this Live Tail session, including the log groups included and the log stream filters, if any. + public struct LiveTailSessionStart: Swift.Sendable { + /// An optional pattern to filter the results to include only log events that match the pattern. For example, a filter pattern of error 404 displays only log events that include both error and 404. For more information about filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + public var logEventFilterPattern: Swift.String? + /// An array of the names and ARNs of the log groups included in this Live Tail session. + public var logGroupIdentifiers: [Swift.String]? + /// If your StartLiveTail operation request included a logStreamNamePrefixes parameter that filtered the session to only include log streams that have names that start with certain prefixes, these prefixes are listed here. + public var logStreamNamePrefixes: [Swift.String]? + /// If your StartLiveTail operation request included a logStreamNames parameter that filtered the session to only include certain log streams, these streams are listed here. + public var logStreamNames: [Swift.String]? + /// The unique ID generated by CloudWatch Logs to identify this Live Tail session request. + public var requestId: Swift.String? + /// The unique ID generated by CloudWatch Logs to identify this Live Tail session. + public var sessionId: Swift.String? public init( - endCharOffset: Swift.Int? = nil, - startCharOffset: Swift.Int? = nil + logEventFilterPattern: Swift.String? = nil, + logGroupIdentifiers: [Swift.String]? = nil, + logStreamNamePrefixes: [Swift.String]? = nil, + logStreamNames: [Swift.String]? = nil, + requestId: Swift.String? = nil, + sessionId: Swift.String? = nil ) { - self.endCharOffset = endCharOffset - self.startCharOffset = startCharOffset + self.logEventFilterPattern = logEventFilterPattern + self.logGroupIdentifiers = logGroupIdentifiers + self.logStreamNamePrefixes = logStreamNamePrefixes + self.logStreamNames = logStreamNames + self.requestId = requestId + self.sessionId = sessionId } } } extension CloudWatchLogsClientTypes { - /// Reserved. - public struct QueryCompileError: Swift.Sendable { - /// Reserved. - public var location: CloudWatchLogsClientTypes.QueryCompileErrorLocation? - /// Reserved. - public var message: Swift.String? + /// This object contains the log events and metadata for a Live Tail session. + public struct LiveTailSessionUpdate: Swift.Sendable { + /// This object contains the session metadata for a Live Tail session. + public var sessionMetadata: CloudWatchLogsClientTypes.LiveTailSessionMetadata? + /// An array, where each member of the array includes the information for one log event in the Live Tail session. A sessionResults array can include as many as 500 log events. If the number of log events matching the request exceeds 500 per second, the log events are sampled down to 500 log events to be included in each sessionUpdate structure. + public var sessionResults: [CloudWatchLogsClientTypes.LiveTailSessionLogEvent]? public init( - location: CloudWatchLogsClientTypes.QueryCompileErrorLocation? = nil, - message: Swift.String? = nil + sessionMetadata: CloudWatchLogsClientTypes.LiveTailSessionMetadata? = nil, + sessionResults: [CloudWatchLogsClientTypes.LiveTailSessionLogEvent]? = nil ) { - self.location = location - self.message = message + self.sessionMetadata = sessionMetadata + self.sessionResults = sessionResults } } } -/// The query string is not valid. Details about this error are displayed in a QueryCompileError object. For more information, see [QueryCompileError](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_QueryCompileError.html). For more information about valid query syntax, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). -public struct MalformedQueryException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - - public struct Properties { - public internal(set) var message: Swift.String? = nil - /// Reserved. - public internal(set) var queryCompileError: CloudWatchLogsClientTypes.QueryCompileError? = nil - } - - public internal(set) var properties = Properties() - public static var typeName: Swift.String { "MalformedQueryException" } - public static var fault: ClientRuntime.ErrorFault { .client } - public static var isRetryable: Swift.Bool { false } - public static var isThrottling: Swift.Bool { false } - public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() - public internal(set) var message: Swift.String? - public internal(set) var requestID: Swift.String? - - public init( - message: Swift.String? = nil, - queryCompileError: CloudWatchLogsClientTypes.QueryCompileError? = nil - ) - { - self.properties.message = message - self.properties.queryCompileError = queryCompileError - } -} - -public struct StartQueryInput: Swift.Sendable { - /// The end of the time range to query. The range is inclusive, so the specified end time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC. +public struct PutAccountPolicyInput: Swift.Sendable { + /// Specify the policy, in JSON. Data protection policy A data protection policy must include two JSON blocks: + /// + /// * The first block must include both a DataIdentifer array and an Operation property with an Audit action. The DataIdentifer array lists the types of sensitive data that you want to mask. For more information about the available options, see [Types of data that you can mask](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-types.html). The Operation property with an Audit action is required to find the sensitive data terms. This Audit action must contain a FindingsDestination object. You can optionally use that FindingsDestination object to list one or more destinations to send audit findings to. If you specify destinations such as log groups, Firehose streams, and S3 buckets, they must already exist. + /// + /// * The second block must include both a DataIdentifer array and an Operation property with an Deidentify action. The DataIdentifer array must exactly match the DataIdentifer array in the first block of the policy. The Operation property with the Deidentify action is what actually masks the data, and it must contain the "MaskConfig": {} object. The "MaskConfig": {} object must be empty. + /// + /// + /// For an example data protection policy, see the Examples section on this page. The contents of the two DataIdentifer arrays must match exactly. In addition to the two JSON blocks, the policyDocument can also include Name, Description, and Version fields. The Name is different than the operation's policyName parameter, and is used as a dimension when CloudWatch Logs reports audit findings metrics to CloudWatch. The JSON specified in policyDocument can be up to 30,720 characters long. Subscription filter policy A subscription filter policy can include the following attributes in a JSON block: + /// + /// * DestinationArn The ARN of the destination to deliver log events to. Supported destinations are: + /// + /// * An Kinesis Data Streams data stream in the same account as the subscription policy, for same-account delivery. + /// + /// * An Firehose data stream in the same account as the subscription policy, for same-account delivery. + /// + /// * A Lambda function in the same account as the subscription policy, for same-account delivery. + /// + /// * A logical destination in a different account created with [PutDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestination.html), for cross-account delivery. Kinesis Data Streams and Firehose are supported as logical destinations. + /// + /// + /// + /// + /// * RoleArn The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + /// + /// * FilterPattern A filter pattern for subscribing to a filtered stream of log events. + /// + /// * Distribution The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to Random for a more even distribution. This property is only applicable when the destination is an Kinesis Data Streams data stream. + /// + /// + /// Transformer policy A transformer policy must include one JSON block with the array of processors and their configurations. For more information about available processors, see [ Processors that you can use](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-Processors). Field index policy A field index filter policy can include the following attribute in a JSON block: + /// + /// * Fields The array of field indexes to create. + /// + /// + /// It must contain at least one field index. The following is an example of an index policy document that creates two indexes, RequestId and TransactionId. "policyDocument": "{ \"Fields\": [ \"RequestId\", \"TransactionId\" ] }" /// This member is required. - public var endTime: Swift.Int? - /// The maximum number of log events to return in the query. If the query string uses the fields command, only the specified fields and their values are returned. The default is 10,000. - public var limit: Swift.Int? - /// The list of log groups to query. You can include up to 50 log groups. You can specify them by the log group name or ARN. If a log group that you're querying is in a source account and you're using a monitoring account, you must specify the ARN of the log group here. The query definition must also be defined in the monitoring account. If you specify an ARN, the ARN can't end with an asterisk (*). A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames, or logGroupIdentifiers. - public var logGroupIdentifiers: [Swift.String]? - /// The log group on which to perform the query. A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames, or logGroupIdentifiers. - public var logGroupName: Swift.String? - /// The list of log groups to be queried. You can include up to 50 log groups. A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames, or logGroupIdentifiers. - public var logGroupNames: [Swift.String]? - /// The query string to use. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). + public var policyDocument: Swift.String? + /// A name for the policy. This must be unique within the account. /// This member is required. - public var queryString: Swift.String? - /// The beginning of the time range to query. The range is inclusive, so the specified start time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC. + public var policyName: Swift.String? + /// The type of policy that you're creating or updating. /// This member is required. - public var startTime: Swift.Int? + public var policyType: CloudWatchLogsClientTypes.PolicyType? + /// Currently the only valid value for this parameter is ALL, which specifies that the data protection policy applies to all log groups in the account. If you omit this parameter, the default of ALL is used. + public var scope: CloudWatchLogsClientTypes.Scope? + /// Use this parameter to apply the new policy to a subset of log groups in the account. Specifing selectionCriteria is valid only when you specify SUBSCRIPTION_FILTER_POLICY, FIELD_INDEX_POLICY or TRANSFORMER_POLICYfor policyType. If policyType is SUBSCRIPTION_FILTER_POLICY, the only supported selectionCriteria filter is LogGroupName NOT IN [] If policyType is FIELD_INDEX_POLICY or TRANSFORMER_POLICY, the only supported selectionCriteria filter is LogGroupNamePrefix The selectionCriteria string can be up to 25KB in length. The length is determined by using its UTF-8 bytes. Using the selectionCriteria parameter with SUBSCRIPTION_FILTER_POLICY is useful to help prevent infinite loops. For more information, see [Log recursion prevention](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions-recursion-prevention.html). + public var selectionCriteria: Swift.String? public init( - endTime: Swift.Int? = nil, - limit: Swift.Int? = nil, - logGroupIdentifiers: [Swift.String]? = nil, - logGroupName: Swift.String? = nil, - logGroupNames: [Swift.String]? = nil, - queryString: Swift.String? = nil, - startTime: Swift.Int? = nil + policyDocument: Swift.String? = nil, + policyName: Swift.String? = nil, + policyType: CloudWatchLogsClientTypes.PolicyType? = nil, + scope: CloudWatchLogsClientTypes.Scope? = nil, + selectionCriteria: Swift.String? = nil ) { - self.endTime = endTime - self.limit = limit - self.logGroupIdentifiers = logGroupIdentifiers - self.logGroupName = logGroupName - self.logGroupNames = logGroupNames - self.queryString = queryString - self.startTime = startTime + self.policyDocument = policyDocument + self.policyName = policyName + self.policyType = policyType + self.scope = scope + self.selectionCriteria = selectionCriteria } } -public struct StartQueryOutput: Swift.Sendable { - /// The unique ID of the query. - public var queryId: Swift.String? +public struct PutAccountPolicyOutput: Swift.Sendable { + /// The account policy that you created. + public var accountPolicy: CloudWatchLogsClientTypes.AccountPolicy? public init( - queryId: Swift.String? = nil + accountPolicy: CloudWatchLogsClientTypes.AccountPolicy? = nil ) { - self.queryId = queryId + self.accountPolicy = accountPolicy } } -public struct StopQueryInput: Swift.Sendable { - /// The ID number of the query to stop. To find this ID number, use DescribeQueries. +public struct PutDataProtectionPolicyInput: Swift.Sendable { + /// Specify either the log group name or log group ARN. /// This member is required. - public var queryId: Swift.String? + public var logGroupIdentifier: Swift.String? + /// Specify the data protection policy, in JSON. This policy must include two JSON blocks: + /// + /// * The first block must include both a DataIdentifer array and an Operation property with an Audit action. The DataIdentifer array lists the types of sensitive data that you want to mask. For more information about the available options, see [Types of data that you can mask](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-types.html). The Operation property with an Audit action is required to find the sensitive data terms. This Audit action must contain a FindingsDestination object. You can optionally use that FindingsDestination object to list one or more destinations to send audit findings to. If you specify destinations such as log groups, Firehose streams, and S3 buckets, they must already exist. + /// + /// * The second block must include both a DataIdentifer array and an Operation property with an Deidentify action. The DataIdentifer array must exactly match the DataIdentifer array in the first block of the policy. The Operation property with the Deidentify action is what actually masks the data, and it must contain the "MaskConfig": {} object. The "MaskConfig": {} object must be empty. + /// + /// + /// For an example data protection policy, see the Examples section on this page. The contents of the two DataIdentifer arrays must match exactly. In addition to the two JSON blocks, the policyDocument can also include Name, Description, and Version fields. The Name is used as a dimension when CloudWatch Logs reports audit findings metrics to CloudWatch. The JSON specified in policyDocument can be up to 30,720 characters. + /// This member is required. + public var policyDocument: Swift.String? public init( - queryId: Swift.String? = nil + logGroupIdentifier: Swift.String? = nil, + policyDocument: Swift.String? = nil ) { - self.queryId = queryId + self.logGroupIdentifier = logGroupIdentifier + self.policyDocument = policyDocument } } -public struct StopQueryOutput: Swift.Sendable { - /// This is true if the query was stopped by the StopQuery operation. - public var success: Swift.Bool +public struct PutDataProtectionPolicyOutput: Swift.Sendable { + /// The date and time that this policy was most recently updated. + public var lastUpdatedTime: Swift.Int? + /// The log group name or ARN that you specified in your request. + public var logGroupIdentifier: Swift.String? + /// The data protection policy used for this log group. + public var policyDocument: Swift.String? public init( - success: Swift.Bool = false + lastUpdatedTime: Swift.Int? = nil, + logGroupIdentifier: Swift.String? = nil, + policyDocument: Swift.String? = nil ) { - self.success = success + self.lastUpdatedTime = lastUpdatedTime + self.logGroupIdentifier = logGroupIdentifier + self.policyDocument = policyDocument } } -@available(*, deprecated, message: "Please use the generic tagging API model TagResourceRequest") -public struct TagLogGroupInput: Swift.Sendable { - /// The name of the log group. +public struct PutDeliveryDestinationInput: Swift.Sendable { + /// A structure that contains the ARN of the Amazon Web Services resource that will receive the logs. /// This member is required. - public var logGroupName: Swift.String? - /// The key-value pairs to use for the tags. + public var deliveryDestinationConfiguration: CloudWatchLogsClientTypes.DeliveryDestinationConfiguration? + /// A name for this delivery destination. This name must be unique for all delivery destinations in your account. /// This member is required. + public var name: Swift.String? + /// The format for the logs that this delivery destination will receive. + public var outputFormat: CloudWatchLogsClientTypes.OutputFormat? + /// An optional list of key-value pairs to associate with the resource. For more information about tagging, see [Tagging Amazon Web Services resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) public var tags: [Swift.String: Swift.String]? public init( - logGroupName: Swift.String? = nil, + deliveryDestinationConfiguration: CloudWatchLogsClientTypes.DeliveryDestinationConfiguration? = nil, + name: Swift.String? = nil, + outputFormat: CloudWatchLogsClientTypes.OutputFormat? = nil, tags: [Swift.String: Swift.String]? = nil ) { - self.logGroupName = logGroupName + self.deliveryDestinationConfiguration = deliveryDestinationConfiguration + self.name = name + self.outputFormat = outputFormat self.tags = tags } } -/// A resource can have no more than 50 tags. -public struct TooManyTagsException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - - public struct Properties { - public internal(set) var message: Swift.String? = nil - /// The name of the resource. - public internal(set) var resourceName: Swift.String? = nil +public struct PutDeliveryDestinationOutput: Swift.Sendable { + /// A structure containing information about the delivery destination that you just created or updated. + public var deliveryDestination: CloudWatchLogsClientTypes.DeliveryDestination? + + public init( + deliveryDestination: CloudWatchLogsClientTypes.DeliveryDestination? = nil + ) + { + self.deliveryDestination = deliveryDestination } +} - public internal(set) var properties = Properties() - public static var typeName: Swift.String { "TooManyTagsException" } - public static var fault: ClientRuntime.ErrorFault { .client } - public static var isRetryable: Swift.Bool { false } - public static var isThrottling: Swift.Bool { false } - public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() - public internal(set) var message: Swift.String? - public internal(set) var requestID: Swift.String? +public struct PutDeliveryDestinationPolicyInput: Swift.Sendable { + /// The name of the delivery destination to assign this policy to. + /// This member is required. + public var deliveryDestinationName: Swift.String? + /// The contents of the policy. + /// This member is required. + public var deliveryDestinationPolicy: Swift.String? public init( - message: Swift.String? = nil, - resourceName: Swift.String? = nil + deliveryDestinationName: Swift.String? = nil, + deliveryDestinationPolicy: Swift.String? = nil ) { - self.properties.message = message - self.properties.resourceName = resourceName + self.deliveryDestinationName = deliveryDestinationName + self.deliveryDestinationPolicy = deliveryDestinationPolicy } } -public struct TagResourceInput: Swift.Sendable { - /// The ARN of the resource that you're adding tags to. The ARN format of a log group is arn:aws:logs:Region:account-id:log-group:log-group-name The ARN format of a destination is arn:aws:logs:Region:account-id:destination:destination-name For more information about ARN format, see [CloudWatch Logs resources and operations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html). +public struct PutDeliveryDestinationPolicyOutput: Swift.Sendable { + /// The contents of the policy that you just created. + public var policy: CloudWatchLogsClientTypes.Policy? + + public init( + policy: CloudWatchLogsClientTypes.Policy? = nil + ) + { + self.policy = policy + } +} + +public struct PutDeliverySourceInput: Swift.Sendable { + /// Defines the type of log that the source is sending. + /// + /// * For Amazon Bedrock, the valid value is APPLICATION_LOGS. + /// + /// * For Amazon CodeWhisperer, the valid value is EVENT_LOGS. + /// + /// * For IAM Identity Center, the valid value is ERROR_LOGS. + /// + /// * For Amazon WorkMail, the valid values are ACCESS_CONTROL_LOGS, AUTHENTICATION_LOGS, WORKMAIL_AVAILABILITY_PROVIDER_LOGS, and WORKMAIL_MAILBOX_ACCESS_LOGS. /// This member is required. - public var resourceArn: Swift.String? - /// The list of key-value pairs to associate with the resource. + public var logType: Swift.String? + /// A name for this delivery source. This name must be unique for all delivery sources in your account. + /// This member is required. + public var name: Swift.String? + /// The ARN of the Amazon Web Services resource that is generating and sending logs. For example, arn:aws:workmail:us-east-1:123456789012:organization/m-1234EXAMPLEabcd1234abcd1234abcd1234 /// This member is required. + public var resourceArn: Swift.String? + /// An optional list of key-value pairs to associate with the resource. For more information about tagging, see [Tagging Amazon Web Services resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) public var tags: [Swift.String: Swift.String]? public init( + logType: Swift.String? = nil, + name: Swift.String? = nil, resourceArn: Swift.String? = nil, tags: [Swift.String: Swift.String]? = nil ) { + self.logType = logType + self.name = name self.resourceArn = resourceArn self.tags = tags } } -public struct TestMetricFilterInput: Swift.Sendable { - /// A symbolic description of how CloudWatch Logs should interpret the data in each log event. For example, a log event can contain timestamps, IP addresses, strings, and so on. You use the filter pattern to specify what to look for in the log event message. - /// This member is required. - public var filterPattern: Swift.String? - /// The log event messages to test. - /// This member is required. - public var logEventMessages: [Swift.String]? +public struct PutDeliverySourceOutput: Swift.Sendable { + /// A structure containing information about the delivery source that was just created or updated. + public var deliverySource: CloudWatchLogsClientTypes.DeliverySource? public init( - filterPattern: Swift.String? = nil, - logEventMessages: [Swift.String]? = nil + deliverySource: CloudWatchLogsClientTypes.DeliverySource? = nil ) { - self.filterPattern = filterPattern - self.logEventMessages = logEventMessages + self.deliverySource = deliverySource } } -extension CloudWatchLogsClientTypes { - - /// Represents a matched event. - public struct MetricFilterMatchRecord: Swift.Sendable { - /// The raw event data. - public var eventMessage: Swift.String? - /// The event number. - public var eventNumber: Swift.Int - /// The values extracted from the event data by the filter. - public var extractedValues: [Swift.String: Swift.String]? +public struct PutDestinationInput: Swift.Sendable { + /// A name for the destination. + /// This member is required. + public var destinationName: Swift.String? + /// The ARN of an IAM role that grants CloudWatch Logs permissions to call the Amazon Kinesis PutRecord operation on the destination stream. + /// This member is required. + public var roleArn: Swift.String? + /// An optional list of key-value pairs to associate with the resource. For more information about tagging, see [Tagging Amazon Web Services resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + public var tags: [Swift.String: Swift.String]? + /// The ARN of an Amazon Kinesis stream to which to deliver matching log events. + /// This member is required. + public var targetArn: Swift.String? - public init( - eventMessage: Swift.String? = nil, - eventNumber: Swift.Int = 0, - extractedValues: [Swift.String: Swift.String]? = nil - ) - { - self.eventMessage = eventMessage - self.eventNumber = eventNumber - self.extractedValues = extractedValues - } + public init( + destinationName: Swift.String? = nil, + roleArn: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil, + targetArn: Swift.String? = nil + ) + { + self.destinationName = destinationName + self.roleArn = roleArn + self.tags = tags + self.targetArn = targetArn } } -public struct TestMetricFilterOutput: Swift.Sendable { - /// The matched events. - public var matches: [CloudWatchLogsClientTypes.MetricFilterMatchRecord]? +public struct PutDestinationOutput: Swift.Sendable { + /// The destination. + public var destination: CloudWatchLogsClientTypes.Destination? public init( - matches: [CloudWatchLogsClientTypes.MetricFilterMatchRecord]? = nil + destination: CloudWatchLogsClientTypes.Destination? = nil ) { - self.matches = matches + self.destination = destination } } -@available(*, deprecated, message: "Please use the generic tagging API model UntagResourceRequest") -public struct UntagLogGroupInput: Swift.Sendable { - /// The name of the log group. +public struct PutDestinationPolicyInput: Swift.Sendable { + /// An IAM policy document that authorizes cross-account users to deliver their log events to the associated destination. This can be up to 5120 bytes. /// This member is required. - public var logGroupName: Swift.String? - /// The tag keys. The corresponding tags are removed from the log group. + public var accessPolicy: Swift.String? + /// A name for an existing destination. /// This member is required. - public var tags: [Swift.String]? + public var destinationName: Swift.String? + /// Specify true if you are updating an existing destination policy to grant permission to an organization ID instead of granting permission to individual Amazon Web Services accounts. Before you update a destination policy this way, you must first update the subscription filters in the accounts that send logs to this destination. If you do not, the subscription filters might stop working. By specifying true for forceUpdate, you are affirming that you have already updated the subscription filters. For more information, see [ Updating an existing cross-account subscription](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Cross-Account-Log_Subscription-Update.html) If you omit this parameter, the default of false is used. + public var forceUpdate: Swift.Bool? public init( - logGroupName: Swift.String? = nil, - tags: [Swift.String]? = nil + accessPolicy: Swift.String? = nil, + destinationName: Swift.String? = nil, + forceUpdate: Swift.Bool? = nil ) { - self.logGroupName = logGroupName - self.tags = tags + self.accessPolicy = accessPolicy + self.destinationName = destinationName + self.forceUpdate = forceUpdate } } -public struct UntagResourceInput: Swift.Sendable { - /// The ARN of the CloudWatch Logs resource that you're removing tags from. The ARN format of a log group is arn:aws:logs:Region:account-id:log-group:log-group-name The ARN format of a destination is arn:aws:logs:Region:account-id:destination:destination-name For more information about ARN format, see [CloudWatch Logs resources and operations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html). +public struct PutIndexPolicyInput: Swift.Sendable { + /// Specify either the log group name or log group ARN to apply this field index policy to. If you specify an ARN, use the format arn:aws:logs:region:account-id:log-group:log_group_name Don't include an * at the end. /// This member is required. - public var resourceArn: Swift.String? - /// The list of tag keys to remove from the resource. + public var logGroupIdentifier: Swift.String? + /// The index policy document, in JSON format. The following is an example of an index policy document that creates two indexes, RequestId and TransactionId. "policyDocument": "{ "Fields": [ "RequestId", "TransactionId" ] }" The policy document must include at least one field index. For more information about the fields that can be included and other restrictions, see [Field index syntax and quotas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Field-Indexing-Syntax.html). /// This member is required. - public var tagKeys: [Swift.String]? + public var policyDocument: Swift.String? public init( - resourceArn: Swift.String? = nil, - tagKeys: [Swift.String]? = nil + logGroupIdentifier: Swift.String? = nil, + policyDocument: Swift.String? = nil ) { - self.resourceArn = resourceArn - self.tagKeys = tagKeys + self.logGroupIdentifier = logGroupIdentifier + self.policyDocument = policyDocument } } -extension CloudWatchLogsClientTypes { - - public enum SuppressionUnit: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { - case hours - case minutes - case seconds - case sdkUnknown(Swift.String) - - public static var allCases: [SuppressionUnit] { - return [ - .hours, - .minutes, - .seconds - ] - } - - public init?(rawValue: Swift.String) { - let value = Self.allCases.first(where: { $0.rawValue == rawValue }) - self = value ?? Self.sdkUnknown(rawValue) - } +public struct PutIndexPolicyOutput: Swift.Sendable { + /// The index policy that you just created or updated. + public var indexPolicy: CloudWatchLogsClientTypes.IndexPolicy? - public var rawValue: Swift.String { - switch self { - case .hours: return "HOURS" - case .minutes: return "MINUTES" - case .seconds: return "SECONDS" - case let .sdkUnknown(s): return s - } - } + public init( + indexPolicy: CloudWatchLogsClientTypes.IndexPolicy? = nil + ) + { + self.indexPolicy = indexPolicy } } -extension CloudWatchLogsClientTypes { - - /// If you are suppressing an anomaly temporariliy, this structure defines how long the suppression period is to be. - public struct SuppressionPeriod: Swift.Sendable { - /// Specifies whether the value of value is in seconds, minutes, or hours. - public var suppressionUnit: CloudWatchLogsClientTypes.SuppressionUnit? - /// Specifies the number of seconds, minutes or hours to suppress this anomaly. There is no maximum. - public var value: Swift.Int +/// The most likely cause is an Amazon Web Services access key ID or secret key that's not valid. +public struct UnrecognizedClientException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - public init( - suppressionUnit: CloudWatchLogsClientTypes.SuppressionUnit? = nil, - value: Swift.Int = 0 - ) - { - self.suppressionUnit = suppressionUnit - self.value = value - } + public struct Properties { + public internal(set) var message: Swift.String? = nil } -} -extension CloudWatchLogsClientTypes { + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "UnrecognizedClientException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? - public enum SuppressionType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { - case infinite - case limited - case sdkUnknown(Swift.String) + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} - public static var allCases: [SuppressionType] { - return [ - .infinite, - .limited - ] - } +public struct PutLogEventsInput: Swift.Sendable { + /// The entity associated with the log events. + public var entity: CloudWatchLogsClientTypes.Entity? + /// The log events. + /// This member is required. + public var logEvents: [CloudWatchLogsClientTypes.InputLogEvent]? + /// The name of the log group. + /// This member is required. + public var logGroupName: Swift.String? + /// The name of the log stream. + /// This member is required. + public var logStreamName: Swift.String? + /// The sequence token obtained from the response of the previous PutLogEvents call. The sequenceToken parameter is now ignored in PutLogEvents actions. PutLogEvents actions are now accepted and never return InvalidSequenceTokenException or DataAlreadyAcceptedException even if the sequence token is not valid. + public var sequenceToken: Swift.String? - public init?(rawValue: Swift.String) { - let value = Self.allCases.first(where: { $0.rawValue == rawValue }) - self = value ?? Self.sdkUnknown(rawValue) - } + public init( + entity: CloudWatchLogsClientTypes.Entity? = nil, + logEvents: [CloudWatchLogsClientTypes.InputLogEvent]? = nil, + logGroupName: Swift.String? = nil, + logStreamName: Swift.String? = nil, + sequenceToken: Swift.String? = nil + ) + { + self.entity = entity + self.logEvents = logEvents + self.logGroupName = logGroupName + self.logStreamName = logStreamName + self.sequenceToken = sequenceToken + } +} - public var rawValue: Swift.String { - switch self { - case .infinite: return "INFINITE" - case .limited: return "LIMITED" - case let .sdkUnknown(s): return s - } +extension CloudWatchLogsClientTypes { + + /// If an entity is rejected when a PutLogEvents request was made, this includes details about the reason for the rejection. + public struct RejectedEntityInfo: Swift.Sendable { + /// The type of error that caused the rejection of the entity when calling PutLogEvents. + /// This member is required. + public var errorType: CloudWatchLogsClientTypes.EntityRejectionErrorType? + + public init( + errorType: CloudWatchLogsClientTypes.EntityRejectionErrorType? = nil + ) + { + self.errorType = errorType } } } -public struct UpdateAnomalyInput: Swift.Sendable { - /// The ARN of the anomaly detector that this operation is to act on. - /// This member is required. - public var anomalyDetectorArn: Swift.String? - /// If you are suppressing or unsuppressing an anomaly, specify its unique ID here. You can find anomaly IDs by using the [ListAnomalies](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListAnomalies.html) operation. - public var anomalyId: Swift.String? - /// Set this to true to prevent CloudWatch Logs from displaying this behavior as an anomaly in the future. The behavior is then treated as baseline behavior. However, if similar but more severe occurrences of this behavior occur in the future, those will still be reported as anomalies. The default is false - public var baseline: Swift.Bool? - /// If you are suppressing or unsuppressing an pattern, specify its unique ID here. You can find pattern IDs by using the [ListAnomalies](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListAnomalies.html) operation. - public var patternId: Swift.String? - /// If you are temporarily suppressing an anomaly or pattern, use this structure to specify how long the suppression is to last. - public var suppressionPeriod: CloudWatchLogsClientTypes.SuppressionPeriod? - /// Use this to specify whether the suppression to be temporary or infinite. If you specify LIMITED, you must also specify a suppressionPeriod. If you specify INFINITE, any value for suppressionPeriod is ignored. - public var suppressionType: CloudWatchLogsClientTypes.SuppressionType? +extension CloudWatchLogsClientTypes { - public init( - anomalyDetectorArn: Swift.String? = nil, - anomalyId: Swift.String? = nil, - baseline: Swift.Bool? = nil, - patternId: Swift.String? = nil, - suppressionPeriod: CloudWatchLogsClientTypes.SuppressionPeriod? = nil, - suppressionType: CloudWatchLogsClientTypes.SuppressionType? = nil - ) - { - self.anomalyDetectorArn = anomalyDetectorArn - self.anomalyId = anomalyId - self.baseline = baseline - self.patternId = patternId - self.suppressionPeriod = suppressionPeriod - self.suppressionType = suppressionType + /// Represents the rejected events. + public struct RejectedLogEventsInfo: Swift.Sendable { + /// The expired log events. + public var expiredLogEventEndIndex: Swift.Int? + /// The index of the first log event that is too new. This field is inclusive. + public var tooNewLogEventStartIndex: Swift.Int? + /// The index of the last log event that is too old. This field is exclusive. + public var tooOldLogEventEndIndex: Swift.Int? + + public init( + expiredLogEventEndIndex: Swift.Int? = nil, + tooNewLogEventStartIndex: Swift.Int? = nil, + tooOldLogEventEndIndex: Swift.Int? = nil + ) + { + self.expiredLogEventEndIndex = expiredLogEventEndIndex + self.tooNewLogEventStartIndex = tooNewLogEventStartIndex + self.tooOldLogEventEndIndex = tooOldLogEventEndIndex + } } } -public struct UpdateDeliveryConfigurationInput: Swift.Sendable { - /// The field delimiter to use between record fields when the final output format of a delivery is in Plain, W3C, or Raw format. - public var fieldDelimiter: Swift.String? - /// The ID of the delivery to be updated by this request. - /// This member is required. - public var id: Swift.String? - /// The list of record fields to be delivered to the destination, in order. If the delivery's log source has mandatory fields, they must be included in this list. - public var recordFields: [Swift.String]? - /// This structure contains parameters that are valid only when the delivery's delivery destination is an S3 bucket. - public var s3DeliveryConfiguration: CloudWatchLogsClientTypes.S3DeliveryConfiguration? +public struct PutLogEventsOutput: Swift.Sendable { + /// The next sequence token. This field has been deprecated. The sequence token is now ignored in PutLogEvents actions. PutLogEvents actions are always accepted even if the sequence token is not valid. You can use parallel PutLogEvents actions on the same log stream and you do not need to wait for the response of a previous PutLogEvents action to obtain the nextSequenceToken value. + public var nextSequenceToken: Swift.String? + /// Information about why the entity is rejected when calling PutLogEvents. Only returned when the entity is rejected. When the entity is rejected, the events may still be accepted. + public var rejectedEntityInfo: CloudWatchLogsClientTypes.RejectedEntityInfo? + /// The rejected events. + public var rejectedLogEventsInfo: CloudWatchLogsClientTypes.RejectedLogEventsInfo? public init( - fieldDelimiter: Swift.String? = nil, - id: Swift.String? = nil, - recordFields: [Swift.String]? = nil, - s3DeliveryConfiguration: CloudWatchLogsClientTypes.S3DeliveryConfiguration? = nil + nextSequenceToken: Swift.String? = nil, + rejectedEntityInfo: CloudWatchLogsClientTypes.RejectedEntityInfo? = nil, + rejectedLogEventsInfo: CloudWatchLogsClientTypes.RejectedLogEventsInfo? = nil ) { - self.fieldDelimiter = fieldDelimiter - self.id = id - self.recordFields = recordFields - self.s3DeliveryConfiguration = s3DeliveryConfiguration + self.nextSequenceToken = nextSequenceToken + self.rejectedEntityInfo = rejectedEntityInfo + self.rejectedLogEventsInfo = rejectedLogEventsInfo } } -public struct UpdateDeliveryConfigurationOutput: Swift.Sendable { - - public init() { } -} - -public struct UpdateLogAnomalyDetectorInput: Swift.Sendable { - /// The ARN of the anomaly detector that you want to update. +public struct PutMetricFilterInput: Swift.Sendable { + /// This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html). If the log group uses either a log-group level or account-level transformer, and you specify true, the metric filter will be applied on the transformed version of the log events instead of the original ingested log events. + public var applyOnTransformedLogs: Swift.Bool? + /// A name for the metric filter. /// This member is required. - public var anomalyDetectorArn: Swift.String? - /// The number of days to use as the life cycle of anomalies. After this time, anomalies are automatically baselined and the anomaly detector model will treat new occurrences of similar event as normal. Therefore, if you do not correct the cause of an anomaly during this time, it will be considered normal going forward and will not be detected. - public var anomalyVisibilityTime: Swift.Int? - /// Use this parameter to pause or restart the anomaly detector. + public var filterName: Swift.String? + /// A filter pattern for extracting metric data out of ingested log events. /// This member is required. - public var enabled: Swift.Bool? - /// Specifies how often the anomaly detector runs and look for anomalies. Set this value according to the frequency that the log group receives new logs. For example, if the log group receives new log events every 10 minutes, then setting evaluationFrequency to FIFTEEN_MIN might be appropriate. - public var evaluationFrequency: CloudWatchLogsClientTypes.EvaluationFrequency? - /// A symbolic description of how CloudWatch Logs should interpret the data in each log event. For example, a log event can contain timestamps, IP addresses, strings, and so on. You use the filter pattern to specify what to look for in the log event message. public var filterPattern: Swift.String? + /// The name of the log group. + /// This member is required. + public var logGroupName: Swift.String? + /// A collection of information that defines how metric data gets emitted. + /// This member is required. + public var metricTransformations: [CloudWatchLogsClientTypes.MetricTransformation]? public init( - anomalyDetectorArn: Swift.String? = nil, - anomalyVisibilityTime: Swift.Int? = nil, - enabled: Swift.Bool? = nil, - evaluationFrequency: CloudWatchLogsClientTypes.EvaluationFrequency? = nil, - filterPattern: Swift.String? = nil + applyOnTransformedLogs: Swift.Bool? = false, + filterName: Swift.String? = nil, + filterPattern: Swift.String? = nil, + logGroupName: Swift.String? = nil, + metricTransformations: [CloudWatchLogsClientTypes.MetricTransformation]? = nil ) { - self.anomalyDetectorArn = anomalyDetectorArn - self.anomalyVisibilityTime = anomalyVisibilityTime - self.enabled = enabled - self.evaluationFrequency = evaluationFrequency + self.applyOnTransformedLogs = applyOnTransformedLogs + self.filterName = filterName self.filterPattern = filterPattern + self.logGroupName = logGroupName + self.metricTransformations = metricTransformations } } -extension AssociateKmsKeyInput { +public struct PutQueryDefinitionInput: Swift.Sendable { + /// Used as an idempotency token, to avoid returning an exception if the service receives the same request twice because of a network error. + public var clientToken: Swift.String? + /// Use this parameter to include specific log groups as part of your query definition. If you are updating a query definition and you omit this parameter, then the updated definition will contain no log groups. + public var logGroupNames: [Swift.String]? + /// A name for the query definition. If you are saving numerous query definitions, we recommend that you name them. This way, you can find the ones you want by using the first part of the name as a filter in the queryDefinitionNamePrefix parameter of [DescribeQueryDefinitions](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeQueryDefinitions.html). + /// This member is required. + public var name: Swift.String? + /// If you are updating a query definition, use this parameter to specify the ID of the query definition that you want to update. You can use [DescribeQueryDefinitions](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeQueryDefinitions.html) to retrieve the IDs of your saved query definitions. If you are creating a query definition, do not specify this parameter. CloudWatch generates a unique ID for the new query definition and include it in the response to this operation. + public var queryDefinitionId: Swift.String? + /// The query string to use for this definition. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). + /// This member is required. + public var queryString: Swift.String? - static func urlPathProvider(_ value: AssociateKmsKeyInput) -> Swift.String? { - return "/" + public init( + clientToken: Swift.String? = nil, + logGroupNames: [Swift.String]? = nil, + name: Swift.String? = nil, + queryDefinitionId: Swift.String? = nil, + queryString: Swift.String? = nil + ) + { + self.clientToken = clientToken + self.logGroupNames = logGroupNames + self.name = name + self.queryDefinitionId = queryDefinitionId + self.queryString = queryString } } -extension CancelExportTaskInput { +public struct PutQueryDefinitionOutput: Swift.Sendable { + /// The ID of the query definition. + public var queryDefinitionId: Swift.String? - static func urlPathProvider(_ value: CancelExportTaskInput) -> Swift.String? { - return "/" + public init( + queryDefinitionId: Swift.String? = nil + ) + { + self.queryDefinitionId = queryDefinitionId } } -extension CreateDeliveryInput { +public struct PutResourcePolicyInput: Swift.Sendable { + /// Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. This parameter is required. The following example creates a resource policy enabling the Route 53 service to put DNS query logs in to the specified log group. Replace "logArn" with the ARN of your CloudWatch Logs resource, such as a log group or log stream. CloudWatch Logs also supports [aws:SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) and [aws:SourceAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) condition context keys. In the example resource policy, you would replace the value of SourceArn with the resource making the call from Route 53 to CloudWatch Logs. You would also replace the value of SourceAccount with the Amazon Web Services account ID making that call. { "Version": "2012-10-17", "Statement": [ { "Sid": "Route53LogsToCloudWatchLogs", "Effect": "Allow", "Principal": { "Service": [ "route53.amazonaws.com" ] }, "Action": "logs:PutLogEvents", "Resource": "logArn", "Condition": { "ArnLike": { "aws:SourceArn": "myRoute53ResourceArn" }, "StringEquals": { "aws:SourceAccount": "myAwsAccountId" } } } ] } + public var policyDocument: Swift.String? + /// Name of the new policy. This parameter is required. + public var policyName: Swift.String? - static func urlPathProvider(_ value: CreateDeliveryInput) -> Swift.String? { - return "/" + public init( + policyDocument: Swift.String? = nil, + policyName: Swift.String? = nil + ) + { + self.policyDocument = policyDocument + self.policyName = policyName } } -extension CreateExportTaskInput { +public struct PutResourcePolicyOutput: Swift.Sendable { + /// The new policy. + public var resourcePolicy: CloudWatchLogsClientTypes.ResourcePolicy? - static func urlPathProvider(_ value: CreateExportTaskInput) -> Swift.String? { - return "/" + public init( + resourcePolicy: CloudWatchLogsClientTypes.ResourcePolicy? = nil + ) + { + self.resourcePolicy = resourcePolicy } } -extension CreateLogAnomalyDetectorInput { +public struct PutRetentionPolicyInput: Swift.Sendable { + /// The name of the log group. + /// This member is required. + public var logGroupName: Swift.String? + /// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). + /// This member is required. + public var retentionInDays: Swift.Int? - static func urlPathProvider(_ value: CreateLogAnomalyDetectorInput) -> Swift.String? { - return "/" + public init( + logGroupName: Swift.String? = nil, + retentionInDays: Swift.Int? = nil + ) + { + self.logGroupName = logGroupName + self.retentionInDays = retentionInDays } } -extension CreateLogGroupInput { +public struct PutSubscriptionFilterInput: Swift.Sendable { + /// This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html). If the log group uses either a log-group level or account-level transformer, and you specify true, the subscription filter will be applied on the transformed version of the log events instead of the original ingested log events. + public var applyOnTransformedLogs: Swift.Bool? + /// The ARN of the destination to deliver matching log events to. Currently, the supported destinations are: + /// + /// * An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery. + /// + /// * A logical destination (specified using an ARN) belonging to a different account, for cross-account delivery. If you're setting up a cross-account subscription, the destination must have an IAM policy associated with it. The IAM policy must allow the sender to send logs to the destination. For more information, see [PutDestinationPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestinationPolicy.html). + /// + /// * A Kinesis Data Firehose delivery stream belonging to the same account as the subscription filter, for same-account delivery. + /// + /// * A Lambda function belonging to the same account as the subscription filter, for same-account delivery. + /// This member is required. + public var destinationArn: Swift.String? + /// The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis data stream. + public var distribution: CloudWatchLogsClientTypes.Distribution? + /// A name for the subscription filter. If you are updating an existing filter, you must specify the correct name in filterName. To find the name of the filter currently associated with a log group, use [DescribeSubscriptionFilters](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeSubscriptionFilters.html). + /// This member is required. + public var filterName: Swift.String? + /// A filter pattern for subscribing to a filtered stream of log events. + /// This member is required. + public var filterPattern: Swift.String? + /// The name of the log group. + /// This member is required. + public var logGroupName: Swift.String? + /// The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + public var roleArn: Swift.String? - static func urlPathProvider(_ value: CreateLogGroupInput) -> Swift.String? { - return "/" + public init( + applyOnTransformedLogs: Swift.Bool? = false, + destinationArn: Swift.String? = nil, + distribution: CloudWatchLogsClientTypes.Distribution? = nil, + filterName: Swift.String? = nil, + filterPattern: Swift.String? = nil, + logGroupName: Swift.String? = nil, + roleArn: Swift.String? = nil + ) + { + self.applyOnTransformedLogs = applyOnTransformedLogs + self.destinationArn = destinationArn + self.distribution = distribution + self.filterName = filterName + self.filterPattern = filterPattern + self.logGroupName = logGroupName + self.roleArn = roleArn } } -extension CreateLogStreamInput { +public struct PutTransformerInput: Swift.Sendable { + /// Specify either the name or ARN of the log group to create the transformer for. + /// This member is required. + public var logGroupIdentifier: Swift.String? + /// This structure contains the configuration of this log transformer. A log transformer is an array of processors, where each processor applies one type of transformation to the log events that are ingested. + /// This member is required. + public var transformerConfig: [CloudWatchLogsClientTypes.Processor]? - static func urlPathProvider(_ value: CreateLogStreamInput) -> Swift.String? { - return "/" + public init( + logGroupIdentifier: Swift.String? = nil, + transformerConfig: [CloudWatchLogsClientTypes.Processor]? = nil + ) + { + self.logGroupIdentifier = logGroupIdentifier + self.transformerConfig = transformerConfig } } -extension DeleteAccountPolicyInput { +public struct StartLiveTailInput: Swift.Sendable { + /// An optional pattern to use to filter the results to include only log events that match the pattern. For example, a filter pattern of error 404 causes only log events that include both error and 404 to be included in the Live Tail stream. Regular expression filter patterns are supported. For more information about filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + public var logEventFilterPattern: Swift.String? + /// An array where each item in the array is a log group to include in the Live Tail session. Specify each log group by its ARN. If you specify an ARN, the ARN can't end with an asterisk (*). You can include up to 10 log groups. + /// This member is required. + public var logGroupIdentifiers: [Swift.String]? + /// If you specify this parameter, then only log events in the log streams that have names that start with the prefixes that you specify here are included in the Live Tail session. If you specify this field, you can't also specify the logStreamNames field. You can specify this parameter only if you specify only one log group in logGroupIdentifiers. + public var logStreamNamePrefixes: [Swift.String]? + /// If you specify this parameter, then only log events in the log streams that you specify here are included in the Live Tail session. If you specify this field, you can't also specify the logStreamNamePrefixes field. You can specify this parameter only if you specify only one log group in logGroupIdentifiers. + public var logStreamNames: [Swift.String]? - static func urlPathProvider(_ value: DeleteAccountPolicyInput) -> Swift.String? { - return "/" + public init( + logEventFilterPattern: Swift.String? = nil, + logGroupIdentifiers: [Swift.String]? = nil, + logStreamNamePrefixes: [Swift.String]? = nil, + logStreamNames: [Swift.String]? = nil + ) + { + self.logEventFilterPattern = logEventFilterPattern + self.logGroupIdentifiers = logGroupIdentifiers + self.logStreamNamePrefixes = logStreamNamePrefixes + self.logStreamNames = logStreamNames } } -extension DeleteDataProtectionPolicyInput { +/// his exception is returned if an unknown error occurs during a Live Tail session. +public struct SessionStreamingException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - static func urlPathProvider(_ value: DeleteDataProtectionPolicyInput) -> Swift.String? { - return "/" + public struct Properties { + public internal(set) var message: Swift.String? = nil } -} -extension DeleteDeliveryInput { + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "SessionStreamingException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? - static func urlPathProvider(_ value: DeleteDeliveryInput) -> Swift.String? { - return "/" + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message } } -extension DeleteDeliveryDestinationInput { +/// This exception is returned in a Live Tail stream when the Live Tail session times out. Live Tail sessions time out after three hours. +public struct SessionTimeoutException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - static func urlPathProvider(_ value: DeleteDeliveryDestinationInput) -> Swift.String? { - return "/" + public struct Properties { + public internal(set) var message: Swift.String? = nil } -} -extension DeleteDeliveryDestinationPolicyInput { + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "SessionTimeoutException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? - static func urlPathProvider(_ value: DeleteDeliveryDestinationPolicyInput) -> Swift.String? { - return "/" + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message } } -extension DeleteDeliverySourceInput { +extension CloudWatchLogsClientTypes { - static func urlPathProvider(_ value: DeleteDeliverySourceInput) -> Swift.String? { - return "/" + /// This object includes the stream returned by your [StartLiveTail](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartLiveTail.html) request. + public enum StartLiveTailResponseStream: Swift.Sendable { + /// This object contains information about this Live Tail session, including the log groups included and the log stream filters, if any. + case sessionstart(CloudWatchLogsClientTypes.LiveTailSessionStart) + /// This object contains the log events and session metadata. + case sessionupdate(CloudWatchLogsClientTypes.LiveTailSessionUpdate) + case sdkUnknown(Swift.String) } } -extension DeleteDestinationInput { +public struct StartLiveTailOutput: Swift.Sendable { + /// An object that includes the stream returned by your request. It can include both log events and exceptions. + public var responseStream: AsyncThrowingStream? - static func urlPathProvider(_ value: DeleteDestinationInput) -> Swift.String? { - return "/" + public init( + responseStream: AsyncThrowingStream? = nil + ) + { + self.responseStream = responseStream } } -extension DeleteLogAnomalyDetectorInput { - - static func urlPathProvider(_ value: DeleteLogAnomalyDetectorInput) -> Swift.String? { - return "/" - } -} +extension CloudWatchLogsClientTypes { -extension DeleteLogGroupInput { + /// Reserved. + public struct QueryCompileErrorLocation: Swift.Sendable { + /// Reserved. + public var endCharOffset: Swift.Int? + /// Reserved. + public var startCharOffset: Swift.Int? - static func urlPathProvider(_ value: DeleteLogGroupInput) -> Swift.String? { - return "/" + public init( + endCharOffset: Swift.Int? = nil, + startCharOffset: Swift.Int? = nil + ) + { + self.endCharOffset = endCharOffset + self.startCharOffset = startCharOffset + } } } -extension DeleteLogStreamInput { +extension CloudWatchLogsClientTypes { - static func urlPathProvider(_ value: DeleteLogStreamInput) -> Swift.String? { - return "/" + /// Reserved. + public struct QueryCompileError: Swift.Sendable { + /// Reserved. + public var location: CloudWatchLogsClientTypes.QueryCompileErrorLocation? + /// Reserved. + public var message: Swift.String? + + public init( + location: CloudWatchLogsClientTypes.QueryCompileErrorLocation? = nil, + message: Swift.String? = nil + ) + { + self.location = location + self.message = message + } } } -extension DeleteMetricFilterInput { +/// The query string is not valid. Details about this error are displayed in a QueryCompileError object. For more information, see [QueryCompileError](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_QueryCompileError.html). For more information about valid query syntax, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). +public struct MalformedQueryException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - static func urlPathProvider(_ value: DeleteMetricFilterInput) -> Swift.String? { - return "/" + public struct Properties { + public internal(set) var message: Swift.String? = nil + /// Reserved. + public internal(set) var queryCompileError: CloudWatchLogsClientTypes.QueryCompileError? = nil } -} -extension DeleteQueryDefinitionInput { + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "MalformedQueryException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? - static func urlPathProvider(_ value: DeleteQueryDefinitionInput) -> Swift.String? { - return "/" + public init( + message: Swift.String? = nil, + queryCompileError: CloudWatchLogsClientTypes.QueryCompileError? = nil + ) + { + self.properties.message = message + self.properties.queryCompileError = queryCompileError } } -extension DeleteResourcePolicyInput { +public struct StartQueryInput: Swift.Sendable { + /// The end of the time range to query. The range is inclusive, so the specified end time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC. + /// This member is required. + public var endTime: Swift.Int? + /// The maximum number of log events to return in the query. If the query string uses the fields command, only the specified fields and their values are returned. The default is 10,000. + public var limit: Swift.Int? + /// The list of log groups to query. You can include up to 50 log groups. You can specify them by the log group name or ARN. If a log group that you're querying is in a source account and you're using a monitoring account, you must specify the ARN of the log group here. The query definition must also be defined in the monitoring account. If you specify an ARN, use the format arn:aws:logs:region:account-id:log-group:log_group_name Don't include an * at the end. A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames, or logGroupIdentifiers. + public var logGroupIdentifiers: [Swift.String]? + /// The log group on which to perform the query. + public var logGroupName: Swift.String? + /// The list of log groups to be queried. You can include up to 50 log groups. + public var logGroupNames: [Swift.String]? + /// The query string to use. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). + /// This member is required. + public var queryString: Swift.String? + /// The beginning of the time range to query. The range is inclusive, so the specified start time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC. + /// This member is required. + public var startTime: Swift.Int? - static func urlPathProvider(_ value: DeleteResourcePolicyInput) -> Swift.String? { - return "/" + public init( + endTime: Swift.Int? = nil, + limit: Swift.Int? = nil, + logGroupIdentifiers: [Swift.String]? = nil, + logGroupName: Swift.String? = nil, + logGroupNames: [Swift.String]? = nil, + queryString: Swift.String? = nil, + startTime: Swift.Int? = nil + ) + { + self.endTime = endTime + self.limit = limit + self.logGroupIdentifiers = logGroupIdentifiers + self.logGroupName = logGroupName + self.logGroupNames = logGroupNames + self.queryString = queryString + self.startTime = startTime } } -extension DeleteRetentionPolicyInput { - - static func urlPathProvider(_ value: DeleteRetentionPolicyInput) -> Swift.String? { - return "/" - } -} - -extension DeleteSubscriptionFilterInput { +public struct StartQueryOutput: Swift.Sendable { + /// The unique ID of the query. + public var queryId: Swift.String? - static func urlPathProvider(_ value: DeleteSubscriptionFilterInput) -> Swift.String? { - return "/" + public init( + queryId: Swift.String? = nil + ) + { + self.queryId = queryId } } -extension DescribeAccountPoliciesInput { +public struct StopQueryInput: Swift.Sendable { + /// The ID number of the query to stop. To find this ID number, use DescribeQueries. + /// This member is required. + public var queryId: Swift.String? - static func urlPathProvider(_ value: DescribeAccountPoliciesInput) -> Swift.String? { - return "/" + public init( + queryId: Swift.String? = nil + ) + { + self.queryId = queryId } } -extension DescribeConfigurationTemplatesInput { +public struct StopQueryOutput: Swift.Sendable { + /// This is true if the query was stopped by the StopQuery operation. + public var success: Swift.Bool - static func urlPathProvider(_ value: DescribeConfigurationTemplatesInput) -> Swift.String? { - return "/" + public init( + success: Swift.Bool = false + ) + { + self.success = success } } -extension DescribeDeliveriesInput { +@available(*, deprecated, message: "Please use the generic tagging API model TagResourceRequest") +public struct TagLogGroupInput: Swift.Sendable { + /// The name of the log group. + /// This member is required. + public var logGroupName: Swift.String? + /// The key-value pairs to use for the tags. + /// This member is required. + public var tags: [Swift.String: Swift.String]? - static func urlPathProvider(_ value: DescribeDeliveriesInput) -> Swift.String? { - return "/" + public init( + logGroupName: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil + ) + { + self.logGroupName = logGroupName + self.tags = tags } } -extension DescribeDeliveryDestinationsInput { +/// A resource can have no more than 50 tags. +public struct TooManyTagsException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - static func urlPathProvider(_ value: DescribeDeliveryDestinationsInput) -> Swift.String? { - return "/" + public struct Properties { + public internal(set) var message: Swift.String? = nil + /// The name of the resource. + public internal(set) var resourceName: Swift.String? = nil } -} -extension DescribeDeliverySourcesInput { + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "TooManyTagsException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? - static func urlPathProvider(_ value: DescribeDeliverySourcesInput) -> Swift.String? { - return "/" + public init( + message: Swift.String? = nil, + resourceName: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.resourceName = resourceName } } -extension DescribeDestinationsInput { +public struct TagResourceInput: Swift.Sendable { + /// The ARN of the resource that you're adding tags to. The ARN format of a log group is arn:aws:logs:Region:account-id:log-group:log-group-name The ARN format of a destination is arn:aws:logs:Region:account-id:destination:destination-name For more information about ARN format, see [CloudWatch Logs resources and operations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html). + /// This member is required. + public var resourceArn: Swift.String? + /// The list of key-value pairs to associate with the resource. + /// This member is required. + public var tags: [Swift.String: Swift.String]? - static func urlPathProvider(_ value: DescribeDestinationsInput) -> Swift.String? { - return "/" + public init( + resourceArn: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil + ) + { + self.resourceArn = resourceArn + self.tags = tags } } -extension DescribeExportTasksInput { +public struct TestMetricFilterInput: Swift.Sendable { + /// A symbolic description of how CloudWatch Logs should interpret the data in each log event. For example, a log event can contain timestamps, IP addresses, strings, and so on. You use the filter pattern to specify what to look for in the log event message. + /// This member is required. + public var filterPattern: Swift.String? + /// The log event messages to test. + /// This member is required. + public var logEventMessages: [Swift.String]? - static func urlPathProvider(_ value: DescribeExportTasksInput) -> Swift.String? { - return "/" + public init( + filterPattern: Swift.String? = nil, + logEventMessages: [Swift.String]? = nil + ) + { + self.filterPattern = filterPattern + self.logEventMessages = logEventMessages } } -extension DescribeLogGroupsInput { +extension CloudWatchLogsClientTypes { - static func urlPathProvider(_ value: DescribeLogGroupsInput) -> Swift.String? { - return "/" + /// Represents a matched event. + public struct MetricFilterMatchRecord: Swift.Sendable { + /// The raw event data. + public var eventMessage: Swift.String? + /// The event number. + public var eventNumber: Swift.Int + /// The values extracted from the event data by the filter. + public var extractedValues: [Swift.String: Swift.String]? + + public init( + eventMessage: Swift.String? = nil, + eventNumber: Swift.Int = 0, + extractedValues: [Swift.String: Swift.String]? = nil + ) + { + self.eventMessage = eventMessage + self.eventNumber = eventNumber + self.extractedValues = extractedValues + } } } -extension DescribeLogStreamsInput { +public struct TestMetricFilterOutput: Swift.Sendable { + /// The matched events. + public var matches: [CloudWatchLogsClientTypes.MetricFilterMatchRecord]? - static func urlPathProvider(_ value: DescribeLogStreamsInput) -> Swift.String? { - return "/" + public init( + matches: [CloudWatchLogsClientTypes.MetricFilterMatchRecord]? = nil + ) + { + self.matches = matches } } -extension DescribeMetricFiltersInput { +public struct TestTransformerInput: Swift.Sendable { + /// An array of the raw log events that you want to use to test this transformer. + /// This member is required. + public var logEventMessages: [Swift.String]? + /// This structure contains the configuration of this log transformer that you want to test. A log transformer is an array of processors, where each processor applies one type of transformation to the log events that are ingested. + /// This member is required. + public var transformerConfig: [CloudWatchLogsClientTypes.Processor]? - static func urlPathProvider(_ value: DescribeMetricFiltersInput) -> Swift.String? { - return "/" + public init( + logEventMessages: [Swift.String]? = nil, + transformerConfig: [CloudWatchLogsClientTypes.Processor]? = nil + ) + { + self.logEventMessages = logEventMessages + self.transformerConfig = transformerConfig } } -extension DescribeQueriesInput { +extension CloudWatchLogsClientTypes { - static func urlPathProvider(_ value: DescribeQueriesInput) -> Swift.String? { - return "/" + /// This structure contains information for one log event that has been processed by a log transformer. + public struct TransformedLogRecord: Swift.Sendable { + /// The original log event message before it was transformed. + public var eventMessage: Swift.String? + /// The event number. + public var eventNumber: Swift.Int + /// The log event message after being transformed. + public var transformedEventMessage: Swift.String? + + public init( + eventMessage: Swift.String? = nil, + eventNumber: Swift.Int = 0, + transformedEventMessage: Swift.String? = nil + ) + { + self.eventMessage = eventMessage + self.eventNumber = eventNumber + self.transformedEventMessage = transformedEventMessage + } } } -extension DescribeQueryDefinitionsInput { +public struct TestTransformerOutput: Swift.Sendable { + /// An array where each member of the array includes both the original version and the transformed version of one of the log events that you input. + public var transformedLogs: [CloudWatchLogsClientTypes.TransformedLogRecord]? - static func urlPathProvider(_ value: DescribeQueryDefinitionsInput) -> Swift.String? { - return "/" + public init( + transformedLogs: [CloudWatchLogsClientTypes.TransformedLogRecord]? = nil + ) + { + self.transformedLogs = transformedLogs } } -extension DescribeResourcePoliciesInput { +@available(*, deprecated, message: "Please use the generic tagging API model UntagResourceRequest") +public struct UntagLogGroupInput: Swift.Sendable { + /// The name of the log group. + /// This member is required. + public var logGroupName: Swift.String? + /// The tag keys. The corresponding tags are removed from the log group. + /// This member is required. + public var tags: [Swift.String]? - static func urlPathProvider(_ value: DescribeResourcePoliciesInput) -> Swift.String? { - return "/" + public init( + logGroupName: Swift.String? = nil, + tags: [Swift.String]? = nil + ) + { + self.logGroupName = logGroupName + self.tags = tags } } -extension DescribeSubscriptionFiltersInput { +public struct UntagResourceInput: Swift.Sendable { + /// The ARN of the CloudWatch Logs resource that you're removing tags from. The ARN format of a log group is arn:aws:logs:Region:account-id:log-group:log-group-name The ARN format of a destination is arn:aws:logs:Region:account-id:destination:destination-name For more information about ARN format, see [CloudWatch Logs resources and operations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html). + /// This member is required. + public var resourceArn: Swift.String? + /// The list of tag keys to remove from the resource. + /// This member is required. + public var tagKeys: [Swift.String]? - static func urlPathProvider(_ value: DescribeSubscriptionFiltersInput) -> Swift.String? { - return "/" + public init( + resourceArn: Swift.String? = nil, + tagKeys: [Swift.String]? = nil + ) + { + self.resourceArn = resourceArn + self.tagKeys = tagKeys } } -extension DisassociateKmsKeyInput { +extension CloudWatchLogsClientTypes { - static func urlPathProvider(_ value: DisassociateKmsKeyInput) -> Swift.String? { - return "/" - } -} + public enum SuppressionUnit: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case hours + case minutes + case seconds + case sdkUnknown(Swift.String) -extension FilterLogEventsInput { + public static var allCases: [SuppressionUnit] { + return [ + .hours, + .minutes, + .seconds + ] + } - static func urlPathProvider(_ value: FilterLogEventsInput) -> Swift.String? { - return "/" + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .hours: return "HOURS" + case .minutes: return "MINUTES" + case .seconds: return "SECONDS" + case let .sdkUnknown(s): return s + } + } } } -extension GetDataProtectionPolicyInput { +extension CloudWatchLogsClientTypes { - static func urlPathProvider(_ value: GetDataProtectionPolicyInput) -> Swift.String? { - return "/" + /// If you are suppressing an anomaly temporariliy, this structure defines how long the suppression period is to be. + public struct SuppressionPeriod: Swift.Sendable { + /// Specifies whether the value of value is in seconds, minutes, or hours. + public var suppressionUnit: CloudWatchLogsClientTypes.SuppressionUnit? + /// Specifies the number of seconds, minutes or hours to suppress this anomaly. There is no maximum. + public var value: Swift.Int + + public init( + suppressionUnit: CloudWatchLogsClientTypes.SuppressionUnit? = nil, + value: Swift.Int = 0 + ) + { + self.suppressionUnit = suppressionUnit + self.value = value + } } } -extension GetDeliveryInput { +extension CloudWatchLogsClientTypes { - static func urlPathProvider(_ value: GetDeliveryInput) -> Swift.String? { - return "/" + public enum SuppressionType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case infinite + case limited + case sdkUnknown(Swift.String) + + public static var allCases: [SuppressionType] { + return [ + .infinite, + .limited + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .infinite: return "INFINITE" + case .limited: return "LIMITED" + case let .sdkUnknown(s): return s + } + } } } -extension GetDeliveryDestinationInput { +public struct UpdateAnomalyInput: Swift.Sendable { + /// The ARN of the anomaly detector that this operation is to act on. + /// This member is required. + public var anomalyDetectorArn: Swift.String? + /// If you are suppressing or unsuppressing an anomaly, specify its unique ID here. You can find anomaly IDs by using the [ListAnomalies](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListAnomalies.html) operation. + public var anomalyId: Swift.String? + /// Set this to true to prevent CloudWatch Logs from displaying this behavior as an anomaly in the future. The behavior is then treated as baseline behavior. However, if similar but more severe occurrences of this behavior occur in the future, those will still be reported as anomalies. The default is false + public var baseline: Swift.Bool? + /// If you are suppressing or unsuppressing an pattern, specify its unique ID here. You can find pattern IDs by using the [ListAnomalies](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListAnomalies.html) operation. + public var patternId: Swift.String? + /// If you are temporarily suppressing an anomaly or pattern, use this structure to specify how long the suppression is to last. + public var suppressionPeriod: CloudWatchLogsClientTypes.SuppressionPeriod? + /// Use this to specify whether the suppression to be temporary or infinite. If you specify LIMITED, you must also specify a suppressionPeriod. If you specify INFINITE, any value for suppressionPeriod is ignored. + public var suppressionType: CloudWatchLogsClientTypes.SuppressionType? - static func urlPathProvider(_ value: GetDeliveryDestinationInput) -> Swift.String? { - return "/" + public init( + anomalyDetectorArn: Swift.String? = nil, + anomalyId: Swift.String? = nil, + baseline: Swift.Bool? = nil, + patternId: Swift.String? = nil, + suppressionPeriod: CloudWatchLogsClientTypes.SuppressionPeriod? = nil, + suppressionType: CloudWatchLogsClientTypes.SuppressionType? = nil + ) + { + self.anomalyDetectorArn = anomalyDetectorArn + self.anomalyId = anomalyId + self.baseline = baseline + self.patternId = patternId + self.suppressionPeriod = suppressionPeriod + self.suppressionType = suppressionType } } -extension GetDeliveryDestinationPolicyInput { +public struct UpdateDeliveryConfigurationInput: Swift.Sendable { + /// The field delimiter to use between record fields when the final output format of a delivery is in Plain, W3C, or Raw format. + public var fieldDelimiter: Swift.String? + /// The ID of the delivery to be updated by this request. + /// This member is required. + public var id: Swift.String? + /// The list of record fields to be delivered to the destination, in order. If the delivery's log source has mandatory fields, they must be included in this list. + public var recordFields: [Swift.String]? + /// This structure contains parameters that are valid only when the delivery's delivery destination is an S3 bucket. + public var s3DeliveryConfiguration: CloudWatchLogsClientTypes.S3DeliveryConfiguration? - static func urlPathProvider(_ value: GetDeliveryDestinationPolicyInput) -> Swift.String? { - return "/" + public init( + fieldDelimiter: Swift.String? = nil, + id: Swift.String? = nil, + recordFields: [Swift.String]? = nil, + s3DeliveryConfiguration: CloudWatchLogsClientTypes.S3DeliveryConfiguration? = nil + ) + { + self.fieldDelimiter = fieldDelimiter + self.id = id + self.recordFields = recordFields + self.s3DeliveryConfiguration = s3DeliveryConfiguration } } -extension GetDeliverySourceInput { +public struct UpdateDeliveryConfigurationOutput: Swift.Sendable { - static func urlPathProvider(_ value: GetDeliverySourceInput) -> Swift.String? { - return "/" + public init() { } +} + +public struct UpdateLogAnomalyDetectorInput: Swift.Sendable { + /// The ARN of the anomaly detector that you want to update. + /// This member is required. + public var anomalyDetectorArn: Swift.String? + /// The number of days to use as the life cycle of anomalies. After this time, anomalies are automatically baselined and the anomaly detector model will treat new occurrences of similar event as normal. Therefore, if you do not correct the cause of an anomaly during this time, it will be considered normal going forward and will not be detected. + public var anomalyVisibilityTime: Swift.Int? + /// Use this parameter to pause or restart the anomaly detector. + /// This member is required. + public var enabled: Swift.Bool? + /// Specifies how often the anomaly detector runs and look for anomalies. Set this value according to the frequency that the log group receives new logs. For example, if the log group receives new log events every 10 minutes, then setting evaluationFrequency to FIFTEEN_MIN might be appropriate. + public var evaluationFrequency: CloudWatchLogsClientTypes.EvaluationFrequency? + /// A symbolic description of how CloudWatch Logs should interpret the data in each log event. For example, a log event can contain timestamps, IP addresses, strings, and so on. You use the filter pattern to specify what to look for in the log event message. + public var filterPattern: Swift.String? + + public init( + anomalyDetectorArn: Swift.String? = nil, + anomalyVisibilityTime: Swift.Int? = nil, + enabled: Swift.Bool? = nil, + evaluationFrequency: CloudWatchLogsClientTypes.EvaluationFrequency? = nil, + filterPattern: Swift.String? = nil + ) + { + self.anomalyDetectorArn = anomalyDetectorArn + self.anomalyVisibilityTime = anomalyVisibilityTime + self.enabled = enabled + self.evaluationFrequency = evaluationFrequency + self.filterPattern = filterPattern } } -extension GetLogAnomalyDetectorInput { +extension AssociateKmsKeyInput { - static func urlPathProvider(_ value: GetLogAnomalyDetectorInput) -> Swift.String? { + static func urlPathProvider(_ value: AssociateKmsKeyInput) -> Swift.String? { return "/" } } -extension GetLogEventsInput { +extension CancelExportTaskInput { - static func urlPathProvider(_ value: GetLogEventsInput) -> Swift.String? { + static func urlPathProvider(_ value: CancelExportTaskInput) -> Swift.String? { return "/" } } -extension GetLogGroupFieldsInput { +extension CreateDeliveryInput { - static func urlPathProvider(_ value: GetLogGroupFieldsInput) -> Swift.String? { + static func urlPathProvider(_ value: CreateDeliveryInput) -> Swift.String? { return "/" } } -extension GetLogRecordInput { +extension CreateExportTaskInput { - static func urlPathProvider(_ value: GetLogRecordInput) -> Swift.String? { + static func urlPathProvider(_ value: CreateExportTaskInput) -> Swift.String? { return "/" } } -extension GetQueryResultsInput { +extension CreateLogAnomalyDetectorInput { - static func urlPathProvider(_ value: GetQueryResultsInput) -> Swift.String? { + static func urlPathProvider(_ value: CreateLogAnomalyDetectorInput) -> Swift.String? { return "/" } } -extension ListAnomaliesInput { +extension CreateLogGroupInput { - static func urlPathProvider(_ value: ListAnomaliesInput) -> Swift.String? { + static func urlPathProvider(_ value: CreateLogGroupInput) -> Swift.String? { return "/" } } -extension ListLogAnomalyDetectorsInput { +extension CreateLogStreamInput { - static func urlPathProvider(_ value: ListLogAnomalyDetectorsInput) -> Swift.String? { + static func urlPathProvider(_ value: CreateLogStreamInput) -> Swift.String? { return "/" } } -extension ListTagsForResourceInput { +extension DeleteAccountPolicyInput { - static func urlPathProvider(_ value: ListTagsForResourceInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteAccountPolicyInput) -> Swift.String? { return "/" } } -extension ListTagsLogGroupInput { +extension DeleteDataProtectionPolicyInput { - static func urlPathProvider(_ value: ListTagsLogGroupInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteDataProtectionPolicyInput) -> Swift.String? { return "/" } } -extension PutAccountPolicyInput { +extension DeleteDeliveryInput { - static func urlPathProvider(_ value: PutAccountPolicyInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteDeliveryInput) -> Swift.String? { return "/" } } -extension PutDataProtectionPolicyInput { +extension DeleteDeliveryDestinationInput { - static func urlPathProvider(_ value: PutDataProtectionPolicyInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteDeliveryDestinationInput) -> Swift.String? { return "/" } } -extension PutDeliveryDestinationInput { +extension DeleteDeliveryDestinationPolicyInput { - static func urlPathProvider(_ value: PutDeliveryDestinationInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteDeliveryDestinationPolicyInput) -> Swift.String? { return "/" } } -extension PutDeliveryDestinationPolicyInput { +extension DeleteDeliverySourceInput { - static func urlPathProvider(_ value: PutDeliveryDestinationPolicyInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteDeliverySourceInput) -> Swift.String? { return "/" } } -extension PutDeliverySourceInput { +extension DeleteDestinationInput { - static func urlPathProvider(_ value: PutDeliverySourceInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteDestinationInput) -> Swift.String? { return "/" } } -extension PutDestinationInput { +extension DeleteIndexPolicyInput { - static func urlPathProvider(_ value: PutDestinationInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteIndexPolicyInput) -> Swift.String? { return "/" } } -extension PutDestinationPolicyInput { +extension DeleteLogAnomalyDetectorInput { - static func urlPathProvider(_ value: PutDestinationPolicyInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteLogAnomalyDetectorInput) -> Swift.String? { return "/" } } -extension PutLogEventsInput { +extension DeleteLogGroupInput { - static func urlPathProvider(_ value: PutLogEventsInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteLogGroupInput) -> Swift.String? { return "/" } } -extension PutMetricFilterInput { +extension DeleteLogStreamInput { - static func urlPathProvider(_ value: PutMetricFilterInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteLogStreamInput) -> Swift.String? { return "/" } } -extension PutQueryDefinitionInput { +extension DeleteMetricFilterInput { - static func urlPathProvider(_ value: PutQueryDefinitionInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteMetricFilterInput) -> Swift.String? { return "/" } } -extension PutResourcePolicyInput { +extension DeleteQueryDefinitionInput { - static func urlPathProvider(_ value: PutResourcePolicyInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteQueryDefinitionInput) -> Swift.String? { return "/" } } -extension PutRetentionPolicyInput { +extension DeleteResourcePolicyInput { - static func urlPathProvider(_ value: PutRetentionPolicyInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteResourcePolicyInput) -> Swift.String? { return "/" } } -extension PutSubscriptionFilterInput { +extension DeleteRetentionPolicyInput { - static func urlPathProvider(_ value: PutSubscriptionFilterInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteRetentionPolicyInput) -> Swift.String? { return "/" } } -extension StartLiveTailInput { +extension DeleteSubscriptionFilterInput { - static func urlPathProvider(_ value: StartLiveTailInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteSubscriptionFilterInput) -> Swift.String? { return "/" } } -extension StartQueryInput { +extension DeleteTransformerInput { - static func urlPathProvider(_ value: StartQueryInput) -> Swift.String? { + static func urlPathProvider(_ value: DeleteTransformerInput) -> Swift.String? { return "/" } } -extension StopQueryInput { +extension DescribeAccountPoliciesInput { - static func urlPathProvider(_ value: StopQueryInput) -> Swift.String? { + static func urlPathProvider(_ value: DescribeAccountPoliciesInput) -> Swift.String? { return "/" } } -extension TagLogGroupInput { +extension DescribeConfigurationTemplatesInput { - static func urlPathProvider(_ value: TagLogGroupInput) -> Swift.String? { + static func urlPathProvider(_ value: DescribeConfigurationTemplatesInput) -> Swift.String? { return "/" } } -extension TagResourceInput { +extension DescribeDeliveriesInput { - static func urlPathProvider(_ value: TagResourceInput) -> Swift.String? { + static func urlPathProvider(_ value: DescribeDeliveriesInput) -> Swift.String? { return "/" } } -extension TestMetricFilterInput { +extension DescribeDeliveryDestinationsInput { - static func urlPathProvider(_ value: TestMetricFilterInput) -> Swift.String? { + static func urlPathProvider(_ value: DescribeDeliveryDestinationsInput) -> Swift.String? { return "/" } } -extension UntagLogGroupInput { +extension DescribeDeliverySourcesInput { - static func urlPathProvider(_ value: UntagLogGroupInput) -> Swift.String? { + static func urlPathProvider(_ value: DescribeDeliverySourcesInput) -> Swift.String? { return "/" } } -extension UntagResourceInput { +extension DescribeDestinationsInput { - static func urlPathProvider(_ value: UntagResourceInput) -> Swift.String? { + static func urlPathProvider(_ value: DescribeDestinationsInput) -> Swift.String? { return "/" } } -extension UpdateAnomalyInput { +extension DescribeExportTasksInput { - static func urlPathProvider(_ value: UpdateAnomalyInput) -> Swift.String? { + static func urlPathProvider(_ value: DescribeExportTasksInput) -> Swift.String? { return "/" } } -extension UpdateDeliveryConfigurationInput { +extension DescribeFieldIndexesInput { - static func urlPathProvider(_ value: UpdateDeliveryConfigurationInput) -> Swift.String? { + static func urlPathProvider(_ value: DescribeFieldIndexesInput) -> Swift.String? { return "/" } } -extension UpdateLogAnomalyDetectorInput { +extension DescribeIndexPoliciesInput { - static func urlPathProvider(_ value: UpdateLogAnomalyDetectorInput) -> Swift.String? { + static func urlPathProvider(_ value: DescribeIndexPoliciesInput) -> Swift.String? { return "/" } } -extension AssociateKmsKeyInput { +extension DescribeLogGroupsInput { - static func write(value: AssociateKmsKeyInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["kmsKeyId"].write(value.kmsKeyId) - try writer["logGroupName"].write(value.logGroupName) - try writer["resourceIdentifier"].write(value.resourceIdentifier) + static func urlPathProvider(_ value: DescribeLogGroupsInput) -> Swift.String? { + return "/" } } -extension CancelExportTaskInput { +extension DescribeLogStreamsInput { - static func write(value: CancelExportTaskInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["taskId"].write(value.taskId) + static func urlPathProvider(_ value: DescribeLogStreamsInput) -> Swift.String? { + return "/" } } -extension CreateDeliveryInput { +extension DescribeMetricFiltersInput { - static func write(value: CreateDeliveryInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["deliveryDestinationArn"].write(value.deliveryDestinationArn) - try writer["deliverySourceName"].write(value.deliverySourceName) - try writer["fieldDelimiter"].write(value.fieldDelimiter) - try writer["recordFields"].writeList(value.recordFields, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["s3DeliveryConfiguration"].write(value.s3DeliveryConfiguration, with: CloudWatchLogsClientTypes.S3DeliveryConfiguration.write(value:to:)) - try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + static func urlPathProvider(_ value: DescribeMetricFiltersInput) -> Swift.String? { + return "/" } } -extension CreateExportTaskInput { +extension DescribeQueriesInput { - static func write(value: CreateExportTaskInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["destination"].write(value.destination) - try writer["destinationPrefix"].write(value.destinationPrefix) - try writer["from"].write(value.from) - try writer["logGroupName"].write(value.logGroupName) - try writer["logStreamNamePrefix"].write(value.logStreamNamePrefix) - try writer["taskName"].write(value.taskName) - try writer["to"].write(value.to) + static func urlPathProvider(_ value: DescribeQueriesInput) -> Swift.String? { + return "/" } } -extension CreateLogAnomalyDetectorInput { +extension DescribeQueryDefinitionsInput { - static func write(value: CreateLogAnomalyDetectorInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["anomalyVisibilityTime"].write(value.anomalyVisibilityTime) - try writer["detectorName"].write(value.detectorName) - try writer["evaluationFrequency"].write(value.evaluationFrequency) - try writer["filterPattern"].write(value.filterPattern) - try writer["kmsKeyId"].write(value.kmsKeyId) - try writer["logGroupArnList"].writeList(value.logGroupArnList, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + static func urlPathProvider(_ value: DescribeQueryDefinitionsInput) -> Swift.String? { + return "/" } } -extension CreateLogGroupInput { +extension DescribeResourcePoliciesInput { - static func write(value: CreateLogGroupInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["kmsKeyId"].write(value.kmsKeyId) - try writer["logGroupClass"].write(value.logGroupClass) - try writer["logGroupName"].write(value.logGroupName) - try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + static func urlPathProvider(_ value: DescribeResourcePoliciesInput) -> Swift.String? { + return "/" } } -extension CreateLogStreamInput { +extension DescribeSubscriptionFiltersInput { - static func write(value: CreateLogStreamInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["logGroupName"].write(value.logGroupName) - try writer["logStreamName"].write(value.logStreamName) + static func urlPathProvider(_ value: DescribeSubscriptionFiltersInput) -> Swift.String? { + return "/" } } -extension DeleteAccountPolicyInput { +extension DisassociateKmsKeyInput { - static func write(value: DeleteAccountPolicyInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["policyName"].write(value.policyName) - try writer["policyType"].write(value.policyType) + static func urlPathProvider(_ value: DisassociateKmsKeyInput) -> Swift.String? { + return "/" } } -extension DeleteDataProtectionPolicyInput { +extension FilterLogEventsInput { - static func write(value: DeleteDataProtectionPolicyInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["logGroupIdentifier"].write(value.logGroupIdentifier) + static func urlPathProvider(_ value: FilterLogEventsInput) -> Swift.String? { + return "/" } } -extension DeleteDeliveryInput { +extension GetDataProtectionPolicyInput { - static func write(value: DeleteDeliveryInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["id"].write(value.id) + static func urlPathProvider(_ value: GetDataProtectionPolicyInput) -> Swift.String? { + return "/" } } -extension DeleteDeliveryDestinationInput { +extension GetDeliveryInput { - static func write(value: DeleteDeliveryDestinationInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["name"].write(value.name) + static func urlPathProvider(_ value: GetDeliveryInput) -> Swift.String? { + return "/" } } -extension DeleteDeliveryDestinationPolicyInput { +extension GetDeliveryDestinationInput { - static func write(value: DeleteDeliveryDestinationPolicyInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["deliveryDestinationName"].write(value.deliveryDestinationName) + static func urlPathProvider(_ value: GetDeliveryDestinationInput) -> Swift.String? { + return "/" } } -extension DeleteDeliverySourceInput { +extension GetDeliveryDestinationPolicyInput { - static func write(value: DeleteDeliverySourceInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["name"].write(value.name) + static func urlPathProvider(_ value: GetDeliveryDestinationPolicyInput) -> Swift.String? { + return "/" } } -extension DeleteDestinationInput { +extension GetDeliverySourceInput { - static func write(value: DeleteDestinationInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["destinationName"].write(value.destinationName) + static func urlPathProvider(_ value: GetDeliverySourceInput) -> Swift.String? { + return "/" } } -extension DeleteLogAnomalyDetectorInput { +extension GetLogAnomalyDetectorInput { - static func write(value: DeleteLogAnomalyDetectorInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["anomalyDetectorArn"].write(value.anomalyDetectorArn) + static func urlPathProvider(_ value: GetLogAnomalyDetectorInput) -> Swift.String? { + return "/" } } -extension DeleteLogGroupInput { +extension GetLogEventsInput { - static func write(value: DeleteLogGroupInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["logGroupName"].write(value.logGroupName) + static func urlPathProvider(_ value: GetLogEventsInput) -> Swift.String? { + return "/" } } -extension DeleteLogStreamInput { +extension GetLogGroupFieldsInput { - static func write(value: DeleteLogStreamInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["logGroupName"].write(value.logGroupName) - try writer["logStreamName"].write(value.logStreamName) + static func urlPathProvider(_ value: GetLogGroupFieldsInput) -> Swift.String? { + return "/" } } -extension DeleteMetricFilterInput { +extension GetLogRecordInput { - static func write(value: DeleteMetricFilterInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["filterName"].write(value.filterName) - try writer["logGroupName"].write(value.logGroupName) + static func urlPathProvider(_ value: GetLogRecordInput) -> Swift.String? { + return "/" } } -extension DeleteQueryDefinitionInput { +extension GetQueryResultsInput { - static func write(value: DeleteQueryDefinitionInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["queryDefinitionId"].write(value.queryDefinitionId) + static func urlPathProvider(_ value: GetQueryResultsInput) -> Swift.String? { + return "/" } } -extension DeleteResourcePolicyInput { +extension GetTransformerInput { - static func write(value: DeleteResourcePolicyInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["policyName"].write(value.policyName) + static func urlPathProvider(_ value: GetTransformerInput) -> Swift.String? { + return "/" } } -extension DeleteRetentionPolicyInput { +extension ListAnomaliesInput { - static func write(value: DeleteRetentionPolicyInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["logGroupName"].write(value.logGroupName) + static func urlPathProvider(_ value: ListAnomaliesInput) -> Swift.String? { + return "/" } } -extension DeleteSubscriptionFilterInput { +extension ListLogAnomalyDetectorsInput { - static func write(value: DeleteSubscriptionFilterInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["filterName"].write(value.filterName) - try writer["logGroupName"].write(value.logGroupName) + static func urlPathProvider(_ value: ListLogAnomalyDetectorsInput) -> Swift.String? { + return "/" } } -extension DescribeAccountPoliciesInput { +extension ListLogGroupsForQueryInput { - static func write(value: DescribeAccountPoliciesInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["accountIdentifiers"].writeList(value.accountIdentifiers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["policyName"].write(value.policyName) - try writer["policyType"].write(value.policyType) + static func urlPathProvider(_ value: ListLogGroupsForQueryInput) -> Swift.String? { + return "/" } } -extension DescribeConfigurationTemplatesInput { +extension ListTagsForResourceInput { - static func write(value: DescribeConfigurationTemplatesInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["deliveryDestinationTypes"].writeList(value.deliveryDestinationTypes, memberWritingClosure: SmithyReadWrite.WritingClosureBox().write(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["limit"].write(value.limit) - try writer["logTypes"].writeList(value.logTypes, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["nextToken"].write(value.nextToken) - try writer["resourceTypes"].writeList(value.resourceTypes, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["service"].write(value.service) + static func urlPathProvider(_ value: ListTagsForResourceInput) -> Swift.String? { + return "/" } } -extension DescribeDeliveriesInput { +extension ListTagsLogGroupInput { - static func write(value: DescribeDeliveriesInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["limit"].write(value.limit) - try writer["nextToken"].write(value.nextToken) + static func urlPathProvider(_ value: ListTagsLogGroupInput) -> Swift.String? { + return "/" } } -extension DescribeDeliveryDestinationsInput { +extension PutAccountPolicyInput { - static func write(value: DescribeDeliveryDestinationsInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["limit"].write(value.limit) - try writer["nextToken"].write(value.nextToken) + static func urlPathProvider(_ value: PutAccountPolicyInput) -> Swift.String? { + return "/" } } -extension DescribeDeliverySourcesInput { +extension PutDataProtectionPolicyInput { - static func write(value: DescribeDeliverySourcesInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["limit"].write(value.limit) - try writer["nextToken"].write(value.nextToken) + static func urlPathProvider(_ value: PutDataProtectionPolicyInput) -> Swift.String? { + return "/" } } -extension DescribeDestinationsInput { +extension PutDeliveryDestinationInput { - static func write(value: DescribeDestinationsInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["DestinationNamePrefix"].write(value.destinationNamePrefix) - try writer["limit"].write(value.limit) - try writer["nextToken"].write(value.nextToken) + static func urlPathProvider(_ value: PutDeliveryDestinationInput) -> Swift.String? { + return "/" } } -extension DescribeExportTasksInput { +extension PutDeliveryDestinationPolicyInput { - static func write(value: DescribeExportTasksInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["limit"].write(value.limit) - try writer["nextToken"].write(value.nextToken) - try writer["statusCode"].write(value.statusCode) - try writer["taskId"].write(value.taskId) + static func urlPathProvider(_ value: PutDeliveryDestinationPolicyInput) -> Swift.String? { + return "/" } } -extension DescribeLogGroupsInput { +extension PutDeliverySourceInput { - static func write(value: DescribeLogGroupsInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["accountIdentifiers"].writeList(value.accountIdentifiers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["includeLinkedAccounts"].write(value.includeLinkedAccounts) - try writer["limit"].write(value.limit) - try writer["logGroupClass"].write(value.logGroupClass) - try writer["logGroupNamePattern"].write(value.logGroupNamePattern) - try writer["logGroupNamePrefix"].write(value.logGroupNamePrefix) - try writer["nextToken"].write(value.nextToken) + static func urlPathProvider(_ value: PutDeliverySourceInput) -> Swift.String? { + return "/" } } -extension DescribeLogStreamsInput { +extension PutDestinationInput { - static func write(value: DescribeLogStreamsInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["descending"].write(value.descending) - try writer["limit"].write(value.limit) - try writer["logGroupIdentifier"].write(value.logGroupIdentifier) - try writer["logGroupName"].write(value.logGroupName) - try writer["logStreamNamePrefix"].write(value.logStreamNamePrefix) - try writer["nextToken"].write(value.nextToken) - try writer["orderBy"].write(value.orderBy) + static func urlPathProvider(_ value: PutDestinationInput) -> Swift.String? { + return "/" } } -extension DescribeMetricFiltersInput { +extension PutDestinationPolicyInput { - static func write(value: DescribeMetricFiltersInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["filterNamePrefix"].write(value.filterNamePrefix) - try writer["limit"].write(value.limit) - try writer["logGroupName"].write(value.logGroupName) - try writer["metricName"].write(value.metricName) - try writer["metricNamespace"].write(value.metricNamespace) - try writer["nextToken"].write(value.nextToken) + static func urlPathProvider(_ value: PutDestinationPolicyInput) -> Swift.String? { + return "/" } } -extension DescribeQueriesInput { +extension PutIndexPolicyInput { - static func write(value: DescribeQueriesInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["logGroupName"].write(value.logGroupName) - try writer["maxResults"].write(value.maxResults) - try writer["nextToken"].write(value.nextToken) - try writer["status"].write(value.status) + static func urlPathProvider(_ value: PutIndexPolicyInput) -> Swift.String? { + return "/" } } -extension DescribeQueryDefinitionsInput { +extension PutLogEventsInput { - static func write(value: DescribeQueryDefinitionsInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["maxResults"].write(value.maxResults) - try writer["nextToken"].write(value.nextToken) - try writer["queryDefinitionNamePrefix"].write(value.queryDefinitionNamePrefix) + static func urlPathProvider(_ value: PutLogEventsInput) -> Swift.String? { + return "/" } } -extension DescribeResourcePoliciesInput { +extension PutMetricFilterInput { - static func write(value: DescribeResourcePoliciesInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["limit"].write(value.limit) - try writer["nextToken"].write(value.nextToken) + static func urlPathProvider(_ value: PutMetricFilterInput) -> Swift.String? { + return "/" } } -extension DescribeSubscriptionFiltersInput { +extension PutQueryDefinitionInput { - static func write(value: DescribeSubscriptionFiltersInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["filterNamePrefix"].write(value.filterNamePrefix) - try writer["limit"].write(value.limit) - try writer["logGroupName"].write(value.logGroupName) - try writer["nextToken"].write(value.nextToken) + static func urlPathProvider(_ value: PutQueryDefinitionInput) -> Swift.String? { + return "/" } } -extension DisassociateKmsKeyInput { +extension PutResourcePolicyInput { - static func write(value: DisassociateKmsKeyInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["logGroupName"].write(value.logGroupName) - try writer["resourceIdentifier"].write(value.resourceIdentifier) + static func urlPathProvider(_ value: PutResourcePolicyInput) -> Swift.String? { + return "/" } } -extension FilterLogEventsInput { +extension PutRetentionPolicyInput { - static func write(value: FilterLogEventsInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["endTime"].write(value.endTime) - try writer["filterPattern"].write(value.filterPattern) - try writer["interleaved"].write(value.interleaved) - try writer["limit"].write(value.limit) - try writer["logGroupIdentifier"].write(value.logGroupIdentifier) - try writer["logGroupName"].write(value.logGroupName) - try writer["logStreamNamePrefix"].write(value.logStreamNamePrefix) - try writer["logStreamNames"].writeList(value.logStreamNames, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["nextToken"].write(value.nextToken) - try writer["startTime"].write(value.startTime) - try writer["unmask"].write(value.unmask) + static func urlPathProvider(_ value: PutRetentionPolicyInput) -> Swift.String? { + return "/" } } -extension GetDataProtectionPolicyInput { +extension PutSubscriptionFilterInput { - static func write(value: GetDataProtectionPolicyInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["logGroupIdentifier"].write(value.logGroupIdentifier) + static func urlPathProvider(_ value: PutSubscriptionFilterInput) -> Swift.String? { + return "/" } } -extension GetDeliveryInput { +extension PutTransformerInput { - static func write(value: GetDeliveryInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["id"].write(value.id) + static func urlPathProvider(_ value: PutTransformerInput) -> Swift.String? { + return "/" } } -extension GetDeliveryDestinationInput { +extension StartLiveTailInput { - static func write(value: GetDeliveryDestinationInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["name"].write(value.name) + static func urlPathProvider(_ value: StartLiveTailInput) -> Swift.String? { + return "/" } } -extension GetDeliveryDestinationPolicyInput { +extension StartQueryInput { - static func write(value: GetDeliveryDestinationPolicyInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["deliveryDestinationName"].write(value.deliveryDestinationName) + static func urlPathProvider(_ value: StartQueryInput) -> Swift.String? { + return "/" } } -extension GetDeliverySourceInput { +extension StopQueryInput { - static func write(value: GetDeliverySourceInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["name"].write(value.name) + static func urlPathProvider(_ value: StopQueryInput) -> Swift.String? { + return "/" } } -extension GetLogAnomalyDetectorInput { +extension TagLogGroupInput { - static func write(value: GetLogAnomalyDetectorInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["anomalyDetectorArn"].write(value.anomalyDetectorArn) + static func urlPathProvider(_ value: TagLogGroupInput) -> Swift.String? { + return "/" } } -extension GetLogEventsInput { +extension TagResourceInput { - static func write(value: GetLogEventsInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["endTime"].write(value.endTime) - try writer["limit"].write(value.limit) - try writer["logGroupIdentifier"].write(value.logGroupIdentifier) - try writer["logGroupName"].write(value.logGroupName) - try writer["logStreamName"].write(value.logStreamName) - try writer["nextToken"].write(value.nextToken) - try writer["startFromHead"].write(value.startFromHead) - try writer["startTime"].write(value.startTime) - try writer["unmask"].write(value.unmask) + static func urlPathProvider(_ value: TagResourceInput) -> Swift.String? { + return "/" } } -extension GetLogGroupFieldsInput { +extension TestMetricFilterInput { - static func write(value: GetLogGroupFieldsInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["logGroupIdentifier"].write(value.logGroupIdentifier) - try writer["logGroupName"].write(value.logGroupName) - try writer["time"].write(value.time) + static func urlPathProvider(_ value: TestMetricFilterInput) -> Swift.String? { + return "/" } } -extension GetLogRecordInput { +extension TestTransformerInput { - static func write(value: GetLogRecordInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["logRecordPointer"].write(value.logRecordPointer) - try writer["unmask"].write(value.unmask) + static func urlPathProvider(_ value: TestTransformerInput) -> Swift.String? { + return "/" } } -extension GetQueryResultsInput { +extension UntagLogGroupInput { - static func write(value: GetQueryResultsInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["queryId"].write(value.queryId) + static func urlPathProvider(_ value: UntagLogGroupInput) -> Swift.String? { + return "/" } } -extension ListAnomaliesInput { +extension UntagResourceInput { - static func write(value: ListAnomaliesInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["anomalyDetectorArn"].write(value.anomalyDetectorArn) - try writer["limit"].write(value.limit) - try writer["nextToken"].write(value.nextToken) - try writer["suppressionState"].write(value.suppressionState) + static func urlPathProvider(_ value: UntagResourceInput) -> Swift.String? { + return "/" } } -extension ListLogAnomalyDetectorsInput { +extension UpdateAnomalyInput { - static func write(value: ListLogAnomalyDetectorsInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["filterLogGroupArn"].write(value.filterLogGroupArn) - try writer["limit"].write(value.limit) - try writer["nextToken"].write(value.nextToken) + static func urlPathProvider(_ value: UpdateAnomalyInput) -> Swift.String? { + return "/" } } -extension ListTagsForResourceInput { +extension UpdateDeliveryConfigurationInput { - static func write(value: ListTagsForResourceInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["resourceArn"].write(value.resourceArn) + static func urlPathProvider(_ value: UpdateDeliveryConfigurationInput) -> Swift.String? { + return "/" } } -extension ListTagsLogGroupInput { +extension UpdateLogAnomalyDetectorInput { - static func write(value: ListTagsLogGroupInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["logGroupName"].write(value.logGroupName) + static func urlPathProvider(_ value: UpdateLogAnomalyDetectorInput) -> Swift.String? { + return "/" } } -extension PutAccountPolicyInput { +extension AssociateKmsKeyInput { - static func write(value: PutAccountPolicyInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: AssociateKmsKeyInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["policyDocument"].write(value.policyDocument) - try writer["policyName"].write(value.policyName) - try writer["policyType"].write(value.policyType) - try writer["scope"].write(value.scope) - try writer["selectionCriteria"].write(value.selectionCriteria) + try writer["kmsKeyId"].write(value.kmsKeyId) + try writer["logGroupName"].write(value.logGroupName) + try writer["resourceIdentifier"].write(value.resourceIdentifier) } } -extension PutDataProtectionPolicyInput { +extension CancelExportTaskInput { - static func write(value: PutDataProtectionPolicyInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: CancelExportTaskInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["logGroupIdentifier"].write(value.logGroupIdentifier) - try writer["policyDocument"].write(value.policyDocument) + try writer["taskId"].write(value.taskId) } } -extension PutDeliveryDestinationInput { +extension CreateDeliveryInput { - static func write(value: PutDeliveryDestinationInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: CreateDeliveryInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["deliveryDestinationConfiguration"].write(value.deliveryDestinationConfiguration, with: CloudWatchLogsClientTypes.DeliveryDestinationConfiguration.write(value:to:)) - try writer["name"].write(value.name) - try writer["outputFormat"].write(value.outputFormat) + try writer["deliveryDestinationArn"].write(value.deliveryDestinationArn) + try writer["deliverySourceName"].write(value.deliverySourceName) + try writer["fieldDelimiter"].write(value.fieldDelimiter) + try writer["recordFields"].writeList(value.recordFields, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["s3DeliveryConfiguration"].write(value.s3DeliveryConfiguration, with: CloudWatchLogsClientTypes.S3DeliveryConfiguration.write(value:to:)) try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) } } -extension PutDeliveryDestinationPolicyInput { +extension CreateExportTaskInput { - static func write(value: PutDeliveryDestinationPolicyInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: CreateExportTaskInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["deliveryDestinationName"].write(value.deliveryDestinationName) - try writer["deliveryDestinationPolicy"].write(value.deliveryDestinationPolicy) + try writer["destination"].write(value.destination) + try writer["destinationPrefix"].write(value.destinationPrefix) + try writer["from"].write(value.from) + try writer["logGroupName"].write(value.logGroupName) + try writer["logStreamNamePrefix"].write(value.logStreamNamePrefix) + try writer["taskName"].write(value.taskName) + try writer["to"].write(value.to) } } -extension PutDeliverySourceInput { +extension CreateLogAnomalyDetectorInput { - static func write(value: PutDeliverySourceInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: CreateLogAnomalyDetectorInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["logType"].write(value.logType) - try writer["name"].write(value.name) - try writer["resourceArn"].write(value.resourceArn) + try writer["anomalyVisibilityTime"].write(value.anomalyVisibilityTime) + try writer["detectorName"].write(value.detectorName) + try writer["evaluationFrequency"].write(value.evaluationFrequency) + try writer["filterPattern"].write(value.filterPattern) + try writer["kmsKeyId"].write(value.kmsKeyId) + try writer["logGroupArnList"].writeList(value.logGroupArnList, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) } } -extension PutDestinationInput { +extension CreateLogGroupInput { - static func write(value: PutDestinationInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: CreateLogGroupInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["destinationName"].write(value.destinationName) - try writer["roleArn"].write(value.roleArn) + try writer["kmsKeyId"].write(value.kmsKeyId) + try writer["logGroupClass"].write(value.logGroupClass) + try writer["logGroupName"].write(value.logGroupName) try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) - try writer["targetArn"].write(value.targetArn) - } -} - -extension PutDestinationPolicyInput { - - static func write(value: PutDestinationPolicyInput?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["accessPolicy"].write(value.accessPolicy) - try writer["destinationName"].write(value.destinationName) - try writer["forceUpdate"].write(value.forceUpdate) } } -extension PutLogEventsInput { +extension CreateLogStreamInput { - static func write(value: PutLogEventsInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: CreateLogStreamInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["entity"].write(value.entity, with: CloudWatchLogsClientTypes.Entity.write(value:to:)) - try writer["logEvents"].writeList(value.logEvents, memberWritingClosure: CloudWatchLogsClientTypes.InputLogEvent.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["logGroupName"].write(value.logGroupName) try writer["logStreamName"].write(value.logStreamName) - try writer["sequenceToken"].write(value.sequenceToken) } } -extension PutMetricFilterInput { +extension DeleteAccountPolicyInput { - static func write(value: PutMetricFilterInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteAccountPolicyInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["filterName"].write(value.filterName) - try writer["filterPattern"].write(value.filterPattern) - try writer["logGroupName"].write(value.logGroupName) - try writer["metricTransformations"].writeList(value.metricTransformations, memberWritingClosure: CloudWatchLogsClientTypes.MetricTransformation.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["policyName"].write(value.policyName) + try writer["policyType"].write(value.policyType) } } -extension PutQueryDefinitionInput { +extension DeleteDataProtectionPolicyInput { - static func write(value: PutQueryDefinitionInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteDataProtectionPolicyInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["clientToken"].write(value.clientToken) - try writer["logGroupNames"].writeList(value.logGroupNames, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["name"].write(value.name) - try writer["queryDefinitionId"].write(value.queryDefinitionId) - try writer["queryString"].write(value.queryString) + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) } } -extension PutResourcePolicyInput { +extension DeleteDeliveryInput { - static func write(value: PutResourcePolicyInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteDeliveryInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["policyDocument"].write(value.policyDocument) - try writer["policyName"].write(value.policyName) + try writer["id"].write(value.id) } } -extension PutRetentionPolicyInput { +extension DeleteDeliveryDestinationInput { - static func write(value: PutRetentionPolicyInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteDeliveryDestinationInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["logGroupName"].write(value.logGroupName) - try writer["retentionInDays"].write(value.retentionInDays) + try writer["name"].write(value.name) } } -extension PutSubscriptionFilterInput { +extension DeleteDeliveryDestinationPolicyInput { - static func write(value: PutSubscriptionFilterInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteDeliveryDestinationPolicyInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["destinationArn"].write(value.destinationArn) - try writer["distribution"].write(value.distribution) - try writer["filterName"].write(value.filterName) - try writer["filterPattern"].write(value.filterPattern) - try writer["logGroupName"].write(value.logGroupName) - try writer["roleArn"].write(value.roleArn) + try writer["deliveryDestinationName"].write(value.deliveryDestinationName) } } -extension StartLiveTailInput { +extension DeleteDeliverySourceInput { - static func write(value: StartLiveTailInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteDeliverySourceInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["logEventFilterPattern"].write(value.logEventFilterPattern) - try writer["logGroupIdentifiers"].writeList(value.logGroupIdentifiers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["logStreamNamePrefixes"].writeList(value.logStreamNamePrefixes, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["logStreamNames"].writeList(value.logStreamNames, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["name"].write(value.name) } } -extension StartQueryInput { +extension DeleteDestinationInput { - static func write(value: StartQueryInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteDestinationInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["endTime"].write(value.endTime) - try writer["limit"].write(value.limit) - try writer["logGroupIdentifiers"].writeList(value.logGroupIdentifiers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["logGroupName"].write(value.logGroupName) - try writer["logGroupNames"].writeList(value.logGroupNames, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["queryString"].write(value.queryString) - try writer["startTime"].write(value.startTime) + try writer["destinationName"].write(value.destinationName) } } -extension StopQueryInput { +extension DeleteIndexPolicyInput { - static func write(value: StopQueryInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteIndexPolicyInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["queryId"].write(value.queryId) + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) } } -extension TagLogGroupInput { +extension DeleteLogAnomalyDetectorInput { - static func write(value: TagLogGroupInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteLogAnomalyDetectorInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["logGroupName"].write(value.logGroupName) - try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + try writer["anomalyDetectorArn"].write(value.anomalyDetectorArn) } } -extension TagResourceInput { +extension DeleteLogGroupInput { - static func write(value: TagResourceInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteLogGroupInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["resourceArn"].write(value.resourceArn) - try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + try writer["logGroupName"].write(value.logGroupName) } } -extension TestMetricFilterInput { +extension DeleteLogStreamInput { - static func write(value: TestMetricFilterInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteLogStreamInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["filterPattern"].write(value.filterPattern) - try writer["logEventMessages"].writeList(value.logEventMessages, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["logGroupName"].write(value.logGroupName) + try writer["logStreamName"].write(value.logStreamName) } } -extension UntagLogGroupInput { +extension DeleteMetricFilterInput { - static func write(value: UntagLogGroupInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteMetricFilterInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["filterName"].write(value.filterName) try writer["logGroupName"].write(value.logGroupName) - try writer["tags"].writeList(value.tags, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) } } -extension UntagResourceInput { +extension DeleteQueryDefinitionInput { - static func write(value: UntagResourceInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteQueryDefinitionInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["resourceArn"].write(value.resourceArn) - try writer["tagKeys"].writeList(value.tagKeys, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["queryDefinitionId"].write(value.queryDefinitionId) } } -extension UpdateAnomalyInput { +extension DeleteResourcePolicyInput { - static func write(value: UpdateAnomalyInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteResourcePolicyInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["anomalyDetectorArn"].write(value.anomalyDetectorArn) - try writer["anomalyId"].write(value.anomalyId) - try writer["baseline"].write(value.baseline) - try writer["patternId"].write(value.patternId) - try writer["suppressionPeriod"].write(value.suppressionPeriod, with: CloudWatchLogsClientTypes.SuppressionPeriod.write(value:to:)) - try writer["suppressionType"].write(value.suppressionType) + try writer["policyName"].write(value.policyName) } } -extension UpdateDeliveryConfigurationInput { +extension DeleteRetentionPolicyInput { - static func write(value: UpdateDeliveryConfigurationInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteRetentionPolicyInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["fieldDelimiter"].write(value.fieldDelimiter) - try writer["id"].write(value.id) - try writer["recordFields"].writeList(value.recordFields, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) - try writer["s3DeliveryConfiguration"].write(value.s3DeliveryConfiguration, with: CloudWatchLogsClientTypes.S3DeliveryConfiguration.write(value:to:)) + try writer["logGroupName"].write(value.logGroupName) } } -extension UpdateLogAnomalyDetectorInput { +extension DeleteSubscriptionFilterInput { - static func write(value: UpdateLogAnomalyDetectorInput?, to writer: SmithyJSON.Writer) throws { + static func write(value: DeleteSubscriptionFilterInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["anomalyDetectorArn"].write(value.anomalyDetectorArn) - try writer["anomalyVisibilityTime"].write(value.anomalyVisibilityTime) - try writer["enabled"].write(value.enabled) - try writer["evaluationFrequency"].write(value.evaluationFrequency) - try writer["filterPattern"].write(value.filterPattern) + try writer["filterName"].write(value.filterName) + try writer["logGroupName"].write(value.logGroupName) } } -extension AssociateKmsKeyOutput { +extension DeleteTransformerInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> AssociateKmsKeyOutput { - return AssociateKmsKeyOutput() + static func write(value: DeleteTransformerInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) } } -extension CancelExportTaskOutput { +extension DescribeAccountPoliciesInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CancelExportTaskOutput { - return CancelExportTaskOutput() + static func write(value: DescribeAccountPoliciesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["accountIdentifiers"].writeList(value.accountIdentifiers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["nextToken"].write(value.nextToken) + try writer["policyName"].write(value.policyName) + try writer["policyType"].write(value.policyType) } } -extension CreateDeliveryOutput { +extension DescribeConfigurationTemplatesInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateDeliveryOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = CreateDeliveryOutput() - value.delivery = try reader["delivery"].readIfPresent(with: CloudWatchLogsClientTypes.Delivery.read(from:)) - return value + static func write(value: DescribeConfigurationTemplatesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["deliveryDestinationTypes"].writeList(value.deliveryDestinationTypes, memberWritingClosure: SmithyReadWrite.WritingClosureBox().write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["limit"].write(value.limit) + try writer["logTypes"].writeList(value.logTypes, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["nextToken"].write(value.nextToken) + try writer["resourceTypes"].writeList(value.resourceTypes, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["service"].write(value.service) } } -extension CreateExportTaskOutput { +extension DescribeDeliveriesInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateExportTaskOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = CreateExportTaskOutput() - value.taskId = try reader["taskId"].readIfPresent() - return value + static func write(value: DescribeDeliveriesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["limit"].write(value.limit) + try writer["nextToken"].write(value.nextToken) } } -extension CreateLogAnomalyDetectorOutput { +extension DescribeDeliveryDestinationsInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateLogAnomalyDetectorOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = CreateLogAnomalyDetectorOutput() - value.anomalyDetectorArn = try reader["anomalyDetectorArn"].readIfPresent() - return value + static func write(value: DescribeDeliveryDestinationsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["limit"].write(value.limit) + try writer["nextToken"].write(value.nextToken) } } -extension CreateLogGroupOutput { +extension DescribeDeliverySourcesInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateLogGroupOutput { - return CreateLogGroupOutput() + static func write(value: DescribeDeliverySourcesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["limit"].write(value.limit) + try writer["nextToken"].write(value.nextToken) } } -extension CreateLogStreamOutput { +extension DescribeDestinationsInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateLogStreamOutput { - return CreateLogStreamOutput() + static func write(value: DescribeDestinationsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["DestinationNamePrefix"].write(value.destinationNamePrefix) + try writer["limit"].write(value.limit) + try writer["nextToken"].write(value.nextToken) } } -extension DeleteAccountPolicyOutput { +extension DescribeExportTasksInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteAccountPolicyOutput { - return DeleteAccountPolicyOutput() + static func write(value: DescribeExportTasksInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["limit"].write(value.limit) + try writer["nextToken"].write(value.nextToken) + try writer["statusCode"].write(value.statusCode) + try writer["taskId"].write(value.taskId) } } -extension DeleteDataProtectionPolicyOutput { +extension DescribeFieldIndexesInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDataProtectionPolicyOutput { - return DeleteDataProtectionPolicyOutput() + static func write(value: DescribeFieldIndexesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupIdentifiers"].writeList(value.logGroupIdentifiers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["nextToken"].write(value.nextToken) } } -extension DeleteDeliveryOutput { +extension DescribeIndexPoliciesInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDeliveryOutput { - return DeleteDeliveryOutput() + static func write(value: DescribeIndexPoliciesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupIdentifiers"].writeList(value.logGroupIdentifiers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["nextToken"].write(value.nextToken) } } -extension DeleteDeliveryDestinationOutput { +extension DescribeLogGroupsInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDeliveryDestinationOutput { - return DeleteDeliveryDestinationOutput() + static func write(value: DescribeLogGroupsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["accountIdentifiers"].writeList(value.accountIdentifiers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["includeLinkedAccounts"].write(value.includeLinkedAccounts) + try writer["limit"].write(value.limit) + try writer["logGroupClass"].write(value.logGroupClass) + try writer["logGroupNamePattern"].write(value.logGroupNamePattern) + try writer["logGroupNamePrefix"].write(value.logGroupNamePrefix) + try writer["nextToken"].write(value.nextToken) } } -extension DeleteDeliveryDestinationPolicyOutput { +extension DescribeLogStreamsInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDeliveryDestinationPolicyOutput { - return DeleteDeliveryDestinationPolicyOutput() + static func write(value: DescribeLogStreamsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["descending"].write(value.descending) + try writer["limit"].write(value.limit) + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) + try writer["logGroupName"].write(value.logGroupName) + try writer["logStreamNamePrefix"].write(value.logStreamNamePrefix) + try writer["nextToken"].write(value.nextToken) + try writer["orderBy"].write(value.orderBy) } } -extension DeleteDeliverySourceOutput { +extension DescribeMetricFiltersInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDeliverySourceOutput { - return DeleteDeliverySourceOutput() + static func write(value: DescribeMetricFiltersInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["filterNamePrefix"].write(value.filterNamePrefix) + try writer["limit"].write(value.limit) + try writer["logGroupName"].write(value.logGroupName) + try writer["metricName"].write(value.metricName) + try writer["metricNamespace"].write(value.metricNamespace) + try writer["nextToken"].write(value.nextToken) } } -extension DeleteDestinationOutput { +extension DescribeQueriesInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDestinationOutput { - return DeleteDestinationOutput() + static func write(value: DescribeQueriesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupName"].write(value.logGroupName) + try writer["maxResults"].write(value.maxResults) + try writer["nextToken"].write(value.nextToken) + try writer["status"].write(value.status) } } -extension DeleteLogAnomalyDetectorOutput { +extension DescribeQueryDefinitionsInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteLogAnomalyDetectorOutput { - return DeleteLogAnomalyDetectorOutput() + static func write(value: DescribeQueryDefinitionsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["maxResults"].write(value.maxResults) + try writer["nextToken"].write(value.nextToken) + try writer["queryDefinitionNamePrefix"].write(value.queryDefinitionNamePrefix) } } -extension DeleteLogGroupOutput { +extension DescribeResourcePoliciesInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteLogGroupOutput { - return DeleteLogGroupOutput() + static func write(value: DescribeResourcePoliciesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["limit"].write(value.limit) + try writer["nextToken"].write(value.nextToken) } } -extension DeleteLogStreamOutput { +extension DescribeSubscriptionFiltersInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteLogStreamOutput { - return DeleteLogStreamOutput() + static func write(value: DescribeSubscriptionFiltersInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["filterNamePrefix"].write(value.filterNamePrefix) + try writer["limit"].write(value.limit) + try writer["logGroupName"].write(value.logGroupName) + try writer["nextToken"].write(value.nextToken) } } -extension DeleteMetricFilterOutput { +extension DisassociateKmsKeyInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteMetricFilterOutput { - return DeleteMetricFilterOutput() + static func write(value: DisassociateKmsKeyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupName"].write(value.logGroupName) + try writer["resourceIdentifier"].write(value.resourceIdentifier) } } -extension DeleteQueryDefinitionOutput { +extension FilterLogEventsInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteQueryDefinitionOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DeleteQueryDefinitionOutput() - value.success = try reader["success"].readIfPresent() ?? false - return value + static func write(value: FilterLogEventsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["endTime"].write(value.endTime) + try writer["filterPattern"].write(value.filterPattern) + try writer["interleaved"].write(value.interleaved) + try writer["limit"].write(value.limit) + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) + try writer["logGroupName"].write(value.logGroupName) + try writer["logStreamNamePrefix"].write(value.logStreamNamePrefix) + try writer["logStreamNames"].writeList(value.logStreamNames, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["nextToken"].write(value.nextToken) + try writer["startTime"].write(value.startTime) + try writer["unmask"].write(value.unmask) } } -extension DeleteResourcePolicyOutput { +extension GetDataProtectionPolicyInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteResourcePolicyOutput { - return DeleteResourcePolicyOutput() + static func write(value: GetDataProtectionPolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) } } -extension DeleteRetentionPolicyOutput { +extension GetDeliveryInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteRetentionPolicyOutput { - return DeleteRetentionPolicyOutput() + static func write(value: GetDeliveryInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["id"].write(value.id) } } -extension DeleteSubscriptionFilterOutput { +extension GetDeliveryDestinationInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteSubscriptionFilterOutput { - return DeleteSubscriptionFilterOutput() + static func write(value: GetDeliveryDestinationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["name"].write(value.name) } } -extension DescribeAccountPoliciesOutput { +extension GetDeliveryDestinationPolicyInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeAccountPoliciesOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeAccountPoliciesOutput() - value.accountPolicies = try reader["accountPolicies"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.AccountPolicy.read(from:), memberNodeInfo: "member", isFlattened: false) - return value + static func write(value: GetDeliveryDestinationPolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["deliveryDestinationName"].write(value.deliveryDestinationName) } } -extension DescribeConfigurationTemplatesOutput { +extension GetDeliverySourceInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeConfigurationTemplatesOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeConfigurationTemplatesOutput() - value.configurationTemplates = try reader["configurationTemplates"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.ConfigurationTemplate.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - return value + static func write(value: GetDeliverySourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["name"].write(value.name) } } -extension DescribeDeliveriesOutput { +extension GetLogAnomalyDetectorInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeDeliveriesOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeDeliveriesOutput() - value.deliveries = try reader["deliveries"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.Delivery.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - return value + static func write(value: GetLogAnomalyDetectorInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["anomalyDetectorArn"].write(value.anomalyDetectorArn) } } -extension DescribeDeliveryDestinationsOutput { +extension GetLogEventsInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeDeliveryDestinationsOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeDeliveryDestinationsOutput() - value.deliveryDestinations = try reader["deliveryDestinations"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.DeliveryDestination.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - return value + static func write(value: GetLogEventsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["endTime"].write(value.endTime) + try writer["limit"].write(value.limit) + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) + try writer["logGroupName"].write(value.logGroupName) + try writer["logStreamName"].write(value.logStreamName) + try writer["nextToken"].write(value.nextToken) + try writer["startFromHead"].write(value.startFromHead) + try writer["startTime"].write(value.startTime) + try writer["unmask"].write(value.unmask) } } -extension DescribeDeliverySourcesOutput { +extension GetLogGroupFieldsInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeDeliverySourcesOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeDeliverySourcesOutput() - value.deliverySources = try reader["deliverySources"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.DeliverySource.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - return value + static func write(value: GetLogGroupFieldsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) + try writer["logGroupName"].write(value.logGroupName) + try writer["time"].write(value.time) } } -extension DescribeDestinationsOutput { +extension GetLogRecordInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeDestinationsOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeDestinationsOutput() - value.destinations = try reader["destinations"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.Destination.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - return value + static func write(value: GetLogRecordInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logRecordPointer"].write(value.logRecordPointer) + try writer["unmask"].write(value.unmask) } } -extension DescribeExportTasksOutput { +extension GetQueryResultsInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeExportTasksOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeExportTasksOutput() - value.exportTasks = try reader["exportTasks"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.ExportTask.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - return value + static func write(value: GetQueryResultsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["queryId"].write(value.queryId) } } -extension DescribeLogGroupsOutput { +extension GetTransformerInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeLogGroupsOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeLogGroupsOutput() - value.logGroups = try reader["logGroups"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.LogGroup.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - return value + static func write(value: GetTransformerInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) } } -extension DescribeLogStreamsOutput { +extension ListAnomaliesInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeLogStreamsOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeLogStreamsOutput() - value.logStreams = try reader["logStreams"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.LogStream.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - return value + static func write(value: ListAnomaliesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["anomalyDetectorArn"].write(value.anomalyDetectorArn) + try writer["limit"].write(value.limit) + try writer["nextToken"].write(value.nextToken) + try writer["suppressionState"].write(value.suppressionState) } } -extension DescribeMetricFiltersOutput { +extension ListLogAnomalyDetectorsInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeMetricFiltersOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeMetricFiltersOutput() - value.metricFilters = try reader["metricFilters"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.MetricFilter.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - return value + static func write(value: ListLogAnomalyDetectorsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["filterLogGroupArn"].write(value.filterLogGroupArn) + try writer["limit"].write(value.limit) + try writer["nextToken"].write(value.nextToken) } } -extension DescribeQueriesOutput { +extension ListLogGroupsForQueryInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeQueriesOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeQueriesOutput() - value.nextToken = try reader["nextToken"].readIfPresent() - value.queries = try reader["queries"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.QueryInfo.read(from:), memberNodeInfo: "member", isFlattened: false) - return value + static func write(value: ListLogGroupsForQueryInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["maxResults"].write(value.maxResults) + try writer["nextToken"].write(value.nextToken) + try writer["queryId"].write(value.queryId) } } -extension DescribeQueryDefinitionsOutput { +extension ListTagsForResourceInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeQueryDefinitionsOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeQueryDefinitionsOutput() - value.nextToken = try reader["nextToken"].readIfPresent() - value.queryDefinitions = try reader["queryDefinitions"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.QueryDefinition.read(from:), memberNodeInfo: "member", isFlattened: false) - return value + static func write(value: ListTagsForResourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["resourceArn"].write(value.resourceArn) } } -extension DescribeResourcePoliciesOutput { +extension ListTagsLogGroupInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeResourcePoliciesOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeResourcePoliciesOutput() - value.nextToken = try reader["nextToken"].readIfPresent() - value.resourcePolicies = try reader["resourcePolicies"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.ResourcePolicy.read(from:), memberNodeInfo: "member", isFlattened: false) - return value + static func write(value: ListTagsLogGroupInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupName"].write(value.logGroupName) } } -extension DescribeSubscriptionFiltersOutput { +extension PutAccountPolicyInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeSubscriptionFiltersOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = DescribeSubscriptionFiltersOutput() - value.nextToken = try reader["nextToken"].readIfPresent() - value.subscriptionFilters = try reader["subscriptionFilters"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.SubscriptionFilter.read(from:), memberNodeInfo: "member", isFlattened: false) - return value + static func write(value: PutAccountPolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["policyDocument"].write(value.policyDocument) + try writer["policyName"].write(value.policyName) + try writer["policyType"].write(value.policyType) + try writer["scope"].write(value.scope) + try writer["selectionCriteria"].write(value.selectionCriteria) } } -extension DisassociateKmsKeyOutput { +extension PutDataProtectionPolicyInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DisassociateKmsKeyOutput { - return DisassociateKmsKeyOutput() + static func write(value: PutDataProtectionPolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) + try writer["policyDocument"].write(value.policyDocument) } } -extension FilterLogEventsOutput { +extension PutDeliveryDestinationInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> FilterLogEventsOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = FilterLogEventsOutput() - value.events = try reader["events"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.FilteredLogEvent.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - value.searchedLogStreams = try reader["searchedLogStreams"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.SearchedLogStream.read(from:), memberNodeInfo: "member", isFlattened: false) - return value + static func write(value: PutDeliveryDestinationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["deliveryDestinationConfiguration"].write(value.deliveryDestinationConfiguration, with: CloudWatchLogsClientTypes.DeliveryDestinationConfiguration.write(value:to:)) + try writer["name"].write(value.name) + try writer["outputFormat"].write(value.outputFormat) + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) } } -extension GetDataProtectionPolicyOutput { +extension PutDeliveryDestinationPolicyInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDataProtectionPolicyOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = GetDataProtectionPolicyOutput() - value.lastUpdatedTime = try reader["lastUpdatedTime"].readIfPresent() - value.logGroupIdentifier = try reader["logGroupIdentifier"].readIfPresent() - value.policyDocument = try reader["policyDocument"].readIfPresent() - return value + static func write(value: PutDeliveryDestinationPolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["deliveryDestinationName"].write(value.deliveryDestinationName) + try writer["deliveryDestinationPolicy"].write(value.deliveryDestinationPolicy) } } -extension GetDeliveryOutput { +extension PutDeliverySourceInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDeliveryOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = GetDeliveryOutput() - value.delivery = try reader["delivery"].readIfPresent(with: CloudWatchLogsClientTypes.Delivery.read(from:)) - return value + static func write(value: PutDeliverySourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logType"].write(value.logType) + try writer["name"].write(value.name) + try writer["resourceArn"].write(value.resourceArn) + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) } } -extension GetDeliveryDestinationOutput { +extension PutDestinationInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDeliveryDestinationOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = GetDeliveryDestinationOutput() - value.deliveryDestination = try reader["deliveryDestination"].readIfPresent(with: CloudWatchLogsClientTypes.DeliveryDestination.read(from:)) - return value + static func write(value: PutDestinationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["destinationName"].write(value.destinationName) + try writer["roleArn"].write(value.roleArn) + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + try writer["targetArn"].write(value.targetArn) } } -extension GetDeliveryDestinationPolicyOutput { +extension PutDestinationPolicyInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDeliveryDestinationPolicyOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = GetDeliveryDestinationPolicyOutput() - value.policy = try reader["policy"].readIfPresent(with: CloudWatchLogsClientTypes.Policy.read(from:)) - return value + static func write(value: PutDestinationPolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["accessPolicy"].write(value.accessPolicy) + try writer["destinationName"].write(value.destinationName) + try writer["forceUpdate"].write(value.forceUpdate) } } -extension GetDeliverySourceOutput { +extension PutIndexPolicyInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDeliverySourceOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = GetDeliverySourceOutput() - value.deliverySource = try reader["deliverySource"].readIfPresent(with: CloudWatchLogsClientTypes.DeliverySource.read(from:)) - return value + static func write(value: PutIndexPolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) + try writer["policyDocument"].write(value.policyDocument) } } -extension GetLogAnomalyDetectorOutput { +extension PutLogEventsInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetLogAnomalyDetectorOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = GetLogAnomalyDetectorOutput() - value.anomalyDetectorStatus = try reader["anomalyDetectorStatus"].readIfPresent() - value.anomalyVisibilityTime = try reader["anomalyVisibilityTime"].readIfPresent() - value.creationTimeStamp = try reader["creationTimeStamp"].readIfPresent() ?? 0 - value.detectorName = try reader["detectorName"].readIfPresent() - value.evaluationFrequency = try reader["evaluationFrequency"].readIfPresent() - value.filterPattern = try reader["filterPattern"].readIfPresent() - value.kmsKeyId = try reader["kmsKeyId"].readIfPresent() - value.lastModifiedTimeStamp = try reader["lastModifiedTimeStamp"].readIfPresent() ?? 0 - value.logGroupArnList = try reader["logGroupArnList"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) - return value + static func write(value: PutLogEventsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["entity"].write(value.entity, with: CloudWatchLogsClientTypes.Entity.write(value:to:)) + try writer["logEvents"].writeList(value.logEvents, memberWritingClosure: CloudWatchLogsClientTypes.InputLogEvent.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["logGroupName"].write(value.logGroupName) + try writer["logStreamName"].write(value.logStreamName) + try writer["sequenceToken"].write(value.sequenceToken) } } -extension GetLogEventsOutput { +extension PutMetricFilterInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetLogEventsOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = GetLogEventsOutput() - value.events = try reader["events"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.OutputLogEvent.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextBackwardToken = try reader["nextBackwardToken"].readIfPresent() - value.nextForwardToken = try reader["nextForwardToken"].readIfPresent() - return value + static func write(value: PutMetricFilterInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["applyOnTransformedLogs"].write(value.applyOnTransformedLogs) + try writer["filterName"].write(value.filterName) + try writer["filterPattern"].write(value.filterPattern) + try writer["logGroupName"].write(value.logGroupName) + try writer["metricTransformations"].writeList(value.metricTransformations, memberWritingClosure: CloudWatchLogsClientTypes.MetricTransformation.write(value:to:), memberNodeInfo: "member", isFlattened: false) } } -extension GetLogGroupFieldsOutput { +extension PutQueryDefinitionInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetLogGroupFieldsOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = GetLogGroupFieldsOutput() - value.logGroupFields = try reader["logGroupFields"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.LogGroupField.read(from:), memberNodeInfo: "member", isFlattened: false) - return value + static func write(value: PutQueryDefinitionInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["clientToken"].write(value.clientToken) + try writer["logGroupNames"].writeList(value.logGroupNames, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["name"].write(value.name) + try writer["queryDefinitionId"].write(value.queryDefinitionId) + try writer["queryString"].write(value.queryString) } } -extension GetLogRecordOutput { +extension PutResourcePolicyInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetLogRecordOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = GetLogRecordOutput() - value.logRecord = try reader["logRecord"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) - return value + static func write(value: PutResourcePolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["policyDocument"].write(value.policyDocument) + try writer["policyName"].write(value.policyName) } } -extension GetQueryResultsOutput { +extension PutRetentionPolicyInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetQueryResultsOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = GetQueryResultsOutput() - value.encryptionKey = try reader["encryptionKey"].readIfPresent() - value.results = try reader["results"].readListIfPresent(memberReadingClosure: SmithyReadWrite.listReadingClosure(memberReadingClosure: CloudWatchLogsClientTypes.ResultField.read(from:), memberNodeInfo: "member", isFlattened: false), memberNodeInfo: "member", isFlattened: false) - value.statistics = try reader["statistics"].readIfPresent(with: CloudWatchLogsClientTypes.QueryStatistics.read(from:)) - value.status = try reader["status"].readIfPresent() - return value + static func write(value: PutRetentionPolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupName"].write(value.logGroupName) + try writer["retentionInDays"].write(value.retentionInDays) } } -extension ListAnomaliesOutput { +extension PutSubscriptionFilterInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListAnomaliesOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = ListAnomaliesOutput() - value.anomalies = try reader["anomalies"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.Anomaly.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - return value - } -} - -extension ListLogAnomalyDetectorsOutput { - - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListLogAnomalyDetectorsOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = ListLogAnomalyDetectorsOutput() - value.anomalyDetectors = try reader["anomalyDetectors"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.AnomalyDetector.read(from:), memberNodeInfo: "member", isFlattened: false) - value.nextToken = try reader["nextToken"].readIfPresent() - return value + static func write(value: PutSubscriptionFilterInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["applyOnTransformedLogs"].write(value.applyOnTransformedLogs) + try writer["destinationArn"].write(value.destinationArn) + try writer["distribution"].write(value.distribution) + try writer["filterName"].write(value.filterName) + try writer["filterPattern"].write(value.filterPattern) + try writer["logGroupName"].write(value.logGroupName) + try writer["roleArn"].write(value.roleArn) } } -extension ListTagsForResourceOutput { +extension PutTransformerInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTagsForResourceOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = ListTagsForResourceOutput() - value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) - return value + static func write(value: PutTransformerInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupIdentifier"].write(value.logGroupIdentifier) + try writer["transformerConfig"].writeList(value.transformerConfig, memberWritingClosure: CloudWatchLogsClientTypes.Processor.write(value:to:), memberNodeInfo: "member", isFlattened: false) } } -extension ListTagsLogGroupOutput { +extension StartLiveTailInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTagsLogGroupOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = ListTagsLogGroupOutput() - value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) - return value + static func write(value: StartLiveTailInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logEventFilterPattern"].write(value.logEventFilterPattern) + try writer["logGroupIdentifiers"].writeList(value.logGroupIdentifiers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["logStreamNamePrefixes"].writeList(value.logStreamNamePrefixes, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["logStreamNames"].writeList(value.logStreamNames, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) } } -extension PutAccountPolicyOutput { +extension StartQueryInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutAccountPolicyOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = PutAccountPolicyOutput() - value.accountPolicy = try reader["accountPolicy"].readIfPresent(with: CloudWatchLogsClientTypes.AccountPolicy.read(from:)) - return value + static func write(value: StartQueryInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["endTime"].write(value.endTime) + try writer["limit"].write(value.limit) + try writer["logGroupIdentifiers"].writeList(value.logGroupIdentifiers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["logGroupName"].write(value.logGroupName) + try writer["logGroupNames"].writeList(value.logGroupNames, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["queryString"].write(value.queryString) + try writer["startTime"].write(value.startTime) } } -extension PutDataProtectionPolicyOutput { +extension StopQueryInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDataProtectionPolicyOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = PutDataProtectionPolicyOutput() - value.lastUpdatedTime = try reader["lastUpdatedTime"].readIfPresent() - value.logGroupIdentifier = try reader["logGroupIdentifier"].readIfPresent() - value.policyDocument = try reader["policyDocument"].readIfPresent() - return value + static func write(value: StopQueryInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["queryId"].write(value.queryId) } } -extension PutDeliveryDestinationOutput { +extension TagLogGroupInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDeliveryDestinationOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = PutDeliveryDestinationOutput() - value.deliveryDestination = try reader["deliveryDestination"].readIfPresent(with: CloudWatchLogsClientTypes.DeliveryDestination.read(from:)) - return value + static func write(value: TagLogGroupInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupName"].write(value.logGroupName) + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) } } -extension PutDeliveryDestinationPolicyOutput { +extension TagResourceInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDeliveryDestinationPolicyOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = PutDeliveryDestinationPolicyOutput() - value.policy = try reader["policy"].readIfPresent(with: CloudWatchLogsClientTypes.Policy.read(from:)) - return value + static func write(value: TagResourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["resourceArn"].write(value.resourceArn) + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) } } -extension PutDeliverySourceOutput { +extension TestMetricFilterInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDeliverySourceOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = PutDeliverySourceOutput() - value.deliverySource = try reader["deliverySource"].readIfPresent(with: CloudWatchLogsClientTypes.DeliverySource.read(from:)) - return value + static func write(value: TestMetricFilterInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["filterPattern"].write(value.filterPattern) + try writer["logEventMessages"].writeList(value.logEventMessages, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) } } -extension PutDestinationOutput { +extension TestTransformerInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDestinationOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = PutDestinationOutput() - value.destination = try reader["destination"].readIfPresent(with: CloudWatchLogsClientTypes.Destination.read(from:)) - return value + static func write(value: TestTransformerInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logEventMessages"].writeList(value.logEventMessages, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["transformerConfig"].writeList(value.transformerConfig, memberWritingClosure: CloudWatchLogsClientTypes.Processor.write(value:to:), memberNodeInfo: "member", isFlattened: false) } } -extension PutDestinationPolicyOutput { +extension UntagLogGroupInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDestinationPolicyOutput { - return PutDestinationPolicyOutput() + static func write(value: UntagLogGroupInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["logGroupName"].write(value.logGroupName) + try writer["tags"].writeList(value.tags, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) } } -extension PutLogEventsOutput { +extension UntagResourceInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutLogEventsOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = PutLogEventsOutput() - value.nextSequenceToken = try reader["nextSequenceToken"].readIfPresent() - value.rejectedEntityInfo = try reader["rejectedEntityInfo"].readIfPresent(with: CloudWatchLogsClientTypes.RejectedEntityInfo.read(from:)) - value.rejectedLogEventsInfo = try reader["rejectedLogEventsInfo"].readIfPresent(with: CloudWatchLogsClientTypes.RejectedLogEventsInfo.read(from:)) - return value + static func write(value: UntagResourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["resourceArn"].write(value.resourceArn) + try writer["tagKeys"].writeList(value.tagKeys, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) } } -extension PutMetricFilterOutput { +extension UpdateAnomalyInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutMetricFilterOutput { - return PutMetricFilterOutput() + static func write(value: UpdateAnomalyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["anomalyDetectorArn"].write(value.anomalyDetectorArn) + try writer["anomalyId"].write(value.anomalyId) + try writer["baseline"].write(value.baseline) + try writer["patternId"].write(value.patternId) + try writer["suppressionPeriod"].write(value.suppressionPeriod, with: CloudWatchLogsClientTypes.SuppressionPeriod.write(value:to:)) + try writer["suppressionType"].write(value.suppressionType) } } -extension PutQueryDefinitionOutput { +extension UpdateDeliveryConfigurationInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutQueryDefinitionOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = PutQueryDefinitionOutput() - value.queryDefinitionId = try reader["queryDefinitionId"].readIfPresent() - return value + static func write(value: UpdateDeliveryConfigurationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["fieldDelimiter"].write(value.fieldDelimiter) + try writer["id"].write(value.id) + try writer["recordFields"].writeList(value.recordFields, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["s3DeliveryConfiguration"].write(value.s3DeliveryConfiguration, with: CloudWatchLogsClientTypes.S3DeliveryConfiguration.write(value:to:)) } } -extension PutResourcePolicyOutput { +extension UpdateLogAnomalyDetectorInput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutResourcePolicyOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = PutResourcePolicyOutput() - value.resourcePolicy = try reader["resourcePolicy"].readIfPresent(with: CloudWatchLogsClientTypes.ResourcePolicy.read(from:)) - return value + static func write(value: UpdateLogAnomalyDetectorInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["anomalyDetectorArn"].write(value.anomalyDetectorArn) + try writer["anomalyVisibilityTime"].write(value.anomalyVisibilityTime) + try writer["enabled"].write(value.enabled) + try writer["evaluationFrequency"].write(value.evaluationFrequency) + try writer["filterPattern"].write(value.filterPattern) } } -extension PutRetentionPolicyOutput { +extension AssociateKmsKeyOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutRetentionPolicyOutput { - return PutRetentionPolicyOutput() + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> AssociateKmsKeyOutput { + return AssociateKmsKeyOutput() } } -extension PutSubscriptionFilterOutput { +extension CancelExportTaskOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutSubscriptionFilterOutput { - return PutSubscriptionFilterOutput() + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CancelExportTaskOutput { + return CancelExportTaskOutput() } } -extension StartLiveTailOutput { +extension CreateDeliveryOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartLiveTailOutput { - var value = StartLiveTailOutput() - if case let .stream(stream) = httpResponse.body { - let messageDecoder = SmithyEventStreams.DefaultMessageDecoder() - let decoderStream = SmithyEventStreams.DefaultMessageDecoderStream(stream: stream, messageDecoder: messageDecoder, unmarshalClosure: CloudWatchLogsClientTypes.StartLiveTailResponseStream.unmarshal) - value.responseStream = decoderStream.toAsyncStream() - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateDeliveryOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateDeliveryOutput() + value.delivery = try reader["delivery"].readIfPresent(with: CloudWatchLogsClientTypes.Delivery.read(from:)) return value } } -extension StartQueryOutput { +extension CreateExportTaskOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartQueryOutput { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateExportTaskOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader - var value = StartQueryOutput() - value.queryId = try reader["queryId"].readIfPresent() + var value = CreateExportTaskOutput() + value.taskId = try reader["taskId"].readIfPresent() return value } } -extension StopQueryOutput { +extension CreateLogAnomalyDetectorOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StopQueryOutput { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateLogAnomalyDetectorOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader - var value = StopQueryOutput() - value.success = try reader["success"].readIfPresent() ?? false + var value = CreateLogAnomalyDetectorOutput() + value.anomalyDetectorArn = try reader["anomalyDetectorArn"].readIfPresent() return value } } -extension TagLogGroupOutput { +extension CreateLogGroupOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TagLogGroupOutput { - return TagLogGroupOutput() + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateLogGroupOutput { + return CreateLogGroupOutput() } } -extension TagResourceOutput { +extension CreateLogStreamOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TagResourceOutput { - return TagResourceOutput() + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateLogStreamOutput { + return CreateLogStreamOutput() } } -extension TestMetricFilterOutput { +extension DeleteAccountPolicyOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TestMetricFilterOutput { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = TestMetricFilterOutput() - value.matches = try reader["matches"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.MetricFilterMatchRecord.read(from:), memberNodeInfo: "member", isFlattened: false) - return value + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteAccountPolicyOutput { + return DeleteAccountPolicyOutput() } } -extension UntagLogGroupOutput { +extension DeleteDataProtectionPolicyOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UntagLogGroupOutput { - return UntagLogGroupOutput() + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDataProtectionPolicyOutput { + return DeleteDataProtectionPolicyOutput() } } -extension UntagResourceOutput { +extension DeleteDeliveryOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UntagResourceOutput { - return UntagResourceOutput() + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDeliveryOutput { + return DeleteDeliveryOutput() } } -extension UpdateAnomalyOutput { +extension DeleteDeliveryDestinationOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateAnomalyOutput { - return UpdateAnomalyOutput() + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDeliveryDestinationOutput { + return DeleteDeliveryDestinationOutput() } } -extension UpdateDeliveryConfigurationOutput { +extension DeleteDeliveryDestinationPolicyOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateDeliveryConfigurationOutput { - return UpdateDeliveryConfigurationOutput() + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDeliveryDestinationPolicyOutput { + return DeleteDeliveryDestinationPolicyOutput() } } -extension UpdateLogAnomalyDetectorOutput { +extension DeleteDeliverySourceOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateLogAnomalyDetectorOutput { - return UpdateLogAnomalyDetectorOutput() + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDeliverySourceOutput { + return DeleteDeliverySourceOutput() } } -enum AssociateKmsKeyOutputError { +extension DeleteDestinationOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteDestinationOutput { + return DeleteDestinationOutput() } } -enum CancelExportTaskOutputError { +extension DeleteIndexPolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidOperationException": return try InvalidOperationException.makeError(baseError: baseError) - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteIndexPolicyOutput { + return DeleteIndexPolicyOutput() } } -enum CreateDeliveryOutputError { +extension DeleteLogAnomalyDetectorOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) - case "ConflictException": return try ConflictException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteLogAnomalyDetectorOutput { + return DeleteLogAnomalyDetectorOutput() } } -enum CreateExportTaskOutputError { +extension DeleteLogGroupOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceAlreadyExistsException": return try ResourceAlreadyExistsException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteLogGroupOutput { + return DeleteLogGroupOutput() } } -enum CreateLogAnomalyDetectorOutputError { +extension DeleteLogStreamOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteLogStreamOutput { + return DeleteLogStreamOutput() } } -enum CreateLogGroupOutputError { +extension DeleteMetricFilterOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceAlreadyExistsException": return try ResourceAlreadyExistsException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteMetricFilterOutput { + return DeleteMetricFilterOutput() } } -enum CreateLogStreamOutputError { +extension DeleteQueryDefinitionOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteQueryDefinitionOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceAlreadyExistsException": return try ResourceAlreadyExistsException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DeleteQueryDefinitionOutput() + value.success = try reader["success"].readIfPresent() ?? false + return value } } -enum DeleteAccountPolicyOutputError { +extension DeleteResourcePolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteResourcePolicyOutput { + return DeleteResourcePolicyOutput() } } -enum DeleteDataProtectionPolicyOutputError { +extension DeleteRetentionPolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteRetentionPolicyOutput { + return DeleteRetentionPolicyOutput() } } -enum DeleteDeliveryOutputError { +extension DeleteSubscriptionFilterOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ConflictException": return try ConflictException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteSubscriptionFilterOutput { + return DeleteSubscriptionFilterOutput() } } -enum DeleteDeliveryDestinationOutputError { +extension DeleteTransformerOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteTransformerOutput { + return DeleteTransformerOutput() + } +} + +extension DescribeAccountPoliciesOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeAccountPoliciesOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ConflictException": return try ConflictException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeAccountPoliciesOutput() + value.accountPolicies = try reader["accountPolicies"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.AccountPolicy.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DeleteDeliveryDestinationPolicyOutputError { +extension DescribeConfigurationTemplatesOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeConfigurationTemplatesOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ConflictException": return try ConflictException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeConfigurationTemplatesOutput() + value.configurationTemplates = try reader["configurationTemplates"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.ConfigurationTemplate.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DeleteDeliverySourceOutputError { +extension DescribeDeliveriesOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeDeliveriesOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ConflictException": return try ConflictException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeDeliveriesOutput() + value.deliveries = try reader["deliveries"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.Delivery.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DeleteDestinationOutputError { +extension DescribeDeliveryDestinationsOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeDeliveryDestinationsOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeDeliveryDestinationsOutput() + value.deliveryDestinations = try reader["deliveryDestinations"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.DeliveryDestination.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DeleteLogAnomalyDetectorOutputError { +extension DescribeDeliverySourcesOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeDeliverySourcesOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeDeliverySourcesOutput() + value.deliverySources = try reader["deliverySources"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.DeliverySource.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DeleteLogGroupOutputError { +extension DescribeDestinationsOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeDestinationsOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeDestinationsOutput() + value.destinations = try reader["destinations"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.Destination.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DeleteLogStreamOutputError { +extension DescribeExportTasksOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeExportTasksOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeExportTasksOutput() + value.exportTasks = try reader["exportTasks"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.ExportTask.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DeleteMetricFilterOutputError { +extension DescribeFieldIndexesOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeFieldIndexesOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeFieldIndexesOutput() + value.fieldIndexes = try reader["fieldIndexes"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.FieldIndex.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DeleteQueryDefinitionOutputError { +extension DescribeIndexPoliciesOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeIndexPoliciesOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeIndexPoliciesOutput() + value.indexPolicies = try reader["indexPolicies"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.IndexPolicy.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DeleteResourcePolicyOutputError { +extension DescribeLogGroupsOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeLogGroupsOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeLogGroupsOutput() + value.logGroups = try reader["logGroups"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.LogGroup.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DeleteRetentionPolicyOutputError { +extension DescribeLogStreamsOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeLogStreamsOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeLogStreamsOutput() + value.logStreams = try reader["logStreams"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.LogStream.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DeleteSubscriptionFilterOutputError { +extension DescribeMetricFiltersOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeMetricFiltersOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeMetricFiltersOutput() + value.metricFilters = try reader["metricFilters"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.MetricFilter.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum DescribeAccountPoliciesOutputError { +extension DescribeQueriesOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeQueriesOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeQueriesOutput() + value.nextToken = try reader["nextToken"].readIfPresent() + value.queries = try reader["queries"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.QueryInfo.read(from:), memberNodeInfo: "member", isFlattened: false) + return value } } -enum DescribeConfigurationTemplatesOutputError { +extension DescribeQueryDefinitionsOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeQueryDefinitionsOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeQueryDefinitionsOutput() + value.nextToken = try reader["nextToken"].readIfPresent() + value.queryDefinitions = try reader["queryDefinitions"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.QueryDefinition.read(from:), memberNodeInfo: "member", isFlattened: false) + return value } } -enum DescribeDeliveriesOutputError { +extension DescribeResourcePoliciesOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeResourcePoliciesOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeResourcePoliciesOutput() + value.nextToken = try reader["nextToken"].readIfPresent() + value.resourcePolicies = try reader["resourcePolicies"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.ResourcePolicy.read(from:), memberNodeInfo: "member", isFlattened: false) + return value } } -enum DescribeDeliveryDestinationsOutputError { +extension DescribeSubscriptionFiltersOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeSubscriptionFiltersOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = DescribeSubscriptionFiltersOutput() + value.nextToken = try reader["nextToken"].readIfPresent() + value.subscriptionFilters = try reader["subscriptionFilters"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.SubscriptionFilter.read(from:), memberNodeInfo: "member", isFlattened: false) + return value } } -enum DescribeDeliverySourcesOutputError { +extension DisassociateKmsKeyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DisassociateKmsKeyOutput { + return DisassociateKmsKeyOutput() } } -enum DescribeDestinationsOutputError { +extension FilterLogEventsOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> FilterLogEventsOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = FilterLogEventsOutput() + value.events = try reader["events"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.FilteredLogEvent.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + value.searchedLogStreams = try reader["searchedLogStreams"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.SearchedLogStream.read(from:), memberNodeInfo: "member", isFlattened: false) + return value } } -enum DescribeExportTasksOutputError { +extension GetDataProtectionPolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDataProtectionPolicyOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = GetDataProtectionPolicyOutput() + value.lastUpdatedTime = try reader["lastUpdatedTime"].readIfPresent() + value.logGroupIdentifier = try reader["logGroupIdentifier"].readIfPresent() + value.policyDocument = try reader["policyDocument"].readIfPresent() + return value } } -enum DescribeLogGroupsOutputError { +extension GetDeliveryOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDeliveryOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = GetDeliveryOutput() + value.delivery = try reader["delivery"].readIfPresent(with: CloudWatchLogsClientTypes.Delivery.read(from:)) + return value } } -enum DescribeLogStreamsOutputError { +extension GetDeliveryDestinationOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDeliveryDestinationOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = GetDeliveryDestinationOutput() + value.deliveryDestination = try reader["deliveryDestination"].readIfPresent(with: CloudWatchLogsClientTypes.DeliveryDestination.read(from:)) + return value } } -enum DescribeMetricFiltersOutputError { +extension GetDeliveryDestinationPolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDeliveryDestinationPolicyOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = GetDeliveryDestinationPolicyOutput() + value.policy = try reader["policy"].readIfPresent(with: CloudWatchLogsClientTypes.Policy.read(from:)) + return value } } -enum DescribeQueriesOutputError { +extension GetDeliverySourceOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetDeliverySourceOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = GetDeliverySourceOutput() + value.deliverySource = try reader["deliverySource"].readIfPresent(with: CloudWatchLogsClientTypes.DeliverySource.read(from:)) + return value } } -enum DescribeQueryDefinitionsOutputError { +extension GetLogAnomalyDetectorOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetLogAnomalyDetectorOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = GetLogAnomalyDetectorOutput() + value.anomalyDetectorStatus = try reader["anomalyDetectorStatus"].readIfPresent() + value.anomalyVisibilityTime = try reader["anomalyVisibilityTime"].readIfPresent() + value.creationTimeStamp = try reader["creationTimeStamp"].readIfPresent() ?? 0 + value.detectorName = try reader["detectorName"].readIfPresent() + value.evaluationFrequency = try reader["evaluationFrequency"].readIfPresent() + value.filterPattern = try reader["filterPattern"].readIfPresent() + value.kmsKeyId = try reader["kmsKeyId"].readIfPresent() + value.lastModifiedTimeStamp = try reader["lastModifiedTimeStamp"].readIfPresent() ?? 0 + value.logGroupArnList = try reader["logGroupArnList"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + return value } } -enum DescribeResourcePoliciesOutputError { +extension GetLogEventsOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetLogEventsOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = GetLogEventsOutput() + value.events = try reader["events"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.OutputLogEvent.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextBackwardToken = try reader["nextBackwardToken"].readIfPresent() + value.nextForwardToken = try reader["nextForwardToken"].readIfPresent() + return value } } -enum DescribeSubscriptionFiltersOutputError { +extension GetLogGroupFieldsOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetLogGroupFieldsOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = GetLogGroupFieldsOutput() + value.logGroupFields = try reader["logGroupFields"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.LogGroupField.read(from:), memberNodeInfo: "member", isFlattened: false) + return value } } -enum DisassociateKmsKeyOutputError { +extension GetLogRecordOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetLogRecordOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = GetLogRecordOutput() + value.logRecord = try reader["logRecord"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value } } -enum FilterLogEventsOutputError { +extension GetQueryResultsOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetQueryResultsOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = GetQueryResultsOutput() + value.encryptionKey = try reader["encryptionKey"].readIfPresent() + value.results = try reader["results"].readListIfPresent(memberReadingClosure: SmithyReadWrite.listReadingClosure(memberReadingClosure: CloudWatchLogsClientTypes.ResultField.read(from:), memberNodeInfo: "member", isFlattened: false), memberNodeInfo: "member", isFlattened: false) + value.statistics = try reader["statistics"].readIfPresent(with: CloudWatchLogsClientTypes.QueryStatistics.read(from:)) + value.status = try reader["status"].readIfPresent() + return value } } -enum GetDataProtectionPolicyOutputError { +extension GetTransformerOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetTransformerOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = GetTransformerOutput() + value.creationTime = try reader["creationTime"].readIfPresent() + value.lastModifiedTime = try reader["lastModifiedTime"].readIfPresent() + value.logGroupIdentifier = try reader["logGroupIdentifier"].readIfPresent() + value.transformerConfig = try reader["transformerConfig"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.Processor.read(from:), memberNodeInfo: "member", isFlattened: false) + return value } } -enum GetDeliveryOutputError { +extension ListAnomaliesOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListAnomaliesOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = ListAnomaliesOutput() + value.anomalies = try reader["anomalies"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.Anomaly.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum GetDeliveryDestinationOutputError { +extension ListLogAnomalyDetectorsOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListLogAnomalyDetectorsOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = ListLogAnomalyDetectorsOutput() + value.anomalyDetectors = try reader["anomalyDetectors"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.AnomalyDetector.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum GetDeliveryDestinationPolicyOutputError { +extension ListLogGroupsForQueryOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListLogGroupsForQueryOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = ListLogGroupsForQueryOutput() + value.logGroupIdentifiers = try reader["logGroupIdentifiers"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value } } -enum GetDeliverySourceOutputError { +extension ListTagsForResourceOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTagsForResourceOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = ListTagsForResourceOutput() + value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value } } -enum GetLogAnomalyDetectorOutputError { +extension ListTagsLogGroupOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTagsLogGroupOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = ListTagsLogGroupOutput() + value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value } } -enum GetLogEventsOutputError { +extension PutAccountPolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutAccountPolicyOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = PutAccountPolicyOutput() + value.accountPolicy = try reader["accountPolicy"].readIfPresent(with: CloudWatchLogsClientTypes.AccountPolicy.read(from:)) + return value } } -enum GetLogGroupFieldsOutputError { +extension PutDataProtectionPolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDataProtectionPolicyOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = PutDataProtectionPolicyOutput() + value.lastUpdatedTime = try reader["lastUpdatedTime"].readIfPresent() + value.logGroupIdentifier = try reader["logGroupIdentifier"].readIfPresent() + value.policyDocument = try reader["policyDocument"].readIfPresent() + return value } } -enum GetLogRecordOutputError { +extension PutDeliveryDestinationOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDeliveryDestinationOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = PutDeliveryDestinationOutput() + value.deliveryDestination = try reader["deliveryDestination"].readIfPresent(with: CloudWatchLogsClientTypes.DeliveryDestination.read(from:)) + return value } } -enum GetQueryResultsOutputError { +extension PutDeliveryDestinationPolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDeliveryDestinationPolicyOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = PutDeliveryDestinationPolicyOutput() + value.policy = try reader["policy"].readIfPresent(with: CloudWatchLogsClientTypes.Policy.read(from:)) + return value } } -enum ListAnomaliesOutputError { +extension PutDeliverySourceOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDeliverySourceOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = PutDeliverySourceOutput() + value.deliverySource = try reader["deliverySource"].readIfPresent(with: CloudWatchLogsClientTypes.DeliverySource.read(from:)) + return value } } -enum ListLogAnomalyDetectorsOutputError { +extension PutDestinationOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDestinationOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = PutDestinationOutput() + value.destination = try reader["destination"].readIfPresent(with: CloudWatchLogsClientTypes.Destination.read(from:)) + return value } } -enum ListTagsForResourceOutputError { +extension PutDestinationPolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutDestinationPolicyOutput { + return PutDestinationPolicyOutput() } } -enum ListTagsLogGroupOutputError { +extension PutIndexPolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutIndexPolicyOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = PutIndexPolicyOutput() + value.indexPolicy = try reader["indexPolicy"].readIfPresent(with: CloudWatchLogsClientTypes.IndexPolicy.read(from:)) + return value } } -enum PutAccountPolicyOutputError { +extension PutLogEventsOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutLogEventsOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = PutLogEventsOutput() + value.nextSequenceToken = try reader["nextSequenceToken"].readIfPresent() + value.rejectedEntityInfo = try reader["rejectedEntityInfo"].readIfPresent(with: CloudWatchLogsClientTypes.RejectedEntityInfo.read(from:)) + value.rejectedLogEventsInfo = try reader["rejectedLogEventsInfo"].readIfPresent(with: CloudWatchLogsClientTypes.RejectedLogEventsInfo.read(from:)) + return value } } -enum PutDataProtectionPolicyOutputError { +extension PutMetricFilterOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutMetricFilterOutput { + return PutMetricFilterOutput() } } -enum PutDeliveryDestinationOutputError { +extension PutQueryDefinitionOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutQueryDefinitionOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ConflictException": return try ConflictException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = PutQueryDefinitionOutput() + value.queryDefinitionId = try reader["queryDefinitionId"].readIfPresent() + return value } } -enum PutDeliveryDestinationPolicyOutputError { +extension PutResourcePolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutResourcePolicyOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ConflictException": return try ConflictException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + let reader = responseReader + var value = PutResourcePolicyOutput() + value.resourcePolicy = try reader["resourcePolicy"].readIfPresent(with: CloudWatchLogsClientTypes.ResourcePolicy.read(from:)) + return value } } -enum PutDeliverySourceOutputError { +extension PutRetentionPolicyOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ConflictException": return try ConflictException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutRetentionPolicyOutput { + return PutRetentionPolicyOutput() } } -enum PutDestinationOutputError { +extension PutSubscriptionFilterOutput { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutSubscriptionFilterOutput { + return PutSubscriptionFilterOutput() + } +} + +extension PutTransformerOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutTransformerOutput { + return PutTransformerOutput() + } +} + +extension StartLiveTailOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartLiveTailOutput { + var value = StartLiveTailOutput() + if case let .stream(stream) = httpResponse.body { + let messageDecoder = SmithyEventStreams.DefaultMessageDecoder() + let decoderStream = SmithyEventStreams.DefaultMessageDecoderStream(stream: stream, messageDecoder: messageDecoder, unmarshalClosure: CloudWatchLogsClientTypes.StartLiveTailResponseStream.unmarshal) + value.responseStream = decoderStream.toAsyncStream() + } + return value + } +} + +extension StartQueryOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartQueryOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = StartQueryOutput() + value.queryId = try reader["queryId"].readIfPresent() + return value + } +} + +extension StopQueryOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StopQueryOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = StopQueryOutput() + value.success = try reader["success"].readIfPresent() ?? false + return value + } +} + +extension TagLogGroupOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TagLogGroupOutput { + return TagLogGroupOutput() + } +} + +extension TagResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TagResourceOutput { + return TagResourceOutput() + } +} + +extension TestMetricFilterOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TestMetricFilterOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = TestMetricFilterOutput() + value.matches = try reader["matches"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.MetricFilterMatchRecord.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension TestTransformerOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TestTransformerOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = TestTransformerOutput() + value.transformedLogs = try reader["transformedLogs"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.TransformedLogRecord.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension UntagLogGroupOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UntagLogGroupOutput { + return UntagLogGroupOutput() + } +} + +extension UntagResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UntagResourceOutput { + return UntagResourceOutput() + } +} + +extension UpdateAnomalyOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateAnomalyOutput { + return UpdateAnomalyOutput() + } +} + +extension UpdateDeliveryConfigurationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateDeliveryConfigurationOutput { + return UpdateDeliveryConfigurationOutput() + } +} + +extension UpdateLogAnomalyDetectorOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateLogAnomalyDetectorOutput { + return UpdateLogAnomalyDetectorOutput() + } +} + +enum AssociateKmsKeyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } } -enum PutDestinationPolicyOutputError { +enum CancelExportTaskOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8254,15 +8755,16 @@ enum PutDestinationPolicyOutputError { let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) if let error = baseError.customError() { return error } switch baseError.code { + case "InvalidOperationException": return try InvalidOperationException.makeError(baseError: baseError) case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } } -enum PutLogEventsOutputError { +enum CreateDeliveryOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8270,18 +8772,19 @@ enum PutLogEventsOutputError { let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) if let error = baseError.customError() { return error } switch baseError.code { - case "DataAlreadyAcceptedException": return try DataAlreadyAcceptedException.makeError(baseError: baseError) - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "InvalidSequenceTokenException": return try InvalidSequenceTokenException.makeError(baseError: baseError) + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "UnrecognizedClientException": return try UnrecognizedClientException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } } -enum PutMetricFilterOutputError { +enum CreateExportTaskOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8292,6 +8795,7 @@ enum PutMetricFilterOutputError { case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceAlreadyExistsException": return try ResourceAlreadyExistsException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8299,7 +8803,7 @@ enum PutMetricFilterOutputError { } } -enum PutQueryDefinitionOutputError { +enum CreateLogAnomalyDetectorOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8309,6 +8813,7 @@ enum PutQueryDefinitionOutputError { switch baseError.code { case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8316,7 +8821,7 @@ enum PutQueryDefinitionOutputError { } } -enum PutResourcePolicyOutputError { +enum CreateLogGroupOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8326,13 +8831,15 @@ enum PutResourcePolicyOutputError { switch baseError.code { case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceAlreadyExistsException": return try ResourceAlreadyExistsException.makeError(baseError: baseError) case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } } -enum PutRetentionPolicyOutputError { +enum CreateLogStreamOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8341,7 +8848,7 @@ enum PutRetentionPolicyOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceAlreadyExistsException": return try ResourceAlreadyExistsException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8349,7 +8856,7 @@ enum PutRetentionPolicyOutputError { } } -enum PutSubscriptionFilterOutputError { +enum DeleteAccountPolicyOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8358,7 +8865,6 @@ enum PutSubscriptionFilterOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) @@ -8367,7 +8873,7 @@ enum PutSubscriptionFilterOutputError { } } -enum StartLiveTailOutputError { +enum DeleteDataProtectionPolicyOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8375,17 +8881,90 @@ enum StartLiveTailOutputError { let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) if let error = baseError.customError() { return error } switch baseError.code { - case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) - case "InvalidOperationException": return try InvalidOperationException.makeError(baseError: baseError) case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } } -enum StartQueryOutputError { +enum DeleteDeliveryOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteDeliveryDestinationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteDeliveryDestinationPolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteDeliverySourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteDestinationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8394,8 +8973,7 @@ enum StartQueryOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) - case "MalformedQueryException": return try MalformedQueryException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8403,7 +8981,7 @@ enum StartQueryOutputError { } } -enum StopQueryOutputError { +enum DeleteIndexPolicyOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8412,6 +8990,8 @@ enum StopQueryOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8419,7 +8999,7 @@ enum StopQueryOutputError { } } -enum TagLogGroupOutputError { +enum DeleteLogAnomalyDetectorOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8428,13 +9008,15 @@ enum TagLogGroupOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } } -enum TagResourceOutputError { +enum DeleteLogGroupOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8443,780 +9025,2419 @@ enum TagResourceOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "TooManyTagsException": return try TooManyTagsException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } } -enum TestMetricFilterOutputError { +enum DeleteLogStreamOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteMetricFilterOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteQueryDefinitionOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteResourcePolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteRetentionPolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteSubscriptionFilterOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteTransformerOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidOperationException": return try InvalidOperationException.makeError(baseError: baseError) + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeAccountPoliciesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeConfigurationTemplatesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeDeliveriesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeDeliveryDestinationsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeDeliverySourcesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeDestinationsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeExportTasksOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeFieldIndexesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeIndexPoliciesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeLogGroupsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeLogStreamsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeMetricFiltersOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeQueriesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeQueryDefinitionsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeResourcePoliciesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeSubscriptionFiltersOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DisassociateKmsKeyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum FilterLogEventsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetDataProtectionPolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetDeliveryOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetDeliveryDestinationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetDeliveryDestinationPolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetDeliverySourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetLogAnomalyDetectorOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetLogEventsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetLogGroupFieldsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetLogRecordOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetQueryResultsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetTransformerOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidOperationException": return try InvalidOperationException.makeError(baseError: baseError) + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListAnomaliesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListLogAnomalyDetectorsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListLogGroupsForQueryOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListTagsForResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListTagsLogGroupOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutAccountPolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutDataProtectionPolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutDeliveryDestinationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutDeliveryDestinationPolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutDeliverySourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutDestinationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutDestinationPolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutIndexPolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutLogEventsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "DataAlreadyAcceptedException": return try DataAlreadyAcceptedException.makeError(baseError: baseError) + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "InvalidSequenceTokenException": return try InvalidSequenceTokenException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "UnrecognizedClientException": return try UnrecognizedClientException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutMetricFilterOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidOperationException": return try InvalidOperationException.makeError(baseError: baseError) + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutQueryDefinitionOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutResourcePolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutRetentionPolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutSubscriptionFilterOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidOperationException": return try InvalidOperationException.makeError(baseError: baseError) + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum PutTransformerOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidOperationException": return try InvalidOperationException.makeError(baseError: baseError) + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum StartLiveTailOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InvalidOperationException": return try InvalidOperationException.makeError(baseError: baseError) + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum StartQueryOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "MalformedQueryException": return try MalformedQueryException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum StopQueryOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum TagLogGroupOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum TagResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "TooManyTagsException": return try TooManyTagsException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum TestMetricFilterOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum TestTransformerOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidOperationException": return try InvalidOperationException.makeError(baseError: baseError) + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UntagLogGroupOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UntagResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateAnomalyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateDeliveryConfigurationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateLogAnomalyDetectorOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +extension ResourceNotFoundException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ResourceNotFoundException { + let reader = baseError.errorBodyReader + var value = ResourceNotFoundException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension InvalidParameterException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidParameterException { + let reader = baseError.errorBodyReader + var value = InvalidParameterException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension OperationAbortedException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> OperationAbortedException { + let reader = baseError.errorBodyReader + var value = OperationAbortedException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ServiceUnavailableException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ServiceUnavailableException { + let reader = baseError.errorBodyReader + var value = ServiceUnavailableException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension InvalidOperationException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidOperationException { + let reader = baseError.errorBodyReader + var value = InvalidOperationException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ThrottlingException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ThrottlingException { + let reader = baseError.errorBodyReader + var value = ThrottlingException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ConflictException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ConflictException { + let reader = baseError.errorBodyReader + var value = ConflictException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ValidationException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ValidationException { + let reader = baseError.errorBodyReader + var value = ValidationException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension AccessDeniedException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> AccessDeniedException { + let reader = baseError.errorBodyReader + var value = AccessDeniedException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ServiceQuotaExceededException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ServiceQuotaExceededException { + let reader = baseError.errorBodyReader + var value = ServiceQuotaExceededException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension LimitExceededException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> LimitExceededException { + let reader = baseError.errorBodyReader + var value = LimitExceededException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ResourceAlreadyExistsException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ResourceAlreadyExistsException { + let reader = baseError.errorBodyReader + var value = ResourceAlreadyExistsException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension UnrecognizedClientException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> UnrecognizedClientException { + let reader = baseError.errorBodyReader + var value = UnrecognizedClientException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension InvalidSequenceTokenException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidSequenceTokenException { + let reader = baseError.errorBodyReader + var value = InvalidSequenceTokenException() + value.properties.expectedSequenceToken = try reader["expectedSequenceToken"].readIfPresent() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension DataAlreadyAcceptedException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> DataAlreadyAcceptedException { + let reader = baseError.errorBodyReader + var value = DataAlreadyAcceptedException() + value.properties.expectedSequenceToken = try reader["expectedSequenceToken"].readIfPresent() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension MalformedQueryException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> MalformedQueryException { + let reader = baseError.errorBodyReader + var value = MalformedQueryException() + value.properties.message = try reader["message"].readIfPresent() + value.properties.queryCompileError = try reader["queryCompileError"].readIfPresent(with: CloudWatchLogsClientTypes.QueryCompileError.read(from:)) + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension TooManyTagsException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> TooManyTagsException { + let reader = baseError.errorBodyReader + var value = TooManyTagsException() + value.properties.message = try reader["message"].readIfPresent() + value.properties.resourceName = try reader["resourceName"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension CloudWatchLogsClientTypes.StartLiveTailResponseStream { + static var unmarshal: SmithyEventStreamsAPI.UnmarshalClosure { + { message in + switch try message.type() { + case .event(let params): + switch params.eventType { + case "sessionStart": + let value = try SmithyJSON.Reader.readFrom(message.payload, with: CloudWatchLogsClientTypes.LiveTailSessionStart.read(from:)) + return .sessionstart(value) + case "sessionUpdate": + let value = try SmithyJSON.Reader.readFrom(message.payload, with: CloudWatchLogsClientTypes.LiveTailSessionUpdate.read(from:)) + return .sessionupdate(value) + default: + return .sdkUnknown("error processing event stream, unrecognized event: \(params.eventType)") + } + case .exception(let params): + let makeError: (SmithyEventStreamsAPI.Message, SmithyEventStreamsAPI.MessageType.ExceptionParams) throws -> Swift.Error = { message, params in + switch params.exceptionType { + case "SessionTimeoutException": + let value = try SmithyJSON.Reader.readFrom(message.payload, with: SessionTimeoutException.read(from:)) + return value + case "SessionStreamingException": + let value = try SmithyJSON.Reader.readFrom(message.payload, with: SessionStreamingException.read(from:)) + return value + default: + let httpResponse = SmithyHTTPAPI.HTTPResponse(body: .data(message.payload), statusCode: .ok) + return AWSClientRuntime.UnknownAWSHTTPServiceError(httpResponse: httpResponse, message: "error processing event stream, unrecognized ':exceptionType': \(params.exceptionType); contentType: \(params.contentType ?? "nil")", requestID: nil, typeName: nil) + } + } + let error = try makeError(message, params) + throw error + case .error(let params): + let httpResponse = SmithyHTTPAPI.HTTPResponse(body: .data(message.payload), statusCode: .ok) + throw AWSClientRuntime.UnknownAWSHTTPServiceError(httpResponse: httpResponse, message: "error processing event stream, unrecognized ':errorType': \(params.errorCode); message: \(params.message ?? "nil")", requestID: nil, typeName: nil) + case .unknown(messageType: let messageType): + throw Smithy.ClientError.unknownError("unrecognized event stream message ':message-type': \(messageType)") + } + } + } +} + +extension CloudWatchLogsClientTypes.Delivery { + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.Delivery { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.Delivery() + value.id = try reader["id"].readIfPresent() + value.arn = try reader["arn"].readIfPresent() + value.deliverySourceName = try reader["deliverySourceName"].readIfPresent() + value.deliveryDestinationArn = try reader["deliveryDestinationArn"].readIfPresent() + value.deliveryDestinationType = try reader["deliveryDestinationType"].readIfPresent() + value.recordFields = try reader["recordFields"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.fieldDelimiter = try reader["fieldDelimiter"].readIfPresent() + value.s3DeliveryConfiguration = try reader["s3DeliveryConfiguration"].readIfPresent(with: CloudWatchLogsClientTypes.S3DeliveryConfiguration.read(from:)) + value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value + } +} + +extension CloudWatchLogsClientTypes.S3DeliveryConfiguration { + + static func write(value: CloudWatchLogsClientTypes.S3DeliveryConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["enableHiveCompatiblePath"].write(value.enableHiveCompatiblePath) + try writer["suffixPath"].write(value.suffixPath) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.S3DeliveryConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.S3DeliveryConfiguration() + value.suffixPath = try reader["suffixPath"].readIfPresent() + value.enableHiveCompatiblePath = try reader["enableHiveCompatiblePath"].readIfPresent() + return value + } +} + +extension CloudWatchLogsClientTypes.AccountPolicy { + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.AccountPolicy { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.AccountPolicy() + value.policyName = try reader["policyName"].readIfPresent() + value.policyDocument = try reader["policyDocument"].readIfPresent() + value.lastUpdatedTime = try reader["lastUpdatedTime"].readIfPresent() + value.policyType = try reader["policyType"].readIfPresent() + value.scope = try reader["scope"].readIfPresent() + value.selectionCriteria = try reader["selectionCriteria"].readIfPresent() + value.accountId = try reader["accountId"].readIfPresent() + return value + } +} + +extension CloudWatchLogsClientTypes.ConfigurationTemplate { + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ConfigurationTemplate { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.ConfigurationTemplate() + value.service = try reader["service"].readIfPresent() + value.logType = try reader["logType"].readIfPresent() + value.resourceType = try reader["resourceType"].readIfPresent() + value.deliveryDestinationType = try reader["deliveryDestinationType"].readIfPresent() + value.defaultDeliveryConfigValues = try reader["defaultDeliveryConfigValues"].readIfPresent(with: CloudWatchLogsClientTypes.ConfigurationTemplateDeliveryConfigValues.read(from:)) + value.allowedFields = try reader["allowedFields"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.RecordField.read(from:), memberNodeInfo: "member", isFlattened: false) + value.allowedOutputFormats = try reader["allowedOutputFormats"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) + value.allowedActionForAllowVendedLogsDeliveryForResource = try reader["allowedActionForAllowVendedLogsDeliveryForResource"].readIfPresent() + value.allowedFieldDelimiters = try reader["allowedFieldDelimiters"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.allowedSuffixPathFields = try reader["allowedSuffixPathFields"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension CloudWatchLogsClientTypes.RecordField { + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.RecordField { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.RecordField() + value.name = try reader["name"].readIfPresent() + value.mandatory = try reader["mandatory"].readIfPresent() + return value + } +} + +extension CloudWatchLogsClientTypes.ConfigurationTemplateDeliveryConfigValues { + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ConfigurationTemplateDeliveryConfigValues { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.ConfigurationTemplateDeliveryConfigValues() + value.recordFields = try reader["recordFields"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.fieldDelimiter = try reader["fieldDelimiter"].readIfPresent() + value.s3DeliveryConfiguration = try reader["s3DeliveryConfiguration"].readIfPresent(with: CloudWatchLogsClientTypes.S3DeliveryConfiguration.read(from:)) + return value + } +} + +extension CloudWatchLogsClientTypes.DeliveryDestination { + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.DeliveryDestination { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.DeliveryDestination() + value.name = try reader["name"].readIfPresent() + value.arn = try reader["arn"].readIfPresent() + value.deliveryDestinationType = try reader["deliveryDestinationType"].readIfPresent() + value.outputFormat = try reader["outputFormat"].readIfPresent() + value.deliveryDestinationConfiguration = try reader["deliveryDestinationConfiguration"].readIfPresent(with: CloudWatchLogsClientTypes.DeliveryDestinationConfiguration.read(from:)) + value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value + } +} + +extension CloudWatchLogsClientTypes.DeliveryDestinationConfiguration { + + static func write(value: CloudWatchLogsClientTypes.DeliveryDestinationConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["destinationResourceArn"].write(value.destinationResourceArn) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.DeliveryDestinationConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.DeliveryDestinationConfiguration() + value.destinationResourceArn = try reader["destinationResourceArn"].readIfPresent() ?? "" + return value + } +} + +extension CloudWatchLogsClientTypes.DeliverySource { + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.DeliverySource { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.DeliverySource() + value.name = try reader["name"].readIfPresent() + value.arn = try reader["arn"].readIfPresent() + value.resourceArns = try reader["resourceArns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.service = try reader["service"].readIfPresent() + value.logType = try reader["logType"].readIfPresent() + value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value + } +} + +extension CloudWatchLogsClientTypes.Destination { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.Destination { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.Destination() + value.destinationName = try reader["destinationName"].readIfPresent() + value.targetArn = try reader["targetArn"].readIfPresent() + value.roleArn = try reader["roleArn"].readIfPresent() + value.accessPolicy = try reader["accessPolicy"].readIfPresent() + value.arn = try reader["arn"].readIfPresent() + value.creationTime = try reader["creationTime"].readIfPresent() + return value } } -enum UntagLogGroupOutputError { +extension CloudWatchLogsClientTypes.ExportTask { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ExportTask { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.ExportTask() + value.taskId = try reader["taskId"].readIfPresent() + value.taskName = try reader["taskName"].readIfPresent() + value.logGroupName = try reader["logGroupName"].readIfPresent() + value.from = try reader["from"].readIfPresent() + value.to = try reader["to"].readIfPresent() + value.destination = try reader["destination"].readIfPresent() + value.destinationPrefix = try reader["destinationPrefix"].readIfPresent() + value.status = try reader["status"].readIfPresent(with: CloudWatchLogsClientTypes.ExportTaskStatus.read(from:)) + value.executionInfo = try reader["executionInfo"].readIfPresent(with: CloudWatchLogsClientTypes.ExportTaskExecutionInfo.read(from:)) + return value } } -enum UntagResourceOutputError { +extension CloudWatchLogsClientTypes.ExportTaskExecutionInfo { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ExportTaskExecutionInfo { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.ExportTaskExecutionInfo() + value.creationTime = try reader["creationTime"].readIfPresent() + value.completionTime = try reader["completionTime"].readIfPresent() + return value } } -enum UpdateAnomalyOutputError { +extension CloudWatchLogsClientTypes.ExportTaskStatus { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ExportTaskStatus { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.ExportTaskStatus() + value.code = try reader["code"].readIfPresent() + value.message = try reader["message"].readIfPresent() + return value } } -enum UpdateDeliveryConfigurationOutputError { +extension CloudWatchLogsClientTypes.FieldIndex { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) - case "ConflictException": return try ConflictException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) - case "ValidationException": return try ValidationException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.FieldIndex { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.FieldIndex() + value.logGroupIdentifier = try reader["logGroupIdentifier"].readIfPresent() + value.fieldIndexName = try reader["fieldIndexName"].readIfPresent() + value.lastScanTime = try reader["lastScanTime"].readIfPresent() + value.firstEventTime = try reader["firstEventTime"].readIfPresent() + value.lastEventTime = try reader["lastEventTime"].readIfPresent() + return value } } -enum UpdateLogAnomalyDetectorOutputError { +extension CloudWatchLogsClientTypes.IndexPolicy { - static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { - let data = try await httpResponse.data() - let responseReader = try SmithyJSON.Reader.from(data: data) - let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) - if let error = baseError.customError() { return error } - switch baseError.code { - case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) - case "OperationAbortedException": return try OperationAbortedException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceUnavailableException": return try ServiceUnavailableException.makeError(baseError: baseError) - default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) - } + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.IndexPolicy { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.IndexPolicy() + value.logGroupIdentifier = try reader["logGroupIdentifier"].readIfPresent() + value.lastUpdateTime = try reader["lastUpdateTime"].readIfPresent() + value.policyDocument = try reader["policyDocument"].readIfPresent() + value.policyName = try reader["policyName"].readIfPresent() + value.source = try reader["source"].readIfPresent() + return value } } -extension ResourceNotFoundException { +extension CloudWatchLogsClientTypes.LogGroup { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ResourceNotFoundException { - let reader = baseError.errorBodyReader - var value = ResourceNotFoundException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.LogGroup { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.LogGroup() + value.logGroupName = try reader["logGroupName"].readIfPresent() + value.creationTime = try reader["creationTime"].readIfPresent() + value.retentionInDays = try reader["retentionInDays"].readIfPresent() + value.metricFilterCount = try reader["metricFilterCount"].readIfPresent() + value.arn = try reader["arn"].readIfPresent() + value.storedBytes = try reader["storedBytes"].readIfPresent() + value.kmsKeyId = try reader["kmsKeyId"].readIfPresent() + value.dataProtectionStatus = try reader["dataProtectionStatus"].readIfPresent() + value.inheritedProperties = try reader["inheritedProperties"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) + value.logGroupClass = try reader["logGroupClass"].readIfPresent() + value.logGroupArn = try reader["logGroupArn"].readIfPresent() return value } } -extension InvalidParameterException { +extension CloudWatchLogsClientTypes.LogStream { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidParameterException { - let reader = baseError.errorBodyReader - var value = InvalidParameterException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.LogStream { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.LogStream() + value.logStreamName = try reader["logStreamName"].readIfPresent() + value.creationTime = try reader["creationTime"].readIfPresent() + value.firstEventTimestamp = try reader["firstEventTimestamp"].readIfPresent() + value.lastEventTimestamp = try reader["lastEventTimestamp"].readIfPresent() + value.lastIngestionTime = try reader["lastIngestionTime"].readIfPresent() + value.uploadSequenceToken = try reader["uploadSequenceToken"].readIfPresent() + value.arn = try reader["arn"].readIfPresent() + value.storedBytes = try reader["storedBytes"].readIfPresent() return value } } -extension OperationAbortedException { +extension CloudWatchLogsClientTypes.MetricFilter { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> OperationAbortedException { - let reader = baseError.errorBodyReader - var value = OperationAbortedException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.MetricFilter { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.MetricFilter() + value.filterName = try reader["filterName"].readIfPresent() + value.filterPattern = try reader["filterPattern"].readIfPresent() + value.metricTransformations = try reader["metricTransformations"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.MetricTransformation.read(from:), memberNodeInfo: "member", isFlattened: false) + value.creationTime = try reader["creationTime"].readIfPresent() + value.logGroupName = try reader["logGroupName"].readIfPresent() + value.applyOnTransformedLogs = try reader["applyOnTransformedLogs"].readIfPresent() ?? false return value } } -extension ServiceUnavailableException { +extension CloudWatchLogsClientTypes.MetricTransformation { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ServiceUnavailableException { - let reader = baseError.errorBodyReader - var value = ServiceUnavailableException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func write(value: CloudWatchLogsClientTypes.MetricTransformation?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["defaultValue"].write(value.defaultValue) + try writer["dimensions"].writeMap(value.dimensions, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + try writer["metricName"].write(value.metricName) + try writer["metricNamespace"].write(value.metricNamespace) + try writer["metricValue"].write(value.metricValue) + try writer["unit"].write(value.unit) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.MetricTransformation { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.MetricTransformation() + value.metricName = try reader["metricName"].readIfPresent() ?? "" + value.metricNamespace = try reader["metricNamespace"].readIfPresent() ?? "" + value.metricValue = try reader["metricValue"].readIfPresent() ?? "" + value.defaultValue = try reader["defaultValue"].readIfPresent() + value.dimensions = try reader["dimensions"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.unit = try reader["unit"].readIfPresent() return value } } -extension InvalidOperationException { +extension CloudWatchLogsClientTypes.QueryInfo { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidOperationException { - let reader = baseError.errorBodyReader - var value = InvalidOperationException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.QueryInfo { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.QueryInfo() + value.queryId = try reader["queryId"].readIfPresent() + value.queryString = try reader["queryString"].readIfPresent() + value.status = try reader["status"].readIfPresent() + value.createTime = try reader["createTime"].readIfPresent() + value.logGroupName = try reader["logGroupName"].readIfPresent() return value } } -extension ThrottlingException { +extension CloudWatchLogsClientTypes.QueryDefinition { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ThrottlingException { - let reader = baseError.errorBodyReader - var value = ThrottlingException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.QueryDefinition { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.QueryDefinition() + value.queryDefinitionId = try reader["queryDefinitionId"].readIfPresent() + value.name = try reader["name"].readIfPresent() + value.queryString = try reader["queryString"].readIfPresent() + value.lastModified = try reader["lastModified"].readIfPresent() + value.logGroupNames = try reader["logGroupNames"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) return value } } -extension ConflictException { +extension CloudWatchLogsClientTypes.ResourcePolicy { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ConflictException { - let reader = baseError.errorBodyReader - var value = ConflictException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ResourcePolicy { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.ResourcePolicy() + value.policyName = try reader["policyName"].readIfPresent() + value.policyDocument = try reader["policyDocument"].readIfPresent() + value.lastUpdatedTime = try reader["lastUpdatedTime"].readIfPresent() return value } } -extension ValidationException { +extension CloudWatchLogsClientTypes.SubscriptionFilter { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ValidationException { - let reader = baseError.errorBodyReader - var value = ValidationException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.SubscriptionFilter { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.SubscriptionFilter() + value.filterName = try reader["filterName"].readIfPresent() + value.logGroupName = try reader["logGroupName"].readIfPresent() + value.filterPattern = try reader["filterPattern"].readIfPresent() + value.destinationArn = try reader["destinationArn"].readIfPresent() + value.roleArn = try reader["roleArn"].readIfPresent() + value.distribution = try reader["distribution"].readIfPresent() + value.applyOnTransformedLogs = try reader["applyOnTransformedLogs"].readIfPresent() ?? false + value.creationTime = try reader["creationTime"].readIfPresent() return value } } -extension AccessDeniedException { +extension CloudWatchLogsClientTypes.FilteredLogEvent { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> AccessDeniedException { - let reader = baseError.errorBodyReader - var value = AccessDeniedException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.FilteredLogEvent { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.FilteredLogEvent() + value.logStreamName = try reader["logStreamName"].readIfPresent() + value.timestamp = try reader["timestamp"].readIfPresent() + value.message = try reader["message"].readIfPresent() + value.ingestionTime = try reader["ingestionTime"].readIfPresent() + value.eventId = try reader["eventId"].readIfPresent() return value } } -extension ServiceQuotaExceededException { +extension CloudWatchLogsClientTypes.SearchedLogStream { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ServiceQuotaExceededException { - let reader = baseError.errorBodyReader - var value = ServiceQuotaExceededException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.SearchedLogStream { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.SearchedLogStream() + value.logStreamName = try reader["logStreamName"].readIfPresent() + value.searchedCompletely = try reader["searchedCompletely"].readIfPresent() return value } } -extension LimitExceededException { +extension CloudWatchLogsClientTypes.Policy { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> LimitExceededException { - let reader = baseError.errorBodyReader - var value = LimitExceededException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.Policy { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.Policy() + value.deliveryDestinationPolicy = try reader["deliveryDestinationPolicy"].readIfPresent() return value } } -extension ResourceAlreadyExistsException { +extension CloudWatchLogsClientTypes.OutputLogEvent { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ResourceAlreadyExistsException { - let reader = baseError.errorBodyReader - var value = ResourceAlreadyExistsException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.OutputLogEvent { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.OutputLogEvent() + value.timestamp = try reader["timestamp"].readIfPresent() + value.message = try reader["message"].readIfPresent() + value.ingestionTime = try reader["ingestionTime"].readIfPresent() return value } } -extension UnrecognizedClientException { +extension CloudWatchLogsClientTypes.LogGroupField { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> UnrecognizedClientException { - let reader = baseError.errorBodyReader - var value = UnrecognizedClientException() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.LogGroupField { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.LogGroupField() + value.name = try reader["name"].readIfPresent() + value.percent = try reader["percent"].readIfPresent() ?? 0 return value } } -extension InvalidSequenceTokenException { +extension CloudWatchLogsClientTypes.ResultField { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidSequenceTokenException { - let reader = baseError.errorBodyReader - var value = InvalidSequenceTokenException() - value.properties.expectedSequenceToken = try reader["expectedSequenceToken"].readIfPresent() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ResultField { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.ResultField() + value.field = try reader["field"].readIfPresent() + value.value = try reader["value"].readIfPresent() return value } } -extension DataAlreadyAcceptedException { +extension CloudWatchLogsClientTypes.QueryStatistics { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> DataAlreadyAcceptedException { - let reader = baseError.errorBodyReader - var value = DataAlreadyAcceptedException() - value.properties.expectedSequenceToken = try reader["expectedSequenceToken"].readIfPresent() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.QueryStatistics { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.QueryStatistics() + value.recordsMatched = try reader["recordsMatched"].readIfPresent() ?? 0 + value.recordsScanned = try reader["recordsScanned"].readIfPresent() ?? 0 + value.estimatedRecordsSkipped = try reader["estimatedRecordsSkipped"].readIfPresent() ?? 0 + value.bytesScanned = try reader["bytesScanned"].readIfPresent() ?? 0 + value.estimatedBytesSkipped = try reader["estimatedBytesSkipped"].readIfPresent() ?? 0 + value.logGroupsScanned = try reader["logGroupsScanned"].readIfPresent() ?? 0 return value } } -extension MalformedQueryException { +extension CloudWatchLogsClientTypes.Processor { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> MalformedQueryException { - let reader = baseError.errorBodyReader - var value = MalformedQueryException() - value.properties.message = try reader["message"].readIfPresent() - value.properties.queryCompileError = try reader["queryCompileError"].readIfPresent(with: CloudWatchLogsClientTypes.QueryCompileError.read(from:)) - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message + static func write(value: CloudWatchLogsClientTypes.Processor?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["addKeys"].write(value.addKeys, with: CloudWatchLogsClientTypes.AddKeys.write(value:to:)) + try writer["copyValue"].write(value.copyValue, with: CloudWatchLogsClientTypes.CopyValue.write(value:to:)) + try writer["csv"].write(value.csv, with: CloudWatchLogsClientTypes.CSV.write(value:to:)) + try writer["dateTimeConverter"].write(value.dateTimeConverter, with: CloudWatchLogsClientTypes.DateTimeConverter.write(value:to:)) + try writer["deleteKeys"].write(value.deleteKeys, with: CloudWatchLogsClientTypes.DeleteKeys.write(value:to:)) + try writer["grok"].write(value.grok, with: CloudWatchLogsClientTypes.Grok.write(value:to:)) + try writer["listToMap"].write(value.listToMap, with: CloudWatchLogsClientTypes.ListToMap.write(value:to:)) + try writer["lowerCaseString"].write(value.lowerCaseString, with: CloudWatchLogsClientTypes.LowerCaseString.write(value:to:)) + try writer["moveKeys"].write(value.moveKeys, with: CloudWatchLogsClientTypes.MoveKeys.write(value:to:)) + try writer["parseCloudfront"].write(value.parseCloudfront, with: CloudWatchLogsClientTypes.ParseCloudfront.write(value:to:)) + try writer["parseJSON"].write(value.parseJSON, with: CloudWatchLogsClientTypes.ParseJSON.write(value:to:)) + try writer["parseKeyValue"].write(value.parseKeyValue, with: CloudWatchLogsClientTypes.ParseKeyValue.write(value:to:)) + try writer["parsePostgres"].write(value.parsePostgres, with: CloudWatchLogsClientTypes.ParsePostgres.write(value:to:)) + try writer["parseRoute53"].write(value.parseRoute53, with: CloudWatchLogsClientTypes.ParseRoute53.write(value:to:)) + try writer["parseVPC"].write(value.parseVPC, with: CloudWatchLogsClientTypes.ParseVPC.write(value:to:)) + try writer["parseWAF"].write(value.parseWAF, with: CloudWatchLogsClientTypes.ParseWAF.write(value:to:)) + try writer["renameKeys"].write(value.renameKeys, with: CloudWatchLogsClientTypes.RenameKeys.write(value:to:)) + try writer["splitString"].write(value.splitString, with: CloudWatchLogsClientTypes.SplitString.write(value:to:)) + try writer["substituteString"].write(value.substituteString, with: CloudWatchLogsClientTypes.SubstituteString.write(value:to:)) + try writer["trimString"].write(value.trimString, with: CloudWatchLogsClientTypes.TrimString.write(value:to:)) + try writer["typeConverter"].write(value.typeConverter, with: CloudWatchLogsClientTypes.TypeConverter.write(value:to:)) + try writer["upperCaseString"].write(value.upperCaseString, with: CloudWatchLogsClientTypes.UpperCaseString.write(value:to:)) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.Processor { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.Processor() + value.addKeys = try reader["addKeys"].readIfPresent(with: CloudWatchLogsClientTypes.AddKeys.read(from:)) + value.copyValue = try reader["copyValue"].readIfPresent(with: CloudWatchLogsClientTypes.CopyValue.read(from:)) + value.csv = try reader["csv"].readIfPresent(with: CloudWatchLogsClientTypes.CSV.read(from:)) + value.dateTimeConverter = try reader["dateTimeConverter"].readIfPresent(with: CloudWatchLogsClientTypes.DateTimeConverter.read(from:)) + value.deleteKeys = try reader["deleteKeys"].readIfPresent(with: CloudWatchLogsClientTypes.DeleteKeys.read(from:)) + value.grok = try reader["grok"].readIfPresent(with: CloudWatchLogsClientTypes.Grok.read(from:)) + value.listToMap = try reader["listToMap"].readIfPresent(with: CloudWatchLogsClientTypes.ListToMap.read(from:)) + value.lowerCaseString = try reader["lowerCaseString"].readIfPresent(with: CloudWatchLogsClientTypes.LowerCaseString.read(from:)) + value.moveKeys = try reader["moveKeys"].readIfPresent(with: CloudWatchLogsClientTypes.MoveKeys.read(from:)) + value.parseCloudfront = try reader["parseCloudfront"].readIfPresent(with: CloudWatchLogsClientTypes.ParseCloudfront.read(from:)) + value.parseJSON = try reader["parseJSON"].readIfPresent(with: CloudWatchLogsClientTypes.ParseJSON.read(from:)) + value.parseKeyValue = try reader["parseKeyValue"].readIfPresent(with: CloudWatchLogsClientTypes.ParseKeyValue.read(from:)) + value.parseRoute53 = try reader["parseRoute53"].readIfPresent(with: CloudWatchLogsClientTypes.ParseRoute53.read(from:)) + value.parsePostgres = try reader["parsePostgres"].readIfPresent(with: CloudWatchLogsClientTypes.ParsePostgres.read(from:)) + value.parseVPC = try reader["parseVPC"].readIfPresent(with: CloudWatchLogsClientTypes.ParseVPC.read(from:)) + value.parseWAF = try reader["parseWAF"].readIfPresent(with: CloudWatchLogsClientTypes.ParseWAF.read(from:)) + value.renameKeys = try reader["renameKeys"].readIfPresent(with: CloudWatchLogsClientTypes.RenameKeys.read(from:)) + value.splitString = try reader["splitString"].readIfPresent(with: CloudWatchLogsClientTypes.SplitString.read(from:)) + value.substituteString = try reader["substituteString"].readIfPresent(with: CloudWatchLogsClientTypes.SubstituteString.read(from:)) + value.trimString = try reader["trimString"].readIfPresent(with: CloudWatchLogsClientTypes.TrimString.read(from:)) + value.typeConverter = try reader["typeConverter"].readIfPresent(with: CloudWatchLogsClientTypes.TypeConverter.read(from:)) + value.upperCaseString = try reader["upperCaseString"].readIfPresent(with: CloudWatchLogsClientTypes.UpperCaseString.read(from:)) return value } } -extension TooManyTagsException { +extension CloudWatchLogsClientTypes.UpperCaseString { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> TooManyTagsException { - let reader = baseError.errorBodyReader - var value = TooManyTagsException() - value.properties.message = try reader["message"].readIfPresent() - value.properties.resourceName = try reader["resourceName"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message - return value + static func write(value: CloudWatchLogsClientTypes.UpperCaseString?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["withKeys"].writeList(value.withKeys, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) } -} -extension CloudWatchLogsClientTypes.StartLiveTailResponseStream { - static var unmarshal: SmithyEventStreamsAPI.UnmarshalClosure { - { message in - switch try message.type() { - case .event(let params): - switch params.eventType { - case "sessionStart": - let value = try SmithyJSON.Reader.readFrom(message.payload, with: CloudWatchLogsClientTypes.LiveTailSessionStart.read(from:)) - return .sessionstart(value) - case "sessionUpdate": - let value = try SmithyJSON.Reader.readFrom(message.payload, with: CloudWatchLogsClientTypes.LiveTailSessionUpdate.read(from:)) - return .sessionupdate(value) - default: - return .sdkUnknown("error processing event stream, unrecognized event: \(params.eventType)") - } - case .exception(let params): - let makeError: (SmithyEventStreamsAPI.Message, SmithyEventStreamsAPI.MessageType.ExceptionParams) throws -> Swift.Error = { message, params in - switch params.exceptionType { - case "SessionTimeoutException": - let value = try SmithyJSON.Reader.readFrom(message.payload, with: SessionTimeoutException.read(from:)) - return value - case "SessionStreamingException": - let value = try SmithyJSON.Reader.readFrom(message.payload, with: SessionStreamingException.read(from:)) - return value - default: - let httpResponse = SmithyHTTPAPI.HTTPResponse(body: .data(message.payload), statusCode: .ok) - return AWSClientRuntime.UnknownAWSHTTPServiceError(httpResponse: httpResponse, message: "error processing event stream, unrecognized ':exceptionType': \(params.exceptionType); contentType: \(params.contentType ?? "nil")", requestID: nil, typeName: nil) - } - } - let error = try makeError(message, params) - throw error - case .error(let params): - let httpResponse = SmithyHTTPAPI.HTTPResponse(body: .data(message.payload), statusCode: .ok) - throw AWSClientRuntime.UnknownAWSHTTPServiceError(httpResponse: httpResponse, message: "error processing event stream, unrecognized ':errorType': \(params.errorCode); message: \(params.message ?? "nil")", requestID: nil, typeName: nil) - case .unknown(messageType: let messageType): - throw Smithy.ClientError.unknownError("unrecognized event stream message ':message-type': \(messageType)") - } - } + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.UpperCaseString { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.UpperCaseString() + value.withKeys = try reader["withKeys"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value } } -extension CloudWatchLogsClientTypes.Delivery { +extension CloudWatchLogsClientTypes.TypeConverter { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.Delivery { + static func write(value: CloudWatchLogsClientTypes.TypeConverter?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["entries"].writeList(value.entries, memberWritingClosure: CloudWatchLogsClientTypes.TypeConverterEntry.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.TypeConverter { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.Delivery() - value.id = try reader["id"].readIfPresent() - value.arn = try reader["arn"].readIfPresent() - value.deliverySourceName = try reader["deliverySourceName"].readIfPresent() - value.deliveryDestinationArn = try reader["deliveryDestinationArn"].readIfPresent() - value.deliveryDestinationType = try reader["deliveryDestinationType"].readIfPresent() - value.recordFields = try reader["recordFields"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) - value.fieldDelimiter = try reader["fieldDelimiter"].readIfPresent() - value.s3DeliveryConfiguration = try reader["s3DeliveryConfiguration"].readIfPresent(with: CloudWatchLogsClientTypes.S3DeliveryConfiguration.read(from:)) - value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + var value = CloudWatchLogsClientTypes.TypeConverter() + value.entries = try reader["entries"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.TypeConverterEntry.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] return value } } -extension CloudWatchLogsClientTypes.S3DeliveryConfiguration { +extension CloudWatchLogsClientTypes.TypeConverterEntry { - static func write(value: CloudWatchLogsClientTypes.S3DeliveryConfiguration?, to writer: SmithyJSON.Writer) throws { + static func write(value: CloudWatchLogsClientTypes.TypeConverterEntry?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["enableHiveCompatiblePath"].write(value.enableHiveCompatiblePath) - try writer["suffixPath"].write(value.suffixPath) + try writer["key"].write(value.key) + try writer["type"].write(value.type) } - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.S3DeliveryConfiguration { + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.TypeConverterEntry { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.S3DeliveryConfiguration() - value.suffixPath = try reader["suffixPath"].readIfPresent() - value.enableHiveCompatiblePath = try reader["enableHiveCompatiblePath"].readIfPresent() + var value = CloudWatchLogsClientTypes.TypeConverterEntry() + value.key = try reader["key"].readIfPresent() ?? "" + value.type = try reader["type"].readIfPresent() ?? .sdkUnknown("") return value } } -extension CloudWatchLogsClientTypes.AccountPolicy { +extension CloudWatchLogsClientTypes.TrimString { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.AccountPolicy { + static func write(value: CloudWatchLogsClientTypes.TrimString?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["withKeys"].writeList(value.withKeys, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.TrimString { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.AccountPolicy() - value.policyName = try reader["policyName"].readIfPresent() - value.policyDocument = try reader["policyDocument"].readIfPresent() - value.lastUpdatedTime = try reader["lastUpdatedTime"].readIfPresent() - value.policyType = try reader["policyType"].readIfPresent() - value.scope = try reader["scope"].readIfPresent() - value.selectionCriteria = try reader["selectionCriteria"].readIfPresent() - value.accountId = try reader["accountId"].readIfPresent() + var value = CloudWatchLogsClientTypes.TrimString() + value.withKeys = try reader["withKeys"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] return value } } -extension CloudWatchLogsClientTypes.ConfigurationTemplate { +extension CloudWatchLogsClientTypes.SubstituteString { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ConfigurationTemplate { + static func write(value: CloudWatchLogsClientTypes.SubstituteString?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["entries"].writeList(value.entries, memberWritingClosure: CloudWatchLogsClientTypes.SubstituteStringEntry.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.SubstituteString { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.ConfigurationTemplate() - value.service = try reader["service"].readIfPresent() - value.logType = try reader["logType"].readIfPresent() - value.resourceType = try reader["resourceType"].readIfPresent() - value.deliveryDestinationType = try reader["deliveryDestinationType"].readIfPresent() - value.defaultDeliveryConfigValues = try reader["defaultDeliveryConfigValues"].readIfPresent(with: CloudWatchLogsClientTypes.ConfigurationTemplateDeliveryConfigValues.read(from:)) - value.allowedFields = try reader["allowedFields"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.RecordField.read(from:), memberNodeInfo: "member", isFlattened: false) - value.allowedOutputFormats = try reader["allowedOutputFormats"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) - value.allowedActionForAllowVendedLogsDeliveryForResource = try reader["allowedActionForAllowVendedLogsDeliveryForResource"].readIfPresent() - value.allowedFieldDelimiters = try reader["allowedFieldDelimiters"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) - value.allowedSuffixPathFields = try reader["allowedSuffixPathFields"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + var value = CloudWatchLogsClientTypes.SubstituteString() + value.entries = try reader["entries"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.SubstituteStringEntry.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] return value } } -extension CloudWatchLogsClientTypes.RecordField { +extension CloudWatchLogsClientTypes.SubstituteStringEntry { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.RecordField { + static func write(value: CloudWatchLogsClientTypes.SubstituteStringEntry?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["from"].write(value.from) + try writer["source"].write(value.source) + try writer["to"].write(value.to) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.SubstituteStringEntry { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.RecordField() - value.name = try reader["name"].readIfPresent() - value.mandatory = try reader["mandatory"].readIfPresent() + var value = CloudWatchLogsClientTypes.SubstituteStringEntry() + value.source = try reader["source"].readIfPresent() ?? "" + value.from = try reader["from"].readIfPresent() ?? "" + value.to = try reader["to"].readIfPresent() ?? "" return value } } -extension CloudWatchLogsClientTypes.ConfigurationTemplateDeliveryConfigValues { +extension CloudWatchLogsClientTypes.SplitString { + + static func write(value: CloudWatchLogsClientTypes.SplitString?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["entries"].writeList(value.entries, memberWritingClosure: CloudWatchLogsClientTypes.SplitStringEntry.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ConfigurationTemplateDeliveryConfigValues { + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.SplitString { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.ConfigurationTemplateDeliveryConfigValues() - value.recordFields = try reader["recordFields"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) - value.fieldDelimiter = try reader["fieldDelimiter"].readIfPresent() - value.s3DeliveryConfiguration = try reader["s3DeliveryConfiguration"].readIfPresent(with: CloudWatchLogsClientTypes.S3DeliveryConfiguration.read(from:)) + var value = CloudWatchLogsClientTypes.SplitString() + value.entries = try reader["entries"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.SplitStringEntry.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] return value } } -extension CloudWatchLogsClientTypes.DeliveryDestination { +extension CloudWatchLogsClientTypes.SplitStringEntry { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.DeliveryDestination { + static func write(value: CloudWatchLogsClientTypes.SplitStringEntry?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["delimiter"].write(value.delimiter) + try writer["source"].write(value.source) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.SplitStringEntry { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.DeliveryDestination() - value.name = try reader["name"].readIfPresent() - value.arn = try reader["arn"].readIfPresent() - value.deliveryDestinationType = try reader["deliveryDestinationType"].readIfPresent() - value.outputFormat = try reader["outputFormat"].readIfPresent() - value.deliveryDestinationConfiguration = try reader["deliveryDestinationConfiguration"].readIfPresent(with: CloudWatchLogsClientTypes.DeliveryDestinationConfiguration.read(from:)) - value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + var value = CloudWatchLogsClientTypes.SplitStringEntry() + value.source = try reader["source"].readIfPresent() ?? "" + value.delimiter = try reader["delimiter"].readIfPresent() ?? "" return value } } -extension CloudWatchLogsClientTypes.DeliveryDestinationConfiguration { +extension CloudWatchLogsClientTypes.RenameKeys { - static func write(value: CloudWatchLogsClientTypes.DeliveryDestinationConfiguration?, to writer: SmithyJSON.Writer) throws { + static func write(value: CloudWatchLogsClientTypes.RenameKeys?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["destinationResourceArn"].write(value.destinationResourceArn) + try writer["entries"].writeList(value.entries, memberWritingClosure: CloudWatchLogsClientTypes.RenameKeyEntry.write(value:to:), memberNodeInfo: "member", isFlattened: false) } - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.DeliveryDestinationConfiguration { + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.RenameKeys { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.DeliveryDestinationConfiguration() - value.destinationResourceArn = try reader["destinationResourceArn"].readIfPresent() ?? "" + var value = CloudWatchLogsClientTypes.RenameKeys() + value.entries = try reader["entries"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.RenameKeyEntry.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] return value } } -extension CloudWatchLogsClientTypes.DeliverySource { +extension CloudWatchLogsClientTypes.RenameKeyEntry { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.DeliverySource { + static func write(value: CloudWatchLogsClientTypes.RenameKeyEntry?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["key"].write(value.key) + try writer["overwriteIfExists"].write(value.overwriteIfExists) + try writer["renameTo"].write(value.renameTo) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.RenameKeyEntry { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.DeliverySource() - value.name = try reader["name"].readIfPresent() - value.arn = try reader["arn"].readIfPresent() - value.resourceArns = try reader["resourceArns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) - value.service = try reader["service"].readIfPresent() - value.logType = try reader["logType"].readIfPresent() - value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + var value = CloudWatchLogsClientTypes.RenameKeyEntry() + value.key = try reader["key"].readIfPresent() ?? "" + value.renameTo = try reader["renameTo"].readIfPresent() ?? "" + value.overwriteIfExists = try reader["overwriteIfExists"].readIfPresent() ?? false return value } } -extension CloudWatchLogsClientTypes.Destination { +extension CloudWatchLogsClientTypes.ParseWAF { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.Destination { + static func write(value: CloudWatchLogsClientTypes.ParseWAF?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["source"].write(value.source) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ParseWAF { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.Destination() - value.destinationName = try reader["destinationName"].readIfPresent() - value.targetArn = try reader["targetArn"].readIfPresent() - value.roleArn = try reader["roleArn"].readIfPresent() - value.accessPolicy = try reader["accessPolicy"].readIfPresent() - value.arn = try reader["arn"].readIfPresent() - value.creationTime = try reader["creationTime"].readIfPresent() + var value = CloudWatchLogsClientTypes.ParseWAF() + value.source = try reader["source"].readIfPresent() return value } } -extension CloudWatchLogsClientTypes.ExportTask { +extension CloudWatchLogsClientTypes.ParseVPC { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ExportTask { + static func write(value: CloudWatchLogsClientTypes.ParseVPC?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["source"].write(value.source) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ParseVPC { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.ExportTask() - value.taskId = try reader["taskId"].readIfPresent() - value.taskName = try reader["taskName"].readIfPresent() - value.logGroupName = try reader["logGroupName"].readIfPresent() - value.from = try reader["from"].readIfPresent() - value.to = try reader["to"].readIfPresent() - value.destination = try reader["destination"].readIfPresent() - value.destinationPrefix = try reader["destinationPrefix"].readIfPresent() - value.status = try reader["status"].readIfPresent(with: CloudWatchLogsClientTypes.ExportTaskStatus.read(from:)) - value.executionInfo = try reader["executionInfo"].readIfPresent(with: CloudWatchLogsClientTypes.ExportTaskExecutionInfo.read(from:)) + var value = CloudWatchLogsClientTypes.ParseVPC() + value.source = try reader["source"].readIfPresent() return value } } -extension CloudWatchLogsClientTypes.ExportTaskExecutionInfo { +extension CloudWatchLogsClientTypes.ParsePostgres { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ExportTaskExecutionInfo { + static func write(value: CloudWatchLogsClientTypes.ParsePostgres?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["source"].write(value.source) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ParsePostgres { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.ExportTaskExecutionInfo() - value.creationTime = try reader["creationTime"].readIfPresent() - value.completionTime = try reader["completionTime"].readIfPresent() + var value = CloudWatchLogsClientTypes.ParsePostgres() + value.source = try reader["source"].readIfPresent() return value } } -extension CloudWatchLogsClientTypes.ExportTaskStatus { +extension CloudWatchLogsClientTypes.ParseRoute53 { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ExportTaskStatus { + static func write(value: CloudWatchLogsClientTypes.ParseRoute53?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["source"].write(value.source) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ParseRoute53 { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.ExportTaskStatus() - value.code = try reader["code"].readIfPresent() - value.message = try reader["message"].readIfPresent() + var value = CloudWatchLogsClientTypes.ParseRoute53() + value.source = try reader["source"].readIfPresent() return value } } -extension CloudWatchLogsClientTypes.LogGroup { +extension CloudWatchLogsClientTypes.ParseKeyValue { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.LogGroup { + static func write(value: CloudWatchLogsClientTypes.ParseKeyValue?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["destination"].write(value.destination) + try writer["fieldDelimiter"].write(value.fieldDelimiter) + try writer["keyPrefix"].write(value.keyPrefix) + try writer["keyValueDelimiter"].write(value.keyValueDelimiter) + try writer["nonMatchValue"].write(value.nonMatchValue) + try writer["overwriteIfExists"].write(value.overwriteIfExists) + try writer["source"].write(value.source) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ParseKeyValue { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.LogGroup() - value.logGroupName = try reader["logGroupName"].readIfPresent() - value.creationTime = try reader["creationTime"].readIfPresent() - value.retentionInDays = try reader["retentionInDays"].readIfPresent() - value.metricFilterCount = try reader["metricFilterCount"].readIfPresent() - value.arn = try reader["arn"].readIfPresent() - value.storedBytes = try reader["storedBytes"].readIfPresent() - value.kmsKeyId = try reader["kmsKeyId"].readIfPresent() - value.dataProtectionStatus = try reader["dataProtectionStatus"].readIfPresent() - value.inheritedProperties = try reader["inheritedProperties"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) - value.logGroupClass = try reader["logGroupClass"].readIfPresent() - value.logGroupArn = try reader["logGroupArn"].readIfPresent() + var value = CloudWatchLogsClientTypes.ParseKeyValue() + value.source = try reader["source"].readIfPresent() + value.destination = try reader["destination"].readIfPresent() + value.fieldDelimiter = try reader["fieldDelimiter"].readIfPresent() + value.keyValueDelimiter = try reader["keyValueDelimiter"].readIfPresent() + value.keyPrefix = try reader["keyPrefix"].readIfPresent() + value.nonMatchValue = try reader["nonMatchValue"].readIfPresent() + value.overwriteIfExists = try reader["overwriteIfExists"].readIfPresent() ?? false return value } } -extension CloudWatchLogsClientTypes.LogStream { +extension CloudWatchLogsClientTypes.ParseJSON { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.LogStream { + static func write(value: CloudWatchLogsClientTypes.ParseJSON?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["destination"].write(value.destination) + try writer["source"].write(value.source) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ParseJSON { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.LogStream() - value.logStreamName = try reader["logStreamName"].readIfPresent() - value.creationTime = try reader["creationTime"].readIfPresent() - value.firstEventTimestamp = try reader["firstEventTimestamp"].readIfPresent() - value.lastEventTimestamp = try reader["lastEventTimestamp"].readIfPresent() - value.lastIngestionTime = try reader["lastIngestionTime"].readIfPresent() - value.uploadSequenceToken = try reader["uploadSequenceToken"].readIfPresent() - value.arn = try reader["arn"].readIfPresent() - value.storedBytes = try reader["storedBytes"].readIfPresent() + var value = CloudWatchLogsClientTypes.ParseJSON() + value.source = try reader["source"].readIfPresent() + value.destination = try reader["destination"].readIfPresent() return value } } -extension CloudWatchLogsClientTypes.MetricFilter { +extension CloudWatchLogsClientTypes.ParseCloudfront { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.MetricFilter { + static func write(value: CloudWatchLogsClientTypes.ParseCloudfront?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["source"].write(value.source) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ParseCloudfront { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.MetricFilter() - value.filterName = try reader["filterName"].readIfPresent() - value.filterPattern = try reader["filterPattern"].readIfPresent() - value.metricTransformations = try reader["metricTransformations"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.MetricTransformation.read(from:), memberNodeInfo: "member", isFlattened: false) - value.creationTime = try reader["creationTime"].readIfPresent() - value.logGroupName = try reader["logGroupName"].readIfPresent() + var value = CloudWatchLogsClientTypes.ParseCloudfront() + value.source = try reader["source"].readIfPresent() return value } } -extension CloudWatchLogsClientTypes.MetricTransformation { +extension CloudWatchLogsClientTypes.MoveKeys { - static func write(value: CloudWatchLogsClientTypes.MetricTransformation?, to writer: SmithyJSON.Writer) throws { + static func write(value: CloudWatchLogsClientTypes.MoveKeys?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["defaultValue"].write(value.defaultValue) - try writer["dimensions"].writeMap(value.dimensions, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) - try writer["metricName"].write(value.metricName) - try writer["metricNamespace"].write(value.metricNamespace) - try writer["metricValue"].write(value.metricValue) - try writer["unit"].write(value.unit) + try writer["entries"].writeList(value.entries, memberWritingClosure: CloudWatchLogsClientTypes.MoveKeyEntry.write(value:to:), memberNodeInfo: "member", isFlattened: false) } - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.MetricTransformation { + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.MoveKeys { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.MetricTransformation() - value.metricName = try reader["metricName"].readIfPresent() ?? "" - value.metricNamespace = try reader["metricNamespace"].readIfPresent() ?? "" - value.metricValue = try reader["metricValue"].readIfPresent() ?? "" - value.defaultValue = try reader["defaultValue"].readIfPresent() - value.dimensions = try reader["dimensions"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) - value.unit = try reader["unit"].readIfPresent() + var value = CloudWatchLogsClientTypes.MoveKeys() + value.entries = try reader["entries"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.MoveKeyEntry.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] return value } } -extension CloudWatchLogsClientTypes.QueryInfo { +extension CloudWatchLogsClientTypes.MoveKeyEntry { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.QueryInfo { + static func write(value: CloudWatchLogsClientTypes.MoveKeyEntry?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["overwriteIfExists"].write(value.overwriteIfExists) + try writer["source"].write(value.source) + try writer["target"].write(value.target) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.MoveKeyEntry { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.QueryInfo() - value.queryId = try reader["queryId"].readIfPresent() - value.queryString = try reader["queryString"].readIfPresent() - value.status = try reader["status"].readIfPresent() - value.createTime = try reader["createTime"].readIfPresent() - value.logGroupName = try reader["logGroupName"].readIfPresent() + var value = CloudWatchLogsClientTypes.MoveKeyEntry() + value.source = try reader["source"].readIfPresent() ?? "" + value.target = try reader["target"].readIfPresent() ?? "" + value.overwriteIfExists = try reader["overwriteIfExists"].readIfPresent() ?? false return value } } -extension CloudWatchLogsClientTypes.QueryDefinition { +extension CloudWatchLogsClientTypes.LowerCaseString { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.QueryDefinition { + static func write(value: CloudWatchLogsClientTypes.LowerCaseString?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["withKeys"].writeList(value.withKeys, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.LowerCaseString { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.QueryDefinition() - value.queryDefinitionId = try reader["queryDefinitionId"].readIfPresent() - value.name = try reader["name"].readIfPresent() - value.queryString = try reader["queryString"].readIfPresent() - value.lastModified = try reader["lastModified"].readIfPresent() - value.logGroupNames = try reader["logGroupNames"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + var value = CloudWatchLogsClientTypes.LowerCaseString() + value.withKeys = try reader["withKeys"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] return value } } -extension CloudWatchLogsClientTypes.ResourcePolicy { +extension CloudWatchLogsClientTypes.ListToMap { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ResourcePolicy { + static func write(value: CloudWatchLogsClientTypes.ListToMap?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["flatten"].write(value.flatten) + try writer["flattenedElement"].write(value.flattenedElement) + try writer["key"].write(value.key) + try writer["source"].write(value.source) + try writer["target"].write(value.target) + try writer["valueKey"].write(value.valueKey) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ListToMap { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.ResourcePolicy() - value.policyName = try reader["policyName"].readIfPresent() - value.policyDocument = try reader["policyDocument"].readIfPresent() - value.lastUpdatedTime = try reader["lastUpdatedTime"].readIfPresent() + var value = CloudWatchLogsClientTypes.ListToMap() + value.source = try reader["source"].readIfPresent() ?? "" + value.key = try reader["key"].readIfPresent() ?? "" + value.valueKey = try reader["valueKey"].readIfPresent() + value.target = try reader["target"].readIfPresent() + value.flatten = try reader["flatten"].readIfPresent() ?? false + value.flattenedElement = try reader["flattenedElement"].readIfPresent() return value } } -extension CloudWatchLogsClientTypes.SubscriptionFilter { +extension CloudWatchLogsClientTypes.Grok { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.SubscriptionFilter { + static func write(value: CloudWatchLogsClientTypes.Grok?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["match"].write(value.match) + try writer["source"].write(value.source) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.Grok { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.SubscriptionFilter() - value.filterName = try reader["filterName"].readIfPresent() - value.logGroupName = try reader["logGroupName"].readIfPresent() - value.filterPattern = try reader["filterPattern"].readIfPresent() - value.destinationArn = try reader["destinationArn"].readIfPresent() - value.roleArn = try reader["roleArn"].readIfPresent() - value.distribution = try reader["distribution"].readIfPresent() - value.creationTime = try reader["creationTime"].readIfPresent() + var value = CloudWatchLogsClientTypes.Grok() + value.source = try reader["source"].readIfPresent() + value.match = try reader["match"].readIfPresent() ?? "" return value } } -extension CloudWatchLogsClientTypes.FilteredLogEvent { +extension CloudWatchLogsClientTypes.DeleteKeys { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.FilteredLogEvent { + static func write(value: CloudWatchLogsClientTypes.DeleteKeys?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["withKeys"].writeList(value.withKeys, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.DeleteKeys { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.FilteredLogEvent() - value.logStreamName = try reader["logStreamName"].readIfPresent() - value.timestamp = try reader["timestamp"].readIfPresent() - value.message = try reader["message"].readIfPresent() - value.ingestionTime = try reader["ingestionTime"].readIfPresent() - value.eventId = try reader["eventId"].readIfPresent() + var value = CloudWatchLogsClientTypes.DeleteKeys() + value.withKeys = try reader["withKeys"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] return value } } -extension CloudWatchLogsClientTypes.SearchedLogStream { +extension CloudWatchLogsClientTypes.DateTimeConverter { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.SearchedLogStream { + static func write(value: CloudWatchLogsClientTypes.DateTimeConverter?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["locale"].write(value.locale) + try writer["matchPatterns"].writeList(value.matchPatterns, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["source"].write(value.source) + try writer["sourceTimezone"].write(value.sourceTimezone) + try writer["target"].write(value.target) + try writer["targetFormat"].write(value.targetFormat) + try writer["targetTimezone"].write(value.targetTimezone) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.DateTimeConverter { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.SearchedLogStream() - value.logStreamName = try reader["logStreamName"].readIfPresent() - value.searchedCompletely = try reader["searchedCompletely"].readIfPresent() + var value = CloudWatchLogsClientTypes.DateTimeConverter() + value.source = try reader["source"].readIfPresent() ?? "" + value.target = try reader["target"].readIfPresent() ?? "" + value.targetFormat = try reader["targetFormat"].readIfPresent() + value.matchPatterns = try reader["matchPatterns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.sourceTimezone = try reader["sourceTimezone"].readIfPresent() + value.targetTimezone = try reader["targetTimezone"].readIfPresent() + value.locale = try reader["locale"].readIfPresent() return value } } -extension CloudWatchLogsClientTypes.Policy { +extension CloudWatchLogsClientTypes.CSV { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.Policy { + static func write(value: CloudWatchLogsClientTypes.CSV?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["columns"].writeList(value.columns, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["delimiter"].write(value.delimiter) + try writer["quoteCharacter"].write(value.quoteCharacter) + try writer["source"].write(value.source) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.CSV { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.Policy() - value.deliveryDestinationPolicy = try reader["deliveryDestinationPolicy"].readIfPresent() + var value = CloudWatchLogsClientTypes.CSV() + value.quoteCharacter = try reader["quoteCharacter"].readIfPresent() + value.delimiter = try reader["delimiter"].readIfPresent() + value.columns = try reader["columns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.source = try reader["source"].readIfPresent() return value } } -extension CloudWatchLogsClientTypes.OutputLogEvent { +extension CloudWatchLogsClientTypes.CopyValue { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.OutputLogEvent { + static func write(value: CloudWatchLogsClientTypes.CopyValue?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["entries"].writeList(value.entries, memberWritingClosure: CloudWatchLogsClientTypes.CopyValueEntry.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.CopyValue { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.OutputLogEvent() - value.timestamp = try reader["timestamp"].readIfPresent() - value.message = try reader["message"].readIfPresent() - value.ingestionTime = try reader["ingestionTime"].readIfPresent() + var value = CloudWatchLogsClientTypes.CopyValue() + value.entries = try reader["entries"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.CopyValueEntry.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] return value } } -extension CloudWatchLogsClientTypes.LogGroupField { +extension CloudWatchLogsClientTypes.CopyValueEntry { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.LogGroupField { + static func write(value: CloudWatchLogsClientTypes.CopyValueEntry?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["overwriteIfExists"].write(value.overwriteIfExists) + try writer["source"].write(value.source) + try writer["target"].write(value.target) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.CopyValueEntry { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.LogGroupField() - value.name = try reader["name"].readIfPresent() - value.percent = try reader["percent"].readIfPresent() ?? 0 + var value = CloudWatchLogsClientTypes.CopyValueEntry() + value.source = try reader["source"].readIfPresent() ?? "" + value.target = try reader["target"].readIfPresent() ?? "" + value.overwriteIfExists = try reader["overwriteIfExists"].readIfPresent() ?? false return value } } -extension CloudWatchLogsClientTypes.ResultField { +extension CloudWatchLogsClientTypes.AddKeys { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.ResultField { + static func write(value: CloudWatchLogsClientTypes.AddKeys?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["entries"].writeList(value.entries, memberWritingClosure: CloudWatchLogsClientTypes.AddKeyEntry.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.AddKeys { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.ResultField() - value.field = try reader["field"].readIfPresent() - value.value = try reader["value"].readIfPresent() + var value = CloudWatchLogsClientTypes.AddKeys() + value.entries = try reader["entries"].readListIfPresent(memberReadingClosure: CloudWatchLogsClientTypes.AddKeyEntry.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] return value } } -extension CloudWatchLogsClientTypes.QueryStatistics { +extension CloudWatchLogsClientTypes.AddKeyEntry { - static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.QueryStatistics { + static func write(value: CloudWatchLogsClientTypes.AddKeyEntry?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["key"].write(value.key) + try writer["overwriteIfExists"].write(value.overwriteIfExists) + try writer["value"].write(value.value) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.AddKeyEntry { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CloudWatchLogsClientTypes.QueryStatistics() - value.recordsMatched = try reader["recordsMatched"].readIfPresent() ?? 0 - value.recordsScanned = try reader["recordsScanned"].readIfPresent() ?? 0 - value.bytesScanned = try reader["bytesScanned"].readIfPresent() ?? 0 + var value = CloudWatchLogsClientTypes.AddKeyEntry() + value.key = try reader["key"].readIfPresent() ?? "" + value.value = try reader["value"].readIfPresent() ?? "" + value.overwriteIfExists = try reader["overwriteIfExists"].readIfPresent() ?? false return value } } @@ -9397,6 +11618,18 @@ extension CloudWatchLogsClientTypes.MetricFilterMatchRecord { } } +extension CloudWatchLogsClientTypes.TransformedLogRecord { + + static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.TransformedLogRecord { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CloudWatchLogsClientTypes.TransformedLogRecord() + value.eventNumber = try reader["eventNumber"].readIfPresent() ?? 0 + value.eventMessage = try reader["eventMessage"].readIfPresent() + value.transformedEventMessage = try reader["transformedEventMessage"].readIfPresent() + return value + } +} + extension CloudWatchLogsClientTypes.QueryCompileError { static func read(from reader: SmithyJSON.Reader) throws -> CloudWatchLogsClientTypes.QueryCompileError { diff --git a/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/Paginators.swift b/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/Paginators.swift index 4fd83e9cf0a..867a1680658 100644 --- a/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/Paginators.swift +++ b/Sources/Services/AWSCloudWatchLogs/Sources/AWSCloudWatchLogs/Paginators.swift @@ -431,3 +431,34 @@ extension PaginatorSequence where OperationStackInput == ListLogAnomalyDetectors return try await self.asyncCompactMap { item in item.anomalyDetectors } } } +extension CloudWatchLogsClient { + /// Paginate over `[ListLogGroupsForQueryOutput]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLogGroupsForQueryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLogGroupsForQueryOutput` + public func listLogGroupsForQueryPaginated(input: ListLogGroupsForQueryInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listLogGroupsForQuery(input:)) + } +} + +extension ListLogGroupsForQueryInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListLogGroupsForQueryInput { + return ListLogGroupsForQueryInput( + maxResults: self.maxResults, + nextToken: token, + queryId: self.queryId + )} +} + +extension PaginatorSequence where OperationStackInput == ListLogGroupsForQueryInput, OperationStackOutput == ListLogGroupsForQueryOutput { + /// This paginator transforms the `AsyncSequence` returned by `listLogGroupsForQueryPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` + public func logGroupIdentifiers() async throws -> [Swift.String] { + return try await self.asyncCompactMap { item in item.logGroupIdentifiers } + } +} diff --git a/Sources/Services/AWSCodeBuild/Sources/AWSCodeBuild/CodeBuildClient.swift b/Sources/Services/AWSCodeBuild/Sources/AWSCodeBuild/CodeBuildClient.swift index 309715a5f04..b13e9f3b46d 100644 --- a/Sources/Services/AWSCodeBuild/Sources/AWSCodeBuild/CodeBuildClient.swift +++ b/Sources/Services/AWSCodeBuild/Sources/AWSCodeBuild/CodeBuildClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodeBuildClient: ClientRuntime.Client { public static let clientName = "CodeBuildClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodeBuildClient.CodeBuildClientConfiguration let serviceName = "CodeBuild" diff --git a/Sources/Services/AWSCodeCatalyst/Sources/AWSCodeCatalyst/CodeCatalystClient.swift b/Sources/Services/AWSCodeCatalyst/Sources/AWSCodeCatalyst/CodeCatalystClient.swift index 5ed3fa48446..3eb696e560b 100644 --- a/Sources/Services/AWSCodeCatalyst/Sources/AWSCodeCatalyst/CodeCatalystClient.swift +++ b/Sources/Services/AWSCodeCatalyst/Sources/AWSCodeCatalyst/CodeCatalystClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodeCatalystClient: ClientRuntime.Client { public static let clientName = "CodeCatalystClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodeCatalystClient.CodeCatalystClientConfiguration let serviceName = "CodeCatalyst" diff --git a/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/CodeCommitClient.swift b/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/CodeCommitClient.swift index e88548de39c..0795951030f 100644 --- a/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/CodeCommitClient.swift +++ b/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/CodeCommitClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodeCommitClient: ClientRuntime.Client { public static let clientName = "CodeCommitClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodeCommitClient.CodeCommitClientConfiguration let serviceName = "CodeCommit" diff --git a/Sources/Services/AWSCodeConnections/Sources/AWSCodeConnections/CodeConnectionsClient.swift b/Sources/Services/AWSCodeConnections/Sources/AWSCodeConnections/CodeConnectionsClient.swift index 3f8923f6edc..5038265f166 100644 --- a/Sources/Services/AWSCodeConnections/Sources/AWSCodeConnections/CodeConnectionsClient.swift +++ b/Sources/Services/AWSCodeConnections/Sources/AWSCodeConnections/CodeConnectionsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodeConnectionsClient: ClientRuntime.Client { public static let clientName = "CodeConnectionsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodeConnectionsClient.CodeConnectionsClientConfiguration let serviceName = "CodeConnections" diff --git a/Sources/Services/AWSCodeDeploy/Sources/AWSCodeDeploy/CodeDeployClient.swift b/Sources/Services/AWSCodeDeploy/Sources/AWSCodeDeploy/CodeDeployClient.swift index 5f1adb78484..4b262c3f0a2 100644 --- a/Sources/Services/AWSCodeDeploy/Sources/AWSCodeDeploy/CodeDeployClient.swift +++ b/Sources/Services/AWSCodeDeploy/Sources/AWSCodeDeploy/CodeDeployClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodeDeployClient: ClientRuntime.Client { public static let clientName = "CodeDeployClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodeDeployClient.CodeDeployClientConfiguration let serviceName = "CodeDeploy" diff --git a/Sources/Services/AWSCodeGuruProfiler/Sources/AWSCodeGuruProfiler/CodeGuruProfilerClient.swift b/Sources/Services/AWSCodeGuruProfiler/Sources/AWSCodeGuruProfiler/CodeGuruProfilerClient.swift index 67d2460be17..c46ab0f5c87 100644 --- a/Sources/Services/AWSCodeGuruProfiler/Sources/AWSCodeGuruProfiler/CodeGuruProfilerClient.swift +++ b/Sources/Services/AWSCodeGuruProfiler/Sources/AWSCodeGuruProfiler/CodeGuruProfilerClient.swift @@ -68,7 +68,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodeGuruProfilerClient: ClientRuntime.Client { public static let clientName = "CodeGuruProfilerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodeGuruProfilerClient.CodeGuruProfilerClientConfiguration let serviceName = "CodeGuruProfiler" diff --git a/Sources/Services/AWSCodeGuruReviewer/Sources/AWSCodeGuruReviewer/CodeGuruReviewerClient.swift b/Sources/Services/AWSCodeGuruReviewer/Sources/AWSCodeGuruReviewer/CodeGuruReviewerClient.swift index 8ed9e922538..7f2ce9bec9d 100644 --- a/Sources/Services/AWSCodeGuruReviewer/Sources/AWSCodeGuruReviewer/CodeGuruReviewerClient.swift +++ b/Sources/Services/AWSCodeGuruReviewer/Sources/AWSCodeGuruReviewer/CodeGuruReviewerClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodeGuruReviewerClient: ClientRuntime.Client { public static let clientName = "CodeGuruReviewerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodeGuruReviewerClient.CodeGuruReviewerClientConfiguration let serviceName = "CodeGuru Reviewer" diff --git a/Sources/Services/AWSCodeGuruSecurity/Sources/AWSCodeGuruSecurity/CodeGuruSecurityClient.swift b/Sources/Services/AWSCodeGuruSecurity/Sources/AWSCodeGuruSecurity/CodeGuruSecurityClient.swift index 5f8deec0719..2bd8698724b 100644 --- a/Sources/Services/AWSCodeGuruSecurity/Sources/AWSCodeGuruSecurity/CodeGuruSecurityClient.swift +++ b/Sources/Services/AWSCodeGuruSecurity/Sources/AWSCodeGuruSecurity/CodeGuruSecurityClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodeGuruSecurityClient: ClientRuntime.Client { public static let clientName = "CodeGuruSecurityClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodeGuruSecurityClient.CodeGuruSecurityClientConfiguration let serviceName = "CodeGuru Security" diff --git a/Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/CodePipelineClient.swift b/Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/CodePipelineClient.swift index 44af3f7afda..0ba353b13a9 100644 --- a/Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/CodePipelineClient.swift +++ b/Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/CodePipelineClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodePipelineClient: ClientRuntime.Client { public static let clientName = "CodePipelineClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodePipelineClient.CodePipelineClientConfiguration let serviceName = "CodePipeline" diff --git a/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/CodeStarconnectionsClient.swift b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/CodeStarconnectionsClient.swift index 8b28014ba56..32999603ebb 100644 --- a/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/CodeStarconnectionsClient.swift +++ b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/CodeStarconnectionsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodeStarconnectionsClient: ClientRuntime.Client { public static let clientName = "CodeStarconnectionsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodeStarconnectionsClient.CodeStarconnectionsClientConfiguration let serviceName = "CodeStar connections" diff --git a/Sources/Services/AWSCodeartifact/Sources/AWSCodeartifact/CodeartifactClient.swift b/Sources/Services/AWSCodeartifact/Sources/AWSCodeartifact/CodeartifactClient.swift index 4aab563e256..b795b803f28 100644 --- a/Sources/Services/AWSCodeartifact/Sources/AWSCodeartifact/CodeartifactClient.swift +++ b/Sources/Services/AWSCodeartifact/Sources/AWSCodeartifact/CodeartifactClient.swift @@ -68,7 +68,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodeartifactClient: ClientRuntime.Client { public static let clientName = "CodeartifactClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodeartifactClient.CodeartifactClientConfiguration let serviceName = "codeartifact" diff --git a/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/CodestarnotificationsClient.swift b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/CodestarnotificationsClient.swift index 2840892e57a..3450e35a9d0 100644 --- a/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/CodestarnotificationsClient.swift +++ b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/CodestarnotificationsClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CodestarnotificationsClient: ClientRuntime.Client { public static let clientName = "CodestarnotificationsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CodestarnotificationsClient.CodestarnotificationsClientConfiguration let serviceName = "codestar notifications" diff --git a/Sources/Services/AWSCognitoIdentity/Sources/AWSCognitoIdentity/CognitoIdentityClient.swift b/Sources/Services/AWSCognitoIdentity/Sources/AWSCognitoIdentity/CognitoIdentityClient.swift index 1aced24c8e6..20cff41612d 100644 --- a/Sources/Services/AWSCognitoIdentity/Sources/AWSCognitoIdentity/CognitoIdentityClient.swift +++ b/Sources/Services/AWSCognitoIdentity/Sources/AWSCognitoIdentity/CognitoIdentityClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CognitoIdentityClient: ClientRuntime.Client { public static let clientName = "CognitoIdentityClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CognitoIdentityClient.CognitoIdentityClientConfiguration let serviceName = "Cognito Identity" diff --git a/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift b/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift index 8c3338b36d3..851199fa6b5 100644 --- a/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift +++ b/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CognitoIdentityProviderClient: ClientRuntime.Client { public static let clientName = "CognitoIdentityProviderClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CognitoIdentityProviderClient.CognitoIdentityProviderClientConfiguration let serviceName = "Cognito Identity Provider" diff --git a/Sources/Services/AWSCognitoSync/Sources/AWSCognitoSync/CognitoSyncClient.swift b/Sources/Services/AWSCognitoSync/Sources/AWSCognitoSync/CognitoSyncClient.swift index d133acb05ce..4805cfa7dab 100644 --- a/Sources/Services/AWSCognitoSync/Sources/AWSCognitoSync/CognitoSyncClient.swift +++ b/Sources/Services/AWSCognitoSync/Sources/AWSCognitoSync/CognitoSyncClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CognitoSyncClient: ClientRuntime.Client { public static let clientName = "CognitoSyncClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CognitoSyncClient.CognitoSyncClientConfiguration let serviceName = "Cognito Sync" diff --git a/Sources/Services/AWSComprehend/Sources/AWSComprehend/ComprehendClient.swift b/Sources/Services/AWSComprehend/Sources/AWSComprehend/ComprehendClient.swift index 2503c58ff79..3c858fd39cb 100644 --- a/Sources/Services/AWSComprehend/Sources/AWSComprehend/ComprehendClient.swift +++ b/Sources/Services/AWSComprehend/Sources/AWSComprehend/ComprehendClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ComprehendClient: ClientRuntime.Client { public static let clientName = "ComprehendClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ComprehendClient.ComprehendClientConfiguration let serviceName = "Comprehend" diff --git a/Sources/Services/AWSComprehendMedical/Sources/AWSComprehendMedical/ComprehendMedicalClient.swift b/Sources/Services/AWSComprehendMedical/Sources/AWSComprehendMedical/ComprehendMedicalClient.swift index 261b8212d92..3dd1b85b456 100644 --- a/Sources/Services/AWSComprehendMedical/Sources/AWSComprehendMedical/ComprehendMedicalClient.swift +++ b/Sources/Services/AWSComprehendMedical/Sources/AWSComprehendMedical/ComprehendMedicalClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ComprehendMedicalClient: ClientRuntime.Client { public static let clientName = "ComprehendMedicalClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ComprehendMedicalClient.ComprehendMedicalClientConfiguration let serviceName = "ComprehendMedical" diff --git a/Sources/Services/AWSComputeOptimizer/Sources/AWSComputeOptimizer/ComputeOptimizerClient.swift b/Sources/Services/AWSComputeOptimizer/Sources/AWSComputeOptimizer/ComputeOptimizerClient.swift index e9d777164b2..690359b4644 100644 --- a/Sources/Services/AWSComputeOptimizer/Sources/AWSComputeOptimizer/ComputeOptimizerClient.swift +++ b/Sources/Services/AWSComputeOptimizer/Sources/AWSComputeOptimizer/ComputeOptimizerClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ComputeOptimizerClient: ClientRuntime.Client { public static let clientName = "ComputeOptimizerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ComputeOptimizerClient.ComputeOptimizerClientConfiguration let serviceName = "Compute Optimizer" diff --git a/Sources/Services/AWSConfigService/Sources/AWSConfigService/ConfigClient.swift b/Sources/Services/AWSConfigService/Sources/AWSConfigService/ConfigClient.swift index 6702ffee8eb..813122c348d 100644 --- a/Sources/Services/AWSConfigService/Sources/AWSConfigService/ConfigClient.swift +++ b/Sources/Services/AWSConfigService/Sources/AWSConfigService/ConfigClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ConfigClient: ClientRuntime.Client { public static let clientName = "ConfigClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ConfigClient.ConfigClientConfiguration let serviceName = "Config" diff --git a/Sources/Services/AWSConnect/Sources/AWSConnect/ConnectClient.swift b/Sources/Services/AWSConnect/Sources/AWSConnect/ConnectClient.swift index 62020019ce9..1e76b340692 100644 --- a/Sources/Services/AWSConnect/Sources/AWSConnect/ConnectClient.swift +++ b/Sources/Services/AWSConnect/Sources/AWSConnect/ConnectClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ConnectClient: ClientRuntime.Client { public static let clientName = "ConnectClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ConnectClient.ConnectClientConfiguration let serviceName = "Connect" diff --git a/Sources/Services/AWSConnectCampaigns/Sources/AWSConnectCampaigns/ConnectCampaignsClient.swift b/Sources/Services/AWSConnectCampaigns/Sources/AWSConnectCampaigns/ConnectCampaignsClient.swift index e5b096a2814..5b2db896c13 100644 --- a/Sources/Services/AWSConnectCampaigns/Sources/AWSConnectCampaigns/ConnectCampaignsClient.swift +++ b/Sources/Services/AWSConnectCampaigns/Sources/AWSConnectCampaigns/ConnectCampaignsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ConnectCampaignsClient: ClientRuntime.Client { public static let clientName = "ConnectCampaignsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ConnectCampaignsClient.ConnectCampaignsClientConfiguration let serviceName = "ConnectCampaigns" diff --git a/Sources/Services/AWSConnectCampaignsV2/Sources/AWSConnectCampaignsV2/ConnectCampaignsV2Client.swift b/Sources/Services/AWSConnectCampaignsV2/Sources/AWSConnectCampaignsV2/ConnectCampaignsV2Client.swift index 20b850d7be1..ddfeae5b8d6 100644 --- a/Sources/Services/AWSConnectCampaignsV2/Sources/AWSConnectCampaignsV2/ConnectCampaignsV2Client.swift +++ b/Sources/Services/AWSConnectCampaignsV2/Sources/AWSConnectCampaignsV2/ConnectCampaignsV2Client.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ConnectCampaignsV2Client: ClientRuntime.Client { public static let clientName = "ConnectCampaignsV2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ConnectCampaignsV2Client.ConnectCampaignsV2ClientConfiguration let serviceName = "ConnectCampaignsV2" diff --git a/Sources/Services/AWSConnectCases/Sources/AWSConnectCases/ConnectCasesClient.swift b/Sources/Services/AWSConnectCases/Sources/AWSConnectCases/ConnectCasesClient.swift index 56d3f62047d..26c02e7745d 100644 --- a/Sources/Services/AWSConnectCases/Sources/AWSConnectCases/ConnectCasesClient.swift +++ b/Sources/Services/AWSConnectCases/Sources/AWSConnectCases/ConnectCasesClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ConnectCasesClient: ClientRuntime.Client { public static let clientName = "ConnectCasesClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ConnectCasesClient.ConnectCasesClientConfiguration let serviceName = "ConnectCases" diff --git a/Sources/Services/AWSConnectContactLens/Sources/AWSConnectContactLens/ConnectContactLensClient.swift b/Sources/Services/AWSConnectContactLens/Sources/AWSConnectContactLens/ConnectContactLensClient.swift index 5b3c65df8bc..fdb357770c7 100644 --- a/Sources/Services/AWSConnectContactLens/Sources/AWSConnectContactLens/ConnectContactLensClient.swift +++ b/Sources/Services/AWSConnectContactLens/Sources/AWSConnectContactLens/ConnectContactLensClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ConnectContactLensClient: ClientRuntime.Client { public static let clientName = "ConnectContactLensClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ConnectContactLensClient.ConnectContactLensClientConfiguration let serviceName = "Connect Contact Lens" diff --git a/Sources/Services/AWSConnectParticipant/Sources/AWSConnectParticipant/ConnectParticipantClient.swift b/Sources/Services/AWSConnectParticipant/Sources/AWSConnectParticipant/ConnectParticipantClient.swift index f0435580248..26f71a10eb6 100644 --- a/Sources/Services/AWSConnectParticipant/Sources/AWSConnectParticipant/ConnectParticipantClient.swift +++ b/Sources/Services/AWSConnectParticipant/Sources/AWSConnectParticipant/ConnectParticipantClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ConnectParticipantClient: ClientRuntime.Client { public static let clientName = "ConnectParticipantClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ConnectParticipantClient.ConnectParticipantClientConfiguration let serviceName = "ConnectParticipant" diff --git a/Sources/Services/AWSControlCatalog/Sources/AWSControlCatalog/ControlCatalogClient.swift b/Sources/Services/AWSControlCatalog/Sources/AWSControlCatalog/ControlCatalogClient.swift index 5ef79d8460d..b6971d3af9e 100644 --- a/Sources/Services/AWSControlCatalog/Sources/AWSControlCatalog/ControlCatalogClient.swift +++ b/Sources/Services/AWSControlCatalog/Sources/AWSControlCatalog/ControlCatalogClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ControlCatalogClient: ClientRuntime.Client { public static let clientName = "ControlCatalogClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ControlCatalogClient.ControlCatalogClientConfiguration let serviceName = "ControlCatalog" diff --git a/Sources/Services/AWSControlTower/Sources/AWSControlTower/ControlTowerClient.swift b/Sources/Services/AWSControlTower/Sources/AWSControlTower/ControlTowerClient.swift index 72c8fc28970..5f4eb0fac70 100644 --- a/Sources/Services/AWSControlTower/Sources/AWSControlTower/ControlTowerClient.swift +++ b/Sources/Services/AWSControlTower/Sources/AWSControlTower/ControlTowerClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ControlTowerClient: ClientRuntime.Client { public static let clientName = "ControlTowerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ControlTowerClient.ControlTowerClientConfiguration let serviceName = "ControlTower" diff --git a/Sources/Services/AWSCostExplorer/Sources/AWSCostExplorer/CostExplorerClient.swift b/Sources/Services/AWSCostExplorer/Sources/AWSCostExplorer/CostExplorerClient.swift index f90b696100e..4c0583d811c 100644 --- a/Sources/Services/AWSCostExplorer/Sources/AWSCostExplorer/CostExplorerClient.swift +++ b/Sources/Services/AWSCostExplorer/Sources/AWSCostExplorer/CostExplorerClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CostExplorerClient: ClientRuntime.Client { public static let clientName = "CostExplorerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CostExplorerClient.CostExplorerClientConfiguration let serviceName = "Cost Explorer" @@ -976,6 +976,78 @@ extension CostExplorerClient { return try await op.execute(input: input) } + /// Performs the `GetCommitmentPurchaseAnalysis` operation on the `AWSInsightsIndexService` service. + /// + /// Retrieves a commitment purchase analysis result based on the AnalysisId. + /// + /// - Parameter GetCommitmentPurchaseAnalysisInput : [no documentation found] + /// + /// - Returns: `GetCommitmentPurchaseAnalysisOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AnalysisNotFoundException` : The requested analysis can't be found. + /// - `DataUnavailableException` : The requested data is unavailable. + /// - `LimitExceededException` : You made too many calls in a short period of time. Try again later. + public func getCommitmentPurchaseAnalysis(input: GetCommitmentPurchaseAnalysisInput) async throws -> GetCommitmentPurchaseAnalysisOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getCommitmentPurchaseAnalysis") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ce") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetCommitmentPurchaseAnalysisInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetCommitmentPurchaseAnalysisOutput.httpOutput(from:), GetCommitmentPurchaseAnalysisOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CostExplorerClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSInsightsIndexService.GetCommitmentPurchaseAnalysis")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetCommitmentPurchaseAnalysisInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CostExplorer") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetCommitmentPurchaseAnalysis") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `GetCostAndUsage` operation on the `AWSInsightsIndexService` service. /// /// Retrieves cost and usage metrics for your account. You can specify which cost and usage-related metric that you want the request to return. For example, you can specify BlendedCosts or UsageQuantity. You can also filter and group your data by various dimensions, such as SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the [GetDimensionValues](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) operation. Management account in an organization in Organizations have access to all member accounts. For information about filter limitations, see [Quotas and restrictions](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-limits.html) in the Billing and Cost Management User Guide. @@ -2171,6 +2243,78 @@ extension CostExplorerClient { return try await op.execute(input: input) } + /// Performs the `ListCommitmentPurchaseAnalyses` operation on the `AWSInsightsIndexService` service. + /// + /// Lists the commitment purchase analyses for your account based on the last 30 days. + /// + /// - Parameter ListCommitmentPurchaseAnalysesInput : [no documentation found] + /// + /// - Returns: `ListCommitmentPurchaseAnalysesOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `DataUnavailableException` : The requested data is unavailable. + /// - `InvalidNextTokenException` : The pagination token is invalid. Try again without a pagination token. + /// - `LimitExceededException` : You made too many calls in a short period of time. Try again later. + public func listCommitmentPurchaseAnalyses(input: ListCommitmentPurchaseAnalysesInput) async throws -> ListCommitmentPurchaseAnalysesOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listCommitmentPurchaseAnalyses") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ce") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListCommitmentPurchaseAnalysesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListCommitmentPurchaseAnalysesOutput.httpOutput(from:), ListCommitmentPurchaseAnalysesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CostExplorerClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSInsightsIndexService.ListCommitmentPurchaseAnalyses")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListCommitmentPurchaseAnalysesInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CostExplorer") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListCommitmentPurchaseAnalyses") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListCostAllocationTagBackfillHistory` operation on the `AWSInsightsIndexService` service. /// /// Retrieves a list of your historical cost allocation tag backfill requests. @@ -2596,6 +2740,79 @@ extension CostExplorerClient { return try await op.execute(input: input) } + /// Performs the `StartCommitmentPurchaseAnalysis` operation on the `AWSInsightsIndexService` service. + /// + /// Specifies the parameters of a planned commitment purchase and starts the generation of the analysis. This enables you to estimate the cost, coverage, and utilization impact of your planned commitment purchases. You can request up to 20 analysis runs per day. + /// + /// - Parameter StartCommitmentPurchaseAnalysisInput : [no documentation found] + /// + /// - Returns: `StartCommitmentPurchaseAnalysisOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `DataUnavailableException` : The requested data is unavailable. + /// - `GenerationExistsException` : A request to generate a recommendation is already in progress. + /// - `LimitExceededException` : You made too many calls in a short period of time. Try again later. + /// - `ServiceQuotaExceededException` : You've reached the limit on the number of resources you can create, or exceeded the size of an individual resource. + public func startCommitmentPurchaseAnalysis(input: StartCommitmentPurchaseAnalysisInput) async throws -> StartCommitmentPurchaseAnalysisOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "startCommitmentPurchaseAnalysis") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ce") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(StartCommitmentPurchaseAnalysisInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(StartCommitmentPurchaseAnalysisOutput.httpOutput(from:), StartCommitmentPurchaseAnalysisOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: CostExplorerClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSInsightsIndexService.StartCommitmentPurchaseAnalysis")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: StartCommitmentPurchaseAnalysisInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CostExplorer") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "StartCommitmentPurchaseAnalysis") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `StartCostAllocationTagBackfill` operation on the `AWSInsightsIndexService` service. /// /// Request a cost allocation tag backfill. This will backfill the activation status (either active or inactive) for all tag keys from para:BackfillFrom up to the when this request is made. You can request a backfill once every 24 hours. diff --git a/Sources/Services/AWSCostExplorer/Sources/AWSCostExplorer/Models.swift b/Sources/Services/AWSCostExplorer/Sources/AWSCostExplorer/Models.swift index c2b96a232f9..1f226d08dea 100644 --- a/Sources/Services/AWSCostExplorer/Sources/AWSCostExplorer/Models.swift +++ b/Sources/Services/AWSCostExplorer/Sources/AWSCostExplorer/Models.swift @@ -55,6 +55,536 @@ extension CostExplorerClientTypes { } } +extension CostExplorerClientTypes { + + /// Contains the hourly metrics for the given recommendation over the lookback period. + public struct RecommendationDetailHourlyMetrics: Swift.Sendable { + /// The current amount of Savings Plans eligible usage that the Savings Plan covered. + public var currentCoverage: Swift.String? + /// The estimated coverage amount based on the recommended Savings Plan. + public var estimatedCoverage: Swift.String? + /// The estimated utilization for the recommended Savings Plan. + public var estimatedNewCommitmentUtilization: Swift.String? + /// The remaining On-Demand cost estimated to not be covered by the recommended Savings Plan, over the length of the lookback period. + public var estimatedOnDemandCost: Swift.String? + /// The period of time that you want the usage and costs for. + public var startTime: Swift.String? + + public init( + currentCoverage: Swift.String? = nil, + estimatedCoverage: Swift.String? = nil, + estimatedNewCommitmentUtilization: Swift.String? = nil, + estimatedOnDemandCost: Swift.String? = nil, + startTime: Swift.String? = nil + ) + { + self.currentCoverage = currentCoverage + self.estimatedCoverage = estimatedCoverage + self.estimatedNewCommitmentUtilization = estimatedNewCommitmentUtilization + self.estimatedOnDemandCost = estimatedOnDemandCost + self.startTime = startTime + } + } +} + +extension CostExplorerClientTypes { + + /// Details about the Savings Plans purchase analysis. + public struct SavingsPlansPurchaseAnalysisDetails: Swift.Sendable { + /// Additional metadata that might be applicable to the commitment. + public var additionalMetadata: Swift.String? + /// The currency code used for the analysis. + public var currencyCode: Swift.String? + /// The average value of hourly coverage over the lookback period. + public var currentAverageCoverage: Swift.String? + /// The average value of hourly On-Demand spend over the lookback period. + public var currentAverageHourlyOnDemandSpend: Swift.String? + /// The highest value of hourly On-Demand spend over the lookback period. + public var currentMaximumHourlyOnDemandSpend: Swift.String? + /// The lowest value of hourly On-Demand spend over the lookback period. + public var currentMinimumHourlyOnDemandSpend: Swift.String? + /// The current total On-Demand spend over the lookback period. + public var currentOnDemandSpend: Swift.String? + /// The estimated coverage of the Savings Plan. + public var estimatedAverageCoverage: Swift.String? + /// The estimated utilization of the Savings Plan. + public var estimatedAverageUtilization: Swift.String? + /// The estimated cost of the purchase commitment over the length of the lookback period. + public var estimatedCommitmentCost: Swift.String? + /// The estimated monthly savings amount based on the Savings Plan. + public var estimatedMonthlySavingsAmount: Swift.String? + /// The remaining On-Demand cost estimated to not be covered by the commitment, over the length of the lookback period. + public var estimatedOnDemandCost: Swift.String? + /// The estimated On-Demand cost you expect with no additional commitment, based on your usage of the selected time period and the Savings Plan you own. + public var estimatedOnDemandCostWithCurrentCommitment: Swift.String? + /// The estimated return on investment that's based on the purchase commitment and estimated savings. This is calculated as estimatedSavingsAmount/estimatedSPCost*100. + public var estimatedROI: Swift.String? + /// The estimated savings amount that's based on the purchase commitment over the length of the lookback period. + public var estimatedSavingsAmount: Swift.String? + /// The estimated savings percentage relative to the total cost over the cost calculation lookback period. + public var estimatedSavingsPercentage: Swift.String? + /// The existing hourly commitment for the Savings Plan type. + public var existingHourlyCommitment: Swift.String? + /// The recommended or custom hourly commitment. + public var hourlyCommitmentToPurchase: Swift.String? + /// The date and time of the last hour that went into the analysis. + public var latestUsageTimestamp: Swift.String? + /// The lookback period in hours that's used to generate the analysis. + public var lookbackPeriodInHours: Swift.String? + /// The related hourly cost, coverage, and utilization metrics over the lookback period. + public var metricsOverLookbackPeriod: [CostExplorerClientTypes.RecommendationDetailHourlyMetrics]? + /// The upfront cost of the Savings Plan, based on the selected payment option. + public var upfrontCost: Swift.String? + + public init( + additionalMetadata: Swift.String? = nil, + currencyCode: Swift.String? = nil, + currentAverageCoverage: Swift.String? = nil, + currentAverageHourlyOnDemandSpend: Swift.String? = nil, + currentMaximumHourlyOnDemandSpend: Swift.String? = nil, + currentMinimumHourlyOnDemandSpend: Swift.String? = nil, + currentOnDemandSpend: Swift.String? = nil, + estimatedAverageCoverage: Swift.String? = nil, + estimatedAverageUtilization: Swift.String? = nil, + estimatedCommitmentCost: Swift.String? = nil, + estimatedMonthlySavingsAmount: Swift.String? = nil, + estimatedOnDemandCost: Swift.String? = nil, + estimatedOnDemandCostWithCurrentCommitment: Swift.String? = nil, + estimatedROI: Swift.String? = nil, + estimatedSavingsAmount: Swift.String? = nil, + estimatedSavingsPercentage: Swift.String? = nil, + existingHourlyCommitment: Swift.String? = nil, + hourlyCommitmentToPurchase: Swift.String? = nil, + latestUsageTimestamp: Swift.String? = nil, + lookbackPeriodInHours: Swift.String? = nil, + metricsOverLookbackPeriod: [CostExplorerClientTypes.RecommendationDetailHourlyMetrics]? = nil, + upfrontCost: Swift.String? = nil + ) + { + self.additionalMetadata = additionalMetadata + self.currencyCode = currencyCode + self.currentAverageCoverage = currentAverageCoverage + self.currentAverageHourlyOnDemandSpend = currentAverageHourlyOnDemandSpend + self.currentMaximumHourlyOnDemandSpend = currentMaximumHourlyOnDemandSpend + self.currentMinimumHourlyOnDemandSpend = currentMinimumHourlyOnDemandSpend + self.currentOnDemandSpend = currentOnDemandSpend + self.estimatedAverageCoverage = estimatedAverageCoverage + self.estimatedAverageUtilization = estimatedAverageUtilization + self.estimatedCommitmentCost = estimatedCommitmentCost + self.estimatedMonthlySavingsAmount = estimatedMonthlySavingsAmount + self.estimatedOnDemandCost = estimatedOnDemandCost + self.estimatedOnDemandCostWithCurrentCommitment = estimatedOnDemandCostWithCurrentCommitment + self.estimatedROI = estimatedROI + self.estimatedSavingsAmount = estimatedSavingsAmount + self.estimatedSavingsPercentage = estimatedSavingsPercentage + self.existingHourlyCommitment = existingHourlyCommitment + self.hourlyCommitmentToPurchase = hourlyCommitmentToPurchase + self.latestUsageTimestamp = latestUsageTimestamp + self.lookbackPeriodInHours = lookbackPeriodInHours + self.metricsOverLookbackPeriod = metricsOverLookbackPeriod + self.upfrontCost = upfrontCost + } + } +} + +extension CostExplorerClientTypes { + + /// Details about the analysis. + public struct AnalysisDetails: Swift.Sendable { + /// Details about the Savings Plans purchase analysis. + public var savingsPlansPurchaseAnalysisDetails: CostExplorerClientTypes.SavingsPlansPurchaseAnalysisDetails? + + public init( + savingsPlansPurchaseAnalysisDetails: CostExplorerClientTypes.SavingsPlansPurchaseAnalysisDetails? = nil + ) + { + self.savingsPlansPurchaseAnalysisDetails = savingsPlansPurchaseAnalysisDetails + } + } +} + +/// The requested analysis can't be found. +public struct AnalysisNotFoundException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "AnalysisNotFoundException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + +extension CostExplorerClientTypes { + + public enum AnalysisStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case failed + case processing + case succeeded + case sdkUnknown(Swift.String) + + public static var allCases: [AnalysisStatus] { + return [ + .failed, + .processing, + .succeeded + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .failed: return "FAILED" + case .processing: return "PROCESSING" + case .succeeded: return "SUCCEEDED" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CostExplorerClientTypes { + + public enum AnalysisType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case customCommitment + case maxSavings + case sdkUnknown(Swift.String) + + public static var allCases: [AnalysisType] { + return [ + .customCommitment, + .maxSavings + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .customCommitment: return "CUSTOM_COMMITMENT" + case .maxSavings: return "MAX_SAVINGS" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CostExplorerClientTypes { + + /// The time period of the request. + public struct DateInterval: Swift.Sendable { + /// The end of the time period. The end date is exclusive. For example, if end is 2017-05-01, Amazon Web Services retrieves cost and usage data from the start date up to, but not including, 2017-05-01. + /// This member is required. + public var end: Swift.String? + /// The beginning of the time period. The start date is inclusive. For example, if start is 2017-01-01, Amazon Web Services retrieves cost and usage data starting at 2017-01-01 up to the end date. The start date must be equal to or no later than the current date to avoid a validation error. + /// This member is required. + public var start: Swift.String? + + public init( + end: Swift.String? = nil, + start: Swift.String? = nil + ) + { + self.end = end + self.start = start + } + } +} + +extension CostExplorerClientTypes { + + public enum PaymentOption: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case allUpfront + case heavyUtilization + case lightUtilization + case mediumUtilization + case noUpfront + case partialUpfront + case sdkUnknown(Swift.String) + + public static var allCases: [PaymentOption] { + return [ + .allUpfront, + .heavyUtilization, + .lightUtilization, + .mediumUtilization, + .noUpfront, + .partialUpfront + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .allUpfront: return "ALL_UPFRONT" + case .heavyUtilization: return "HEAVY_UTILIZATION" + case .lightUtilization: return "LIGHT_UTILIZATION" + case .mediumUtilization: return "MEDIUM_UTILIZATION" + case .noUpfront: return "NO_UPFRONT" + case .partialUpfront: return "PARTIAL_UPFRONT" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CostExplorerClientTypes { + + public enum SupportedSavingsPlansType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case computeSp + case ec2InstanceSp + case sagemakerSp + case sdkUnknown(Swift.String) + + public static var allCases: [SupportedSavingsPlansType] { + return [ + .computeSp, + .ec2InstanceSp, + .sagemakerSp + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .computeSp: return "COMPUTE_SP" + case .ec2InstanceSp: return "EC2_INSTANCE_SP" + case .sagemakerSp: return "SAGEMAKER_SP" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CostExplorerClientTypes { + + public enum TermInYears: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case oneYear + case threeYears + case sdkUnknown(Swift.String) + + public static var allCases: [TermInYears] { + return [ + .oneYear, + .threeYears + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .oneYear: return "ONE_YEAR" + case .threeYears: return "THREE_YEARS" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CostExplorerClientTypes { + + /// The Savings Plans commitment details. + public struct SavingsPlans: Swift.Sendable { + /// The instance family of the Savings Plans commitment. + public var instanceFamily: Swift.String? + /// The unique ID that's used to distinguish commitments from one another. + public var offeringId: Swift.String? + /// The payment option for the Savings Plans commitment. + public var paymentOption: CostExplorerClientTypes.PaymentOption? + /// The Region associated with the Savings Plans commitment. + public var region: Swift.String? + /// The Savings Plans commitment. + public var savingsPlansCommitment: Swift.Double? + /// The Savings Plans type. + public var savingsPlansType: CostExplorerClientTypes.SupportedSavingsPlansType? + /// The term that you want the Savings Plans commitment for. + public var termInYears: CostExplorerClientTypes.TermInYears? + + public init( + instanceFamily: Swift.String? = nil, + offeringId: Swift.String? = nil, + paymentOption: CostExplorerClientTypes.PaymentOption? = nil, + region: Swift.String? = nil, + savingsPlansCommitment: Swift.Double? = nil, + savingsPlansType: CostExplorerClientTypes.SupportedSavingsPlansType? = nil, + termInYears: CostExplorerClientTypes.TermInYears? = nil + ) + { + self.instanceFamily = instanceFamily + self.offeringId = offeringId + self.paymentOption = paymentOption + self.region = region + self.savingsPlansCommitment = savingsPlansCommitment + self.savingsPlansType = savingsPlansType + self.termInYears = termInYears + } + } +} + +extension CostExplorerClientTypes { + + /// The configuration for the Savings Plans purchase analysis. + public struct SavingsPlansPurchaseAnalysisConfiguration: Swift.Sendable { + /// The account that the analysis is for. + public var accountId: Swift.String? + /// The account scope that you want your analysis for. + public var accountScope: CostExplorerClientTypes.AccountScope? + /// The type of analysis. + /// This member is required. + public var analysisType: CostExplorerClientTypes.AnalysisType? + /// The time period associated with the analysis. + /// This member is required. + public var lookBackTimePeriod: CostExplorerClientTypes.DateInterval? + /// Savings Plans to include in the analysis. + /// This member is required. + public var savingsPlansToAdd: [CostExplorerClientTypes.SavingsPlans]? + /// Savings Plans to exclude from the analysis. + public var savingsPlansToExclude: [Swift.String]? + + public init( + accountId: Swift.String? = nil, + accountScope: CostExplorerClientTypes.AccountScope? = nil, + analysisType: CostExplorerClientTypes.AnalysisType? = nil, + lookBackTimePeriod: CostExplorerClientTypes.DateInterval? = nil, + savingsPlansToAdd: [CostExplorerClientTypes.SavingsPlans]? = nil, + savingsPlansToExclude: [Swift.String]? = nil + ) + { + self.accountId = accountId + self.accountScope = accountScope + self.analysisType = analysisType + self.lookBackTimePeriod = lookBackTimePeriod + self.savingsPlansToAdd = savingsPlansToAdd + self.savingsPlansToExclude = savingsPlansToExclude + } + } +} + +extension CostExplorerClientTypes { + + /// The configuration for the commitment purchase analysis. + public struct CommitmentPurchaseAnalysisConfiguration: Swift.Sendable { + /// The configuration for the Savings Plans purchase analysis. + public var savingsPlansPurchaseAnalysisConfiguration: CostExplorerClientTypes.SavingsPlansPurchaseAnalysisConfiguration? + + public init( + savingsPlansPurchaseAnalysisConfiguration: CostExplorerClientTypes.SavingsPlansPurchaseAnalysisConfiguration? = nil + ) + { + self.savingsPlansPurchaseAnalysisConfiguration = savingsPlansPurchaseAnalysisConfiguration + } + } +} + +extension CostExplorerClientTypes { + + public enum ErrorCode: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case internalFailure + case invalidAccountId + case invalidSavingsPlansToAdd + case invalidSavingsPlansToExclude + case noUsageFound + case sdkUnknown(Swift.String) + + public static var allCases: [ErrorCode] { + return [ + .internalFailure, + .invalidAccountId, + .invalidSavingsPlansToAdd, + .invalidSavingsPlansToExclude, + .noUsageFound + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .internalFailure: return "INTERNAL_FAILURE" + case .invalidAccountId: return "INVALID_ACCOUNT_ID" + case .invalidSavingsPlansToAdd: return "INVALID_SAVINGS_PLANS_TO_ADD" + case .invalidSavingsPlansToExclude: return "INVALID_SAVINGS_PLANS_TO_EXCLUDE" + case .noUsageFound: return "NO_USAGE_FOUND" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CostExplorerClientTypes { + + /// A summary of the analysis. + public struct AnalysisSummary: Swift.Sendable { + /// The completion time of the analysis. + public var analysisCompletionTime: Swift.String? + /// The analysis ID that's associated with the commitment purchase. + public var analysisId: Swift.String? + /// The start time of the analysis. + public var analysisStartedTime: Swift.String? + /// The status of the analysis. + public var analysisStatus: CostExplorerClientTypes.AnalysisStatus? + /// The analysis configuration for the commitment purchase analysis. + public var commitmentPurchaseAnalysisConfiguration: CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration? + /// The error code used for the analysis. + public var errorCode: CostExplorerClientTypes.ErrorCode? + /// The estimated time for when the analysis will complete. + public var estimatedCompletionTime: Swift.String? + + public init( + analysisCompletionTime: Swift.String? = nil, + analysisId: Swift.String? = nil, + analysisStartedTime: Swift.String? = nil, + analysisStatus: CostExplorerClientTypes.AnalysisStatus? = nil, + commitmentPurchaseAnalysisConfiguration: CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration? = nil, + errorCode: CostExplorerClientTypes.ErrorCode? = nil, + estimatedCompletionTime: Swift.String? = nil + ) + { + self.analysisCompletionTime = analysisCompletionTime + self.analysisId = analysisId + self.analysisStartedTime = analysisStartedTime + self.analysisStatus = analysisStatus + self.commitmentPurchaseAnalysisConfiguration = commitmentPurchaseAnalysisConfiguration + self.errorCode = errorCode + self.estimatedCompletionTime = estimatedCompletionTime + } + } +} + extension CostExplorerClientTypes { /// Quantifies the anomaly. The higher score means that it's more anomalous. @@ -144,7 +674,7 @@ extension CostExplorerClientTypes { extension CostExplorerClientTypes { - /// The combination of Amazon Web Servicesservice, linked account, linked account name, Region, and usage type where a cost anomaly is observed. The linked account name will only be available when the account name can be identified. + /// The combination of Amazon Web Services service, linked account, linked account name, Region, and usage type where a cost anomaly is observed. The linked account name will only be available when the account name can be identified. public struct RootCause: Swift.Sendable { /// The member account value that's associated with the cost anomaly. public var linkedAccount: Swift.String? @@ -152,7 +682,7 @@ extension CostExplorerClientTypes { public var linkedAccountName: Swift.String? /// The Amazon Web Services Region that's associated with the cost anomaly. public var region: Swift.String? - /// The Amazon Web Servicesservice name that's associated with the cost anomaly. + /// The Amazon Web Services service name that's associated with the cost anomaly. public var service: Swift.String? /// The UsageType value that's associated with the cost anomaly. public var usageType: Swift.String? @@ -188,7 +718,7 @@ extension CostExplorerClientTypes { public var anomalyScore: CostExplorerClientTypes.AnomalyScore? /// The first day the anomaly is detected. public var anomalyStartDate: Swift.String? - /// The dimension for the anomaly (for example, an Amazon Web Servicesservice in a service monitor). + /// The dimension for the anomaly (for example, an Amazon Web Services service in a service monitor). public var dimensionValue: Swift.String? /// The feedback value. public var feedback: CostExplorerClientTypes.AnomalyFeedbackType? @@ -1512,28 +2042,6 @@ public struct GetApproximateUsageRecordsInput: Swift.Sendable { } } -extension CostExplorerClientTypes { - - /// The time period of the request. - public struct DateInterval: Swift.Sendable { - /// The end of the time period. The end date is exclusive. For example, if end is 2017-05-01, Amazon Web Services retrieves cost and usage data from the start date up to, but not including, 2017-05-01. - /// This member is required. - public var end: Swift.String? - /// The beginning of the time period. The start date is inclusive. For example, if start is 2017-01-01, Amazon Web Services retrieves cost and usage data starting at 2017-01-01 up to the end date. The start date must be equal to or no later than the current date to avoid a validation error. - /// This member is required. - public var start: Swift.String? - - public init( - end: Swift.String? = nil, - start: Swift.String? = nil - ) - { - self.end = end - self.start = start - } - } -} - public struct GetApproximateUsageRecordsOutput: Swift.Sendable { /// The lookback period that's used for the estimation. public var lookbackPeriod: CostExplorerClientTypes.DateInterval? @@ -1554,6 +2062,64 @@ public struct GetApproximateUsageRecordsOutput: Swift.Sendable { } } +public struct GetCommitmentPurchaseAnalysisInput: Swift.Sendable { + /// The analysis ID that's associated with the commitment purchase analysis. + /// This member is required. + public var analysisId: Swift.String? + + public init( + analysisId: Swift.String? = nil + ) + { + self.analysisId = analysisId + } +} + +public struct GetCommitmentPurchaseAnalysisOutput: Swift.Sendable { + /// The completion time of the analysis. + public var analysisCompletionTime: Swift.String? + /// Details about the analysis. + public var analysisDetails: CostExplorerClientTypes.AnalysisDetails? + /// The analysis ID that's associated with the commitment purchase analysis. + /// This member is required. + public var analysisId: Swift.String? + /// The start time of the analysis. + /// This member is required. + public var analysisStartedTime: Swift.String? + /// The status of the analysis. + /// This member is required. + public var analysisStatus: CostExplorerClientTypes.AnalysisStatus? + /// The configuration for the commitment purchase analysis. + /// This member is required. + public var commitmentPurchaseAnalysisConfiguration: CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration? + /// The error code used for the analysis. + public var errorCode: CostExplorerClientTypes.ErrorCode? + /// The estimated time for when the analysis will complete. + /// This member is required. + public var estimatedCompletionTime: Swift.String? + + public init( + analysisCompletionTime: Swift.String? = nil, + analysisDetails: CostExplorerClientTypes.AnalysisDetails? = nil, + analysisId: Swift.String? = nil, + analysisStartedTime: Swift.String? = nil, + analysisStatus: CostExplorerClientTypes.AnalysisStatus? = nil, + commitmentPurchaseAnalysisConfiguration: CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration? = nil, + errorCode: CostExplorerClientTypes.ErrorCode? = nil, + estimatedCompletionTime: Swift.String? = nil + ) + { + self.analysisCompletionTime = analysisCompletionTime + self.analysisDetails = analysisDetails + self.analysisId = analysisId + self.analysisStartedTime = analysisStartedTime + self.analysisStatus = analysisStatus + self.commitmentPurchaseAnalysisConfiguration = commitmentPurchaseAnalysisConfiguration + self.errorCode = errorCode + self.estimatedCompletionTime = estimatedCompletionTime + } +} + /// The requested report expired. Update the date interval and try again. public struct BillExpirationException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -2276,47 +2842,6 @@ extension CostExplorerClientTypes { } } -extension CostExplorerClientTypes { - - public enum PaymentOption: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { - case allUpfront - case heavyUtilization - case lightUtilization - case mediumUtilization - case noUpfront - case partialUpfront - case sdkUnknown(Swift.String) - - public static var allCases: [PaymentOption] { - return [ - .allUpfront, - .heavyUtilization, - .lightUtilization, - .mediumUtilization, - .noUpfront, - .partialUpfront - ] - } - - public init?(rawValue: Swift.String) { - let value = Self.allCases.first(where: { $0.rawValue == rawValue }) - self = value ?? Self.sdkUnknown(rawValue) - } - - public var rawValue: Swift.String { - switch self { - case .allUpfront: return "ALL_UPFRONT" - case .heavyUtilization: return "HEAVY_UTILIZATION" - case .lightUtilization: return "LIGHT_UTILIZATION" - case .mediumUtilization: return "MEDIUM_UTILIZATION" - case .noUpfront: return "NO_UPFRONT" - case .partialUpfront: return "PARTIAL_UPFRONT" - case let .sdkUnknown(s): return s - } - } - } -} - extension CostExplorerClientTypes { public enum OfferingClass: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -2378,35 +2903,6 @@ extension CostExplorerClientTypes { } } -extension CostExplorerClientTypes { - - public enum TermInYears: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { - case oneYear - case threeYears - case sdkUnknown(Swift.String) - - public static var allCases: [TermInYears] { - return [ - .oneYear, - .threeYears - ] - } - - public init?(rawValue: Swift.String) { - let value = Self.allCases.first(where: { $0.rawValue == rawValue }) - self = value ?? Self.sdkUnknown(rawValue) - } - - public var rawValue: Swift.String { - switch self { - case .oneYear: return "ONE_YEAR" - case .threeYears: return "THREE_YEARS" - case let .sdkUnknown(s): return s - } - } - } -} - extension CostExplorerClientTypes { /// Information about a recommendation, such as the timestamp for when Amazon Web Services made a specific recommendation. @@ -3726,70 +4222,6 @@ public struct GetSavingsPlanPurchaseRecommendationDetailsInput: Swift.Sendable { } } -extension CostExplorerClientTypes { - - /// Contains the hourly metrics for the given recommendation over the lookback period. - public struct RecommendationDetailHourlyMetrics: Swift.Sendable { - /// The current amount of Savings Plans eligible usage that the Savings Plan covered. - public var currentCoverage: Swift.String? - /// The estimated coverage amount based on the recommended Savings Plan. - public var estimatedCoverage: Swift.String? - /// The estimated utilization for the recommended Savings Plan. - public var estimatedNewCommitmentUtilization: Swift.String? - /// The remaining On-Demand cost estimated to not be covered by the recommended Savings Plan, over the length of the lookback period. - public var estimatedOnDemandCost: Swift.String? - /// The period of time that you want the usage and costs for. - public var startTime: Swift.String? - - public init( - currentCoverage: Swift.String? = nil, - estimatedCoverage: Swift.String? = nil, - estimatedNewCommitmentUtilization: Swift.String? = nil, - estimatedOnDemandCost: Swift.String? = nil, - startTime: Swift.String? = nil - ) - { - self.currentCoverage = currentCoverage - self.estimatedCoverage = estimatedCoverage - self.estimatedNewCommitmentUtilization = estimatedNewCommitmentUtilization - self.estimatedOnDemandCost = estimatedOnDemandCost - self.startTime = startTime - } - } -} - -extension CostExplorerClientTypes { - - public enum SupportedSavingsPlansType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { - case computeSp - case ec2InstanceSp - case sagemakerSp - case sdkUnknown(Swift.String) - - public static var allCases: [SupportedSavingsPlansType] { - return [ - .computeSp, - .ec2InstanceSp, - .sagemakerSp - ] - } - - public init?(rawValue: Swift.String) { - let value = Self.allCases.first(where: { $0.rawValue == rawValue }) - self = value ?? Self.sdkUnknown(rawValue) - } - - public var rawValue: Swift.String { - switch self { - case .computeSp: return "COMPUTE_SP" - case .ec2InstanceSp: return "EC2_INSTANCE_SP" - case .sagemakerSp: return "SAGEMAKER_SP" - case let .sdkUnknown(s): return s - } - } - } -} - extension CostExplorerClientTypes { /// The details and metrics for the given recommendation. @@ -4551,6 +4983,46 @@ public struct GetUsageForecastOutput: Swift.Sendable { } } +public struct ListCommitmentPurchaseAnalysesInput: Swift.Sendable { + /// The analysis IDs associated with the commitment purchase analyses. + public var analysisIds: [Swift.String]? + /// The status of the analysis. + public var analysisStatus: CostExplorerClientTypes.AnalysisStatus? + /// The token to retrieve the next set of results. + public var nextPageToken: Swift.String? + /// The number of analyses that you want returned in a single response object. + public var pageSize: Swift.Int? + + public init( + analysisIds: [Swift.String]? = nil, + analysisStatus: CostExplorerClientTypes.AnalysisStatus? = nil, + nextPageToken: Swift.String? = nil, + pageSize: Swift.Int? = 0 + ) + { + self.analysisIds = analysisIds + self.analysisStatus = analysisStatus + self.nextPageToken = nextPageToken + self.pageSize = pageSize + } +} + +public struct ListCommitmentPurchaseAnalysesOutput: Swift.Sendable { + /// The list of analyses. + public var analysisSummaryList: [CostExplorerClientTypes.AnalysisSummary]? + /// The token to retrieve the next set of results. + public var nextPageToken: Swift.String? + + public init( + analysisSummaryList: [CostExplorerClientTypes.AnalysisSummary]? = nil, + nextPageToken: Swift.String? = nil + ) + { + self.analysisSummaryList = analysisSummaryList + self.nextPageToken = nextPageToken + } +} + public struct ListCostAllocationTagBackfillHistoryInput: Swift.Sendable { /// The maximum number of objects that are returned for this request. public var maxResults: Swift.Int? @@ -5024,6 +5496,66 @@ public struct ProvideAnomalyFeedbackOutput: Swift.Sendable { } } +/// A request to generate a recommendation is already in progress. +public struct GenerationExistsException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "GenerationExistsException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + +public struct StartCommitmentPurchaseAnalysisInput: Swift.Sendable { + /// The configuration for the commitment purchase analysis. + /// This member is required. + public var commitmentPurchaseAnalysisConfiguration: CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration? + + public init( + commitmentPurchaseAnalysisConfiguration: CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration? = nil + ) + { + self.commitmentPurchaseAnalysisConfiguration = commitmentPurchaseAnalysisConfiguration + } +} + +public struct StartCommitmentPurchaseAnalysisOutput: Swift.Sendable { + /// The analysis ID that's associated with the commitment purchase analysis. + /// This member is required. + public var analysisId: Swift.String? + /// The start time of the analysis. + /// This member is required. + public var analysisStartedTime: Swift.String? + /// The estimated time for when the analysis will complete. + /// This member is required. + public var estimatedCompletionTime: Swift.String? + + public init( + analysisId: Swift.String? = nil, + analysisStartedTime: Swift.String? = nil, + estimatedCompletionTime: Swift.String? = nil + ) + { + self.analysisId = analysisId + self.analysisStartedTime = analysisStartedTime + self.estimatedCompletionTime = estimatedCompletionTime + } +} + /// A request to backfill is already in progress. Once the previous request is complete, you can create another request. public struct BackfillLimitExceededException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -5073,30 +5605,6 @@ public struct StartCostAllocationTagBackfillOutput: Swift.Sendable { } } -/// A request to generate a recommendation is already in progress. -public struct GenerationExistsException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - - public struct Properties { - public internal(set) var message: Swift.String? = nil - } - - public internal(set) var properties = Properties() - public static var typeName: Swift.String { "GenerationExistsException" } - public static var fault: ClientRuntime.ErrorFault { .client } - public static var isRetryable: Swift.Bool { false } - public static var isThrottling: Swift.Bool { false } - public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() - public internal(set) var message: Swift.String? - public internal(set) var requestID: Swift.String? - - public init( - message: Swift.String? = nil - ) - { - self.properties.message = message - } -} - public struct StartSavingsPlansPurchaseRecommendationGenerationInput: Swift.Sendable { public init() { } @@ -5588,7 +6096,7 @@ extension CostExplorerClientTypes { public struct CostCategoryRule: Swift.Sendable { /// The value the line item is categorized as if the line item contains the matched dimension. public var inheritedValue: CostExplorerClientTypes.CostCategoryInheritedValueDimension? - /// An [Expression](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) object used to categorize costs. This supports dimensions, tags, and nested expressions. Currently the only dimensions supported are LINKED_ACCOUNT, SERVICE_CODE, RECORD_TYPE, LINKED_ACCOUNT_NAME, REGION, and USAGE_TYPE. RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also supported for Cost Category expressions. This dimension uses different terms, depending on whether you're using the console or API/JSON editor. For a detailed comparison, see [Term Comparisons](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms) in the Billing and Cost Management User Guide. + /// An [Expression](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) object used to categorize costs. This supports dimensions, tags, and nested expressions. Currently the only dimensions supported are LINKED_ACCOUNT, SERVICE_CODE, RECORD_TYPE, LINKED_ACCOUNT_NAME, REGION, USAGE_TYPE, and BILLING_ENTITY. RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also supported for Cost Category expressions. This dimension uses different terms, depending on whether you're using the console or API/JSON editor. For a detailed comparison, see [Term Comparisons](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms) in the Billing and Cost Management User Guide. public var rule: CostExplorerClientTypes.Expression? /// You can define the CostCategoryRule rule type as either REGULAR or INHERITED_VALUE. The INHERITED_VALUE rule type adds the flexibility to define a rule that dynamically inherits the cost category value. This value is from the dimension value that's defined by CostCategoryInheritedValueDimension. For example, suppose that you want to costs to be dynamically grouped based on the value of a specific tag key. First, choose an inherited value rule type, and then choose the tag dimension and specify the tag key to use. public var type: CostExplorerClientTypes.CostCategoryRuleType? @@ -5876,7 +6384,7 @@ public struct GetDimensionValuesInput: Swift.Sendable { /// /// * AZ - The Availability Zone. An example is us-east-1a. /// - /// * BILLING_ENTITY - The Amazon Web Services seller that your account is with. Possible values are the following: - Amazon Web Services(Amazon Web Services): The entity that sells Amazon Web Servicesservices. - AISPL (Amazon Internet Services Pvt. Ltd.): The local Indian entity that's an acting reseller for Amazon Web Servicesservices in India. - Amazon Web Services Marketplace: The entity that supports the sale of solutions that are built on Amazon Web Services by third-party software providers. + /// * BILLING_ENTITY - The Amazon Web Services seller that your account is with. Possible values are the following: - Amazon Web Services(Amazon Web Services): The entity that sells Amazon Web Services services. - AISPL (Amazon Internet Services Pvt. Ltd.): The local Indian entity that's an acting reseller for Amazon Web Services services in India. - Amazon Web Services Marketplace: The entity that supports the sale of solutions that are built on Amazon Web Services by third-party software providers. /// /// * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux. /// @@ -6298,7 +6806,7 @@ public struct GetReservationUtilizationInput: Swift.Sendable { /// /// * REGION /// - /// * SERVICE + /// * SERVICE If not specified, the SERVICE filter defaults to Amazon Elastic Compute Cloud - Compute. Supported values for SERVICE are Amazon Elastic Compute Cloud - Compute, Amazon Relational Database Service, Amazon ElastiCache, Amazon Redshift, and Amazon Elasticsearch Service. The value for the SERVICE filter should not exceed "1". /// /// * SCOPE /// @@ -7243,6 +7751,13 @@ extension GetApproximateUsageRecordsInput { } } +extension GetCommitmentPurchaseAnalysisInput { + + static func urlPathProvider(_ value: GetCommitmentPurchaseAnalysisInput) -> Swift.String? { + return "/" + } +} + extension GetCostAndUsageInput { static func urlPathProvider(_ value: GetCostAndUsageInput) -> Swift.String? { @@ -7355,6 +7870,13 @@ extension GetUsageForecastInput { } } +extension ListCommitmentPurchaseAnalysesInput { + + static func urlPathProvider(_ value: ListCommitmentPurchaseAnalysesInput) -> Swift.String? { + return "/" + } +} + extension ListCostAllocationTagBackfillHistoryInput { static func urlPathProvider(_ value: ListCostAllocationTagBackfillHistoryInput) -> Swift.String? { @@ -7397,6 +7919,13 @@ extension ProvideAnomalyFeedbackInput { } } +extension StartCommitmentPurchaseAnalysisInput { + + static func urlPathProvider(_ value: StartCommitmentPurchaseAnalysisInput) -> Swift.String? { + return "/" + } +} + extension StartCostAllocationTagBackfillInput { static func urlPathProvider(_ value: StartCostAllocationTagBackfillInput) -> Swift.String? { @@ -7562,6 +8091,14 @@ extension GetApproximateUsageRecordsInput { } } +extension GetCommitmentPurchaseAnalysisInput { + + static func write(value: GetCommitmentPurchaseAnalysisInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["AnalysisId"].write(value.analysisId) + } +} + extension GetCostAndUsageInput { static func write(value: GetCostAndUsageInput?, to writer: SmithyJSON.Writer) throws { @@ -7775,6 +8312,17 @@ extension GetUsageForecastInput { } } +extension ListCommitmentPurchaseAnalysesInput { + + static func write(value: ListCommitmentPurchaseAnalysesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["AnalysisIds"].writeList(value.analysisIds, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["AnalysisStatus"].write(value.analysisStatus) + try writer["NextPageToken"].write(value.nextPageToken) + try writer["PageSize"].write(value.pageSize) + } +} + extension ListCostAllocationTagBackfillHistoryInput { static func write(value: ListCostAllocationTagBackfillHistoryInput?, to writer: SmithyJSON.Writer) throws { @@ -7834,6 +8382,14 @@ extension ProvideAnomalyFeedbackInput { } } +extension StartCommitmentPurchaseAnalysisInput { + + static func write(value: StartCommitmentPurchaseAnalysisInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["CommitmentPurchaseAnalysisConfiguration"].write(value.commitmentPurchaseAnalysisConfiguration, with: CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration.write(value:to:)) + } +} + extension StartCostAllocationTagBackfillInput { static func write(value: StartCostAllocationTagBackfillInput?, to writer: SmithyJSON.Writer) throws { @@ -8041,6 +8597,25 @@ extension GetApproximateUsageRecordsOutput { } } +extension GetCommitmentPurchaseAnalysisOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetCommitmentPurchaseAnalysisOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetCommitmentPurchaseAnalysisOutput() + value.analysisCompletionTime = try reader["AnalysisCompletionTime"].readIfPresent() + value.analysisDetails = try reader["AnalysisDetails"].readIfPresent(with: CostExplorerClientTypes.AnalysisDetails.read(from:)) + value.analysisId = try reader["AnalysisId"].readIfPresent() ?? "" + value.analysisStartedTime = try reader["AnalysisStartedTime"].readIfPresent() ?? "" + value.analysisStatus = try reader["AnalysisStatus"].readIfPresent() ?? .sdkUnknown("") + value.commitmentPurchaseAnalysisConfiguration = try reader["CommitmentPurchaseAnalysisConfiguration"].readIfPresent(with: CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration.read(from:)) + value.errorCode = try reader["ErrorCode"].readIfPresent() + value.estimatedCompletionTime = try reader["EstimatedCompletionTime"].readIfPresent() ?? "" + return value + } +} + extension GetCostAndUsageOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetCostAndUsageOutput { @@ -8269,6 +8844,19 @@ extension GetUsageForecastOutput { } } +extension ListCommitmentPurchaseAnalysesOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListCommitmentPurchaseAnalysesOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListCommitmentPurchaseAnalysesOutput() + value.analysisSummaryList = try reader["AnalysisSummaryList"].readListIfPresent(memberReadingClosure: CostExplorerClientTypes.AnalysisSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextPageToken = try reader["NextPageToken"].readIfPresent() + return value + } +} + extension ListCostAllocationTagBackfillHistoryOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListCostAllocationTagBackfillHistoryOutput { @@ -8345,6 +8933,20 @@ extension ProvideAnomalyFeedbackOutput { } } +extension StartCommitmentPurchaseAnalysisOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartCommitmentPurchaseAnalysisOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = StartCommitmentPurchaseAnalysisOutput() + value.analysisId = try reader["AnalysisId"].readIfPresent() ?? "" + value.analysisStartedTime = try reader["AnalysisStartedTime"].readIfPresent() ?? "" + value.estimatedCompletionTime = try reader["EstimatedCompletionTime"].readIfPresent() ?? "" + return value + } +} + extension StartCostAllocationTagBackfillOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartCostAllocationTagBackfillOutput { @@ -8600,6 +9202,22 @@ enum GetApproximateUsageRecordsOutputError { } } +enum GetCommitmentPurchaseAnalysisOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AnalysisNotFoundException": return try AnalysisNotFoundException.makeError(baseError: baseError) + case "DataUnavailableException": return try DataUnavailableException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum GetCostAndUsageOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -8861,6 +9479,22 @@ enum GetUsageForecastOutputError { } } +enum ListCommitmentPurchaseAnalysesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "DataUnavailableException": return try DataUnavailableException.makeError(baseError: baseError) + case "InvalidNextTokenException": return try InvalidNextTokenException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListCostAllocationTagBackfillHistoryOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -8950,6 +9584,23 @@ enum ProvideAnomalyFeedbackOutputError { } } +enum StartCommitmentPurchaseAnalysisOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "DataUnavailableException": return try DataUnavailableException.makeError(baseError: baseError) + case "GenerationExistsException": return try GenerationExistsException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum StartCostAllocationTagBackfillOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -9166,6 +9817,19 @@ extension DataUnavailableException { } } +extension AnalysisNotFoundException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> AnalysisNotFoundException { + let reader = baseError.errorBodyReader + var value = AnalysisNotFoundException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + extension BillExpirationException { static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> BillExpirationException { @@ -9205,11 +9869,11 @@ extension UnresolvableUsageUnitException { } } -extension BackfillLimitExceededException { +extension GenerationExistsException { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> BackfillLimitExceededException { + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> GenerationExistsException { let reader = baseError.errorBodyReader - var value = BackfillLimitExceededException() + var value = GenerationExistsException() value.properties.message = try reader["Message"].readIfPresent() value.httpResponse = baseError.httpResponse value.requestID = baseError.requestID @@ -9218,11 +9882,11 @@ extension BackfillLimitExceededException { } } -extension GenerationExistsException { +extension BackfillLimitExceededException { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> GenerationExistsException { + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> BackfillLimitExceededException { let reader = baseError.errorBodyReader - var value = GenerationExistsException() + var value = BackfillLimitExceededException() value.properties.message = try reader["Message"].readIfPresent() value.httpResponse = baseError.httpResponse value.requestID = baseError.requestID @@ -9585,6 +10249,128 @@ extension CostExplorerClientTypes.DateInterval { } } +extension CostExplorerClientTypes.AnalysisDetails { + + static func read(from reader: SmithyJSON.Reader) throws -> CostExplorerClientTypes.AnalysisDetails { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CostExplorerClientTypes.AnalysisDetails() + value.savingsPlansPurchaseAnalysisDetails = try reader["SavingsPlansPurchaseAnalysisDetails"].readIfPresent(with: CostExplorerClientTypes.SavingsPlansPurchaseAnalysisDetails.read(from:)) + return value + } +} + +extension CostExplorerClientTypes.SavingsPlansPurchaseAnalysisDetails { + + static func read(from reader: SmithyJSON.Reader) throws -> CostExplorerClientTypes.SavingsPlansPurchaseAnalysisDetails { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CostExplorerClientTypes.SavingsPlansPurchaseAnalysisDetails() + value.currencyCode = try reader["CurrencyCode"].readIfPresent() + value.lookbackPeriodInHours = try reader["LookbackPeriodInHours"].readIfPresent() + value.currentAverageCoverage = try reader["CurrentAverageCoverage"].readIfPresent() + value.currentAverageHourlyOnDemandSpend = try reader["CurrentAverageHourlyOnDemandSpend"].readIfPresent() + value.currentMaximumHourlyOnDemandSpend = try reader["CurrentMaximumHourlyOnDemandSpend"].readIfPresent() + value.currentMinimumHourlyOnDemandSpend = try reader["CurrentMinimumHourlyOnDemandSpend"].readIfPresent() + value.currentOnDemandSpend = try reader["CurrentOnDemandSpend"].readIfPresent() + value.existingHourlyCommitment = try reader["ExistingHourlyCommitment"].readIfPresent() + value.hourlyCommitmentToPurchase = try reader["HourlyCommitmentToPurchase"].readIfPresent() + value.estimatedAverageCoverage = try reader["EstimatedAverageCoverage"].readIfPresent() + value.estimatedAverageUtilization = try reader["EstimatedAverageUtilization"].readIfPresent() + value.estimatedMonthlySavingsAmount = try reader["EstimatedMonthlySavingsAmount"].readIfPresent() + value.estimatedOnDemandCost = try reader["EstimatedOnDemandCost"].readIfPresent() + value.estimatedOnDemandCostWithCurrentCommitment = try reader["EstimatedOnDemandCostWithCurrentCommitment"].readIfPresent() + value.estimatedROI = try reader["EstimatedROI"].readIfPresent() + value.estimatedSavingsAmount = try reader["EstimatedSavingsAmount"].readIfPresent() + value.estimatedSavingsPercentage = try reader["EstimatedSavingsPercentage"].readIfPresent() + value.estimatedCommitmentCost = try reader["EstimatedCommitmentCost"].readIfPresent() + value.latestUsageTimestamp = try reader["LatestUsageTimestamp"].readIfPresent() + value.upfrontCost = try reader["UpfrontCost"].readIfPresent() + value.additionalMetadata = try reader["AdditionalMetadata"].readIfPresent() + value.metricsOverLookbackPeriod = try reader["MetricsOverLookbackPeriod"].readListIfPresent(memberReadingClosure: CostExplorerClientTypes.RecommendationDetailHourlyMetrics.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension CostExplorerClientTypes.RecommendationDetailHourlyMetrics { + + static func read(from reader: SmithyJSON.Reader) throws -> CostExplorerClientTypes.RecommendationDetailHourlyMetrics { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CostExplorerClientTypes.RecommendationDetailHourlyMetrics() + value.startTime = try reader["StartTime"].readIfPresent() + value.estimatedOnDemandCost = try reader["EstimatedOnDemandCost"].readIfPresent() + value.currentCoverage = try reader["CurrentCoverage"].readIfPresent() + value.estimatedCoverage = try reader["EstimatedCoverage"].readIfPresent() + value.estimatedNewCommitmentUtilization = try reader["EstimatedNewCommitmentUtilization"].readIfPresent() + return value + } +} + +extension CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration { + + static func write(value: CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["SavingsPlansPurchaseAnalysisConfiguration"].write(value.savingsPlansPurchaseAnalysisConfiguration, with: CostExplorerClientTypes.SavingsPlansPurchaseAnalysisConfiguration.write(value:to:)) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration() + value.savingsPlansPurchaseAnalysisConfiguration = try reader["SavingsPlansPurchaseAnalysisConfiguration"].readIfPresent(with: CostExplorerClientTypes.SavingsPlansPurchaseAnalysisConfiguration.read(from:)) + return value + } +} + +extension CostExplorerClientTypes.SavingsPlansPurchaseAnalysisConfiguration { + + static func write(value: CostExplorerClientTypes.SavingsPlansPurchaseAnalysisConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["AccountId"].write(value.accountId) + try writer["AccountScope"].write(value.accountScope) + try writer["AnalysisType"].write(value.analysisType) + try writer["LookBackTimePeriod"].write(value.lookBackTimePeriod, with: CostExplorerClientTypes.DateInterval.write(value:to:)) + try writer["SavingsPlansToAdd"].writeList(value.savingsPlansToAdd, memberWritingClosure: CostExplorerClientTypes.SavingsPlans.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["SavingsPlansToExclude"].writeList(value.savingsPlansToExclude, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CostExplorerClientTypes.SavingsPlansPurchaseAnalysisConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CostExplorerClientTypes.SavingsPlansPurchaseAnalysisConfiguration() + value.accountScope = try reader["AccountScope"].readIfPresent() + value.accountId = try reader["AccountId"].readIfPresent() + value.analysisType = try reader["AnalysisType"].readIfPresent() ?? .sdkUnknown("") + value.savingsPlansToAdd = try reader["SavingsPlansToAdd"].readListIfPresent(memberReadingClosure: CostExplorerClientTypes.SavingsPlans.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.savingsPlansToExclude = try reader["SavingsPlansToExclude"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.lookBackTimePeriod = try reader["LookBackTimePeriod"].readIfPresent(with: CostExplorerClientTypes.DateInterval.read(from:)) + return value + } +} + +extension CostExplorerClientTypes.SavingsPlans { + + static func write(value: CostExplorerClientTypes.SavingsPlans?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["InstanceFamily"].write(value.instanceFamily) + try writer["OfferingId"].write(value.offeringId) + try writer["PaymentOption"].write(value.paymentOption) + try writer["Region"].write(value.region) + try writer["SavingsPlansCommitment"].write(value.savingsPlansCommitment) + try writer["SavingsPlansType"].write(value.savingsPlansType) + try writer["TermInYears"].write(value.termInYears) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CostExplorerClientTypes.SavingsPlans { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CostExplorerClientTypes.SavingsPlans() + value.paymentOption = try reader["PaymentOption"].readIfPresent() + value.savingsPlansType = try reader["SavingsPlansType"].readIfPresent() + value.region = try reader["Region"].readIfPresent() + value.instanceFamily = try reader["InstanceFamily"].readIfPresent() + value.termInYears = try reader["TermInYears"].readIfPresent() + value.savingsPlansCommitment = try reader["SavingsPlansCommitment"].readIfPresent() + value.offeringId = try reader["OfferingId"].readIfPresent() + return value + } +} + extension CostExplorerClientTypes.GroupDefinition { static func write(value: CostExplorerClientTypes.GroupDefinition?, to writer: SmithyJSON.Writer) throws { @@ -10259,20 +11045,6 @@ extension CostExplorerClientTypes.RecommendationDetailData { } } -extension CostExplorerClientTypes.RecommendationDetailHourlyMetrics { - - static func read(from reader: SmithyJSON.Reader) throws -> CostExplorerClientTypes.RecommendationDetailHourlyMetrics { - guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = CostExplorerClientTypes.RecommendationDetailHourlyMetrics() - value.startTime = try reader["StartTime"].readIfPresent() - value.estimatedOnDemandCost = try reader["EstimatedOnDemandCost"].readIfPresent() - value.currentCoverage = try reader["CurrentCoverage"].readIfPresent() - value.estimatedCoverage = try reader["EstimatedCoverage"].readIfPresent() - value.estimatedNewCommitmentUtilization = try reader["EstimatedNewCommitmentUtilization"].readIfPresent() - return value - } -} - extension CostExplorerClientTypes.SavingsPlansCoverage { static func read(from reader: SmithyJSON.Reader) throws -> CostExplorerClientTypes.SavingsPlansCoverage { @@ -10459,6 +11231,22 @@ extension CostExplorerClientTypes.SavingsPlansUtilizationDetail { } } +extension CostExplorerClientTypes.AnalysisSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> CostExplorerClientTypes.AnalysisSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CostExplorerClientTypes.AnalysisSummary() + value.estimatedCompletionTime = try reader["EstimatedCompletionTime"].readIfPresent() + value.analysisCompletionTime = try reader["AnalysisCompletionTime"].readIfPresent() + value.analysisStartedTime = try reader["AnalysisStartedTime"].readIfPresent() + value.analysisStatus = try reader["AnalysisStatus"].readIfPresent() + value.errorCode = try reader["ErrorCode"].readIfPresent() + value.analysisId = try reader["AnalysisId"].readIfPresent() + value.commitmentPurchaseAnalysisConfiguration = try reader["CommitmentPurchaseAnalysisConfiguration"].readIfPresent(with: CostExplorerClientTypes.CommitmentPurchaseAnalysisConfiguration.read(from:)) + return value + } +} + extension CostExplorerClientTypes.CostAllocationTagBackfillRequest { static func read(from reader: SmithyJSON.Reader) throws -> CostExplorerClientTypes.CostAllocationTagBackfillRequest { diff --git a/Sources/Services/AWSCostOptimizationHub/Sources/AWSCostOptimizationHub/CostOptimizationHubClient.swift b/Sources/Services/AWSCostOptimizationHub/Sources/AWSCostOptimizationHub/CostOptimizationHubClient.swift index 66d490e6e35..26bafb20b42 100644 --- a/Sources/Services/AWSCostOptimizationHub/Sources/AWSCostOptimizationHub/CostOptimizationHubClient.swift +++ b/Sources/Services/AWSCostOptimizationHub/Sources/AWSCostOptimizationHub/CostOptimizationHubClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CostOptimizationHubClient: ClientRuntime.Client { public static let clientName = "CostOptimizationHubClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CostOptimizationHubClient.CostOptimizationHubClientConfiguration let serviceName = "Cost Optimization Hub" diff --git a/Sources/Services/AWSCostandUsageReportService/Sources/AWSCostandUsageReportService/CostandUsageReportClient.swift b/Sources/Services/AWSCostandUsageReportService/Sources/AWSCostandUsageReportService/CostandUsageReportClient.swift index 5369193ab32..a40a04f27e0 100644 --- a/Sources/Services/AWSCostandUsageReportService/Sources/AWSCostandUsageReportService/CostandUsageReportClient.swift +++ b/Sources/Services/AWSCostandUsageReportService/Sources/AWSCostandUsageReportService/CostandUsageReportClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CostandUsageReportClient: ClientRuntime.Client { public static let clientName = "CostandUsageReportClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CostandUsageReportClient.CostandUsageReportClientConfiguration let serviceName = "Cost and Usage Report" diff --git a/Sources/Services/AWSCustomerProfiles/Sources/AWSCustomerProfiles/CustomerProfilesClient.swift b/Sources/Services/AWSCustomerProfiles/Sources/AWSCustomerProfiles/CustomerProfilesClient.swift index 644aae7407e..83a9f290f8f 100644 --- a/Sources/Services/AWSCustomerProfiles/Sources/AWSCustomerProfiles/CustomerProfilesClient.swift +++ b/Sources/Services/AWSCustomerProfiles/Sources/AWSCustomerProfiles/CustomerProfilesClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class CustomerProfilesClient: ClientRuntime.Client { public static let clientName = "CustomerProfilesClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: CustomerProfilesClient.CustomerProfilesClientConfiguration let serviceName = "Customer Profiles" diff --git a/Sources/Services/AWSDAX/Sources/AWSDAX/DAXClient.swift b/Sources/Services/AWSDAX/Sources/AWSDAX/DAXClient.swift index 73345d37f1c..60bd7e99d0e 100644 --- a/Sources/Services/AWSDAX/Sources/AWSDAX/DAXClient.swift +++ b/Sources/Services/AWSDAX/Sources/AWSDAX/DAXClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DAXClient: ClientRuntime.Client { public static let clientName = "DAXClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DAXClient.DAXClientConfiguration let serviceName = "DAX" diff --git a/Sources/Services/AWSDLM/Sources/AWSDLM/DLMClient.swift b/Sources/Services/AWSDLM/Sources/AWSDLM/DLMClient.swift index 0da88b7952b..01f69b7fc0f 100644 --- a/Sources/Services/AWSDLM/Sources/AWSDLM/DLMClient.swift +++ b/Sources/Services/AWSDLM/Sources/AWSDLM/DLMClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DLMClient: ClientRuntime.Client { public static let clientName = "DLMClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DLMClient.DLMClientConfiguration let serviceName = "DLM" diff --git a/Sources/Services/AWSDataBrew/Sources/AWSDataBrew/DataBrewClient.swift b/Sources/Services/AWSDataBrew/Sources/AWSDataBrew/DataBrewClient.swift index 42f5f667af2..0f52edd96a3 100644 --- a/Sources/Services/AWSDataBrew/Sources/AWSDataBrew/DataBrewClient.swift +++ b/Sources/Services/AWSDataBrew/Sources/AWSDataBrew/DataBrewClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DataBrewClient: ClientRuntime.Client { public static let clientName = "DataBrewClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DataBrewClient.DataBrewClientConfiguration let serviceName = "DataBrew" diff --git a/Sources/Services/AWSDataExchange/Sources/AWSDataExchange/DataExchangeClient.swift b/Sources/Services/AWSDataExchange/Sources/AWSDataExchange/DataExchangeClient.swift index a7860dff371..214764a6a1b 100644 --- a/Sources/Services/AWSDataExchange/Sources/AWSDataExchange/DataExchangeClient.swift +++ b/Sources/Services/AWSDataExchange/Sources/AWSDataExchange/DataExchangeClient.swift @@ -68,7 +68,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DataExchangeClient: ClientRuntime.Client { public static let clientName = "DataExchangeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DataExchangeClient.DataExchangeClientConfiguration let serviceName = "DataExchange" diff --git a/Sources/Services/AWSDataPipeline/Sources/AWSDataPipeline/DataPipelineClient.swift b/Sources/Services/AWSDataPipeline/Sources/AWSDataPipeline/DataPipelineClient.swift index 06da29df3dd..2316dd8a1c9 100644 --- a/Sources/Services/AWSDataPipeline/Sources/AWSDataPipeline/DataPipelineClient.swift +++ b/Sources/Services/AWSDataPipeline/Sources/AWSDataPipeline/DataPipelineClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DataPipelineClient: ClientRuntime.Client { public static let clientName = "DataPipelineClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DataPipelineClient.DataPipelineClientConfiguration let serviceName = "Data Pipeline" diff --git a/Sources/Services/AWSDataSync/Sources/AWSDataSync/DataSyncClient.swift b/Sources/Services/AWSDataSync/Sources/AWSDataSync/DataSyncClient.swift index 76754517456..6d1fa9eb135 100644 --- a/Sources/Services/AWSDataSync/Sources/AWSDataSync/DataSyncClient.swift +++ b/Sources/Services/AWSDataSync/Sources/AWSDataSync/DataSyncClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DataSyncClient: ClientRuntime.Client { public static let clientName = "DataSyncClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DataSyncClient.DataSyncClientConfiguration let serviceName = "DataSync" diff --git a/Sources/Services/AWSDataZone/Sources/AWSDataZone/DataZoneClient.swift b/Sources/Services/AWSDataZone/Sources/AWSDataZone/DataZoneClient.swift index 90ccd6153ef..04f69f6161f 100644 --- a/Sources/Services/AWSDataZone/Sources/AWSDataZone/DataZoneClient.swift +++ b/Sources/Services/AWSDataZone/Sources/AWSDataZone/DataZoneClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DataZoneClient: ClientRuntime.Client { public static let clientName = "DataZoneClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DataZoneClient.DataZoneClientConfiguration let serviceName = "DataZone" diff --git a/Sources/Services/AWSDatabaseMigrationService/Sources/AWSDatabaseMigrationService/DatabaseMigrationClient.swift b/Sources/Services/AWSDatabaseMigrationService/Sources/AWSDatabaseMigrationService/DatabaseMigrationClient.swift index b90c13a1208..cefec731132 100644 --- a/Sources/Services/AWSDatabaseMigrationService/Sources/AWSDatabaseMigrationService/DatabaseMigrationClient.swift +++ b/Sources/Services/AWSDatabaseMigrationService/Sources/AWSDatabaseMigrationService/DatabaseMigrationClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DatabaseMigrationClient: ClientRuntime.Client { public static let clientName = "DatabaseMigrationClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DatabaseMigrationClient.DatabaseMigrationClientConfiguration let serviceName = "Database Migration" diff --git a/Sources/Services/AWSDeadline/Sources/AWSDeadline/DeadlineClient.swift b/Sources/Services/AWSDeadline/Sources/AWSDeadline/DeadlineClient.swift index 9182f1a6fd0..6411fc9f2ab 100644 --- a/Sources/Services/AWSDeadline/Sources/AWSDeadline/DeadlineClient.swift +++ b/Sources/Services/AWSDeadline/Sources/AWSDeadline/DeadlineClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DeadlineClient: ClientRuntime.Client { public static let clientName = "DeadlineClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DeadlineClient.DeadlineClientConfiguration let serviceName = "deadline" diff --git a/Sources/Services/AWSDetective/Sources/AWSDetective/DetectiveClient.swift b/Sources/Services/AWSDetective/Sources/AWSDetective/DetectiveClient.swift index 377fb23c296..122f0d52630 100644 --- a/Sources/Services/AWSDetective/Sources/AWSDetective/DetectiveClient.swift +++ b/Sources/Services/AWSDetective/Sources/AWSDetective/DetectiveClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DetectiveClient: ClientRuntime.Client { public static let clientName = "DetectiveClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DetectiveClient.DetectiveClientConfiguration let serviceName = "Detective" diff --git a/Sources/Services/AWSDevOpsGuru/Sources/AWSDevOpsGuru/DevOpsGuruClient.swift b/Sources/Services/AWSDevOpsGuru/Sources/AWSDevOpsGuru/DevOpsGuruClient.swift index ce6864c8a64..b046f9fece5 100644 --- a/Sources/Services/AWSDevOpsGuru/Sources/AWSDevOpsGuru/DevOpsGuruClient.swift +++ b/Sources/Services/AWSDevOpsGuru/Sources/AWSDevOpsGuru/DevOpsGuruClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DevOpsGuruClient: ClientRuntime.Client { public static let clientName = "DevOpsGuruClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DevOpsGuruClient.DevOpsGuruClientConfiguration let serviceName = "DevOps Guru" diff --git a/Sources/Services/AWSDeviceFarm/Sources/AWSDeviceFarm/DeviceFarmClient.swift b/Sources/Services/AWSDeviceFarm/Sources/AWSDeviceFarm/DeviceFarmClient.swift index e38b0b8ad4b..39cb01309da 100644 --- a/Sources/Services/AWSDeviceFarm/Sources/AWSDeviceFarm/DeviceFarmClient.swift +++ b/Sources/Services/AWSDeviceFarm/Sources/AWSDeviceFarm/DeviceFarmClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DeviceFarmClient: ClientRuntime.Client { public static let clientName = "DeviceFarmClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DeviceFarmClient.DeviceFarmClientConfiguration let serviceName = "Device Farm" diff --git a/Sources/Services/AWSDirectConnect/Sources/AWSDirectConnect/DirectConnectClient.swift b/Sources/Services/AWSDirectConnect/Sources/AWSDirectConnect/DirectConnectClient.swift index d71e4e5438a..14872cb1e9c 100644 --- a/Sources/Services/AWSDirectConnect/Sources/AWSDirectConnect/DirectConnectClient.swift +++ b/Sources/Services/AWSDirectConnect/Sources/AWSDirectConnect/DirectConnectClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DirectConnectClient: ClientRuntime.Client { public static let clientName = "DirectConnectClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DirectConnectClient.DirectConnectClientConfiguration let serviceName = "Direct Connect" diff --git a/Sources/Services/AWSDirectoryService/Sources/AWSDirectoryService/DirectoryClient.swift b/Sources/Services/AWSDirectoryService/Sources/AWSDirectoryService/DirectoryClient.swift index 07714e9ce86..5cb7ffcaa39 100644 --- a/Sources/Services/AWSDirectoryService/Sources/AWSDirectoryService/DirectoryClient.swift +++ b/Sources/Services/AWSDirectoryService/Sources/AWSDirectoryService/DirectoryClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DirectoryClient: ClientRuntime.Client { public static let clientName = "DirectoryClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DirectoryClient.DirectoryClientConfiguration let serviceName = "Directory" diff --git a/Sources/Services/AWSDirectoryServiceData/Sources/AWSDirectoryServiceData/DirectoryServiceDataClient.swift b/Sources/Services/AWSDirectoryServiceData/Sources/AWSDirectoryServiceData/DirectoryServiceDataClient.swift index 5e2bc4bf769..281b7c20837 100644 --- a/Sources/Services/AWSDirectoryServiceData/Sources/AWSDirectoryServiceData/DirectoryServiceDataClient.swift +++ b/Sources/Services/AWSDirectoryServiceData/Sources/AWSDirectoryServiceData/DirectoryServiceDataClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DirectoryServiceDataClient: ClientRuntime.Client { public static let clientName = "DirectoryServiceDataClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DirectoryServiceDataClient.DirectoryServiceDataClientConfiguration let serviceName = "Directory Service Data" diff --git a/Sources/Services/AWSDocDB/Sources/AWSDocDB/DocDBClient.swift b/Sources/Services/AWSDocDB/Sources/AWSDocDB/DocDBClient.swift index 996c68cc358..22c9be28ba9 100644 --- a/Sources/Services/AWSDocDB/Sources/AWSDocDB/DocDBClient.swift +++ b/Sources/Services/AWSDocDB/Sources/AWSDocDB/DocDBClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DocDBClient: ClientRuntime.Client { public static let clientName = "DocDBClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DocDBClient.DocDBClientConfiguration let serviceName = "DocDB" diff --git a/Sources/Services/AWSDocDBElastic/Sources/AWSDocDBElastic/DocDBElasticClient.swift b/Sources/Services/AWSDocDBElastic/Sources/AWSDocDBElastic/DocDBElasticClient.swift index a3aa2a00342..e4cc41f16eb 100644 --- a/Sources/Services/AWSDocDBElastic/Sources/AWSDocDBElastic/DocDBElasticClient.swift +++ b/Sources/Services/AWSDocDBElastic/Sources/AWSDocDBElastic/DocDBElasticClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DocDBElasticClient: ClientRuntime.Client { public static let clientName = "DocDBElasticClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DocDBElasticClient.DocDBElasticClientConfiguration let serviceName = "DocDB Elastic" diff --git a/Sources/Services/AWSDrs/Sources/AWSDrs/DrsClient.swift b/Sources/Services/AWSDrs/Sources/AWSDrs/DrsClient.swift index 79bd160da38..0200108bf1e 100644 --- a/Sources/Services/AWSDrs/Sources/AWSDrs/DrsClient.swift +++ b/Sources/Services/AWSDrs/Sources/AWSDrs/DrsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DrsClient: ClientRuntime.Client { public static let clientName = "DrsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DrsClient.DrsClientConfiguration let serviceName = "drs" diff --git a/Sources/Services/AWSDynamoDB/Sources/AWSDynamoDB/DynamoDBClient.swift b/Sources/Services/AWSDynamoDB/Sources/AWSDynamoDB/DynamoDBClient.swift index 10dc49bd391..9041823b1f2 100644 --- a/Sources/Services/AWSDynamoDB/Sources/AWSDynamoDB/DynamoDBClient.swift +++ b/Sources/Services/AWSDynamoDB/Sources/AWSDynamoDB/DynamoDBClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DynamoDBClient: ClientRuntime.Client { public static let clientName = "DynamoDBClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DynamoDBClient.DynamoDBClientConfiguration let serviceName = "DynamoDB" diff --git a/Sources/Services/AWSDynamoDBStreams/Sources/AWSDynamoDBStreams/DynamoDBStreamsClient.swift b/Sources/Services/AWSDynamoDBStreams/Sources/AWSDynamoDBStreams/DynamoDBStreamsClient.swift index cdfd07c7598..fafe7d299e5 100644 --- a/Sources/Services/AWSDynamoDBStreams/Sources/AWSDynamoDBStreams/DynamoDBStreamsClient.swift +++ b/Sources/Services/AWSDynamoDBStreams/Sources/AWSDynamoDBStreams/DynamoDBStreamsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class DynamoDBStreamsClient: ClientRuntime.Client { public static let clientName = "DynamoDBStreamsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: DynamoDBStreamsClient.DynamoDBStreamsClientConfiguration let serviceName = "DynamoDB Streams" diff --git a/Sources/Services/AWSEBS/Sources/AWSEBS/EBSClient.swift b/Sources/Services/AWSEBS/Sources/AWSEBS/EBSClient.swift index d055019647d..b0592df94f8 100644 --- a/Sources/Services/AWSEBS/Sources/AWSEBS/EBSClient.swift +++ b/Sources/Services/AWSEBS/Sources/AWSEBS/EBSClient.swift @@ -69,7 +69,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EBSClient: ClientRuntime.Client { public static let clientName = "EBSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EBSClient.EBSClientConfiguration let serviceName = "EBS" diff --git a/Sources/Services/AWSEC2/Sources/AWSEC2/EC2Client.swift b/Sources/Services/AWSEC2/Sources/AWSEC2/EC2Client.swift index 3580c5ac20b..56e13eebddb 100644 --- a/Sources/Services/AWSEC2/Sources/AWSEC2/EC2Client.swift +++ b/Sources/Services/AWSEC2/Sources/AWSEC2/EC2Client.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EC2Client: ClientRuntime.Client { public static let clientName = "EC2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EC2Client.EC2ClientConfiguration let serviceName = "EC2" @@ -3104,7 +3104,14 @@ extension EC2Client { /// Performs the `CancelCapacityReservation` operation on the `AmazonEC2` service. /// - /// Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to cancelled. Instances running in the reserved capacity continue running until you stop them. Stopped instances that target the Capacity Reservation can no longer launch. Modify these instances to either target a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation that has matching attributes and sufficient capacity. + /// Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to cancelled. You can cancel a Capacity Reservation that is in the following states: + /// + /// * assessing + /// + /// * active and there is no commitment duration or the commitment duration has elapsed. You can't cancel a future-dated Capacity Reservation during the commitment duration. + /// + /// + /// If a future-dated Capacity Reservation enters the delayed state, the commitment duration is waived, and you can cancel it as soon as it enters the active state. Instances running in the reserved capacity continue running until you stop them. Stopped instances that target the Capacity Reservation can no longer launch. Modify these instances to either target a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation that has matching attributes and sufficient capacity. /// /// - Parameter CancelCapacityReservationInput : [no documentation found] /// @@ -3944,7 +3951,11 @@ extension EC2Client { /// Performs the `CreateCapacityReservation` operation on the `AmazonEC2` service. /// - /// Creates a new Capacity Reservation with the specified attributes. Capacity Reservations enable you to reserve capacity for your Amazon EC2 instances in a specific Availability Zone for any duration. This gives you the flexibility to selectively add capacity reservations and still get the Regional RI discounts for that usage. By creating Capacity Reservations, you ensure that you always have access to Amazon EC2 capacity when you need it, for as long as you need it. For more information, see [Capacity Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) in the Amazon EC2 User Guide. Your request to create a Capacity Reservation could fail if Amazon EC2 does not have sufficient capacity to fulfill the request. If your request fails due to Amazon EC2 capacity constraints, either try again at a later time, try in a different Availability Zone, or request a smaller capacity reservation. If your application is flexible across instance types and sizes, try to create a Capacity Reservation with different instance attributes. Your request could also fail if the requested quantity exceeds your On-Demand Instance limit for the selected instance type. If your request fails due to limit constraints, increase your On-Demand Instance limit for the required instance type and try again. For more information about increasing your instance limits, see [Amazon EC2 Service Quotas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html) in the Amazon EC2 User Guide. + /// Creates a new Capacity Reservation with the specified attributes. Capacity Reservations enable you to reserve capacity for your Amazon EC2 instances in a specific Availability Zone for any duration. You can create a Capacity Reservation at any time, and you can choose when it starts. You can create a Capacity Reservation for immediate use or you can request a Capacity Reservation for a future date. For more information, see [ Reserve compute capacity with On-Demand Capacity Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) in the Amazon EC2 User Guide. Your request to create a Capacity Reservation could fail if: + /// + /// * Amazon EC2 does not have sufficient capacity. In this case, try again at a later time, try in a different Availability Zone, or request a smaller Capacity Reservation. If your workload is flexible across instance types and sizes, try with different instance attributes. + /// + /// * The requested quantity exceeds your On-Demand Instance quota. In this case, increase your On-Demand Instance quota for the requested instance type and try again. For more information, see [ Amazon EC2 Service Quotas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html) in the Amazon EC2 User Guide. /// /// - Parameter CreateCapacityReservationInput : [no documentation found] /// @@ -15429,6 +15440,134 @@ extension EC2Client { return try await op.execute(input: input) } + /// Performs the `DescribeCapacityBlockExtensionHistory` operation on the `AmazonEC2` service. + /// + /// Describes the events for the specified Capacity Block extension during the specified time. + /// + /// - Parameter DescribeCapacityBlockExtensionHistoryInput : [no documentation found] + /// + /// - Returns: `DescribeCapacityBlockExtensionHistoryOutput` : [no documentation found] + public func describeCapacityBlockExtensionHistory(input: DescribeCapacityBlockExtensionHistoryInput) async throws -> DescribeCapacityBlockExtensionHistoryOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "describeCapacityBlockExtensionHistory") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ec2") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DescribeCapacityBlockExtensionHistoryInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DescribeCapacityBlockExtensionHistoryOutput.httpOutput(from:), DescribeCapacityBlockExtensionHistoryOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: EC2Client.version, config: config)) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DescribeCapacityBlockExtensionHistoryInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-www-form-urlencoded")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "EC2") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DescribeCapacityBlockExtensionHistory") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DescribeCapacityBlockExtensionOfferings` operation on the `AmazonEC2` service. + /// + /// Describes Capacity Block extension offerings available for purchase in the Amazon Web Services Region that you're currently using. + /// + /// - Parameter DescribeCapacityBlockExtensionOfferingsInput : [no documentation found] + /// + /// - Returns: `DescribeCapacityBlockExtensionOfferingsOutput` : [no documentation found] + public func describeCapacityBlockExtensionOfferings(input: DescribeCapacityBlockExtensionOfferingsInput) async throws -> DescribeCapacityBlockExtensionOfferingsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "describeCapacityBlockExtensionOfferings") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ec2") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DescribeCapacityBlockExtensionOfferingsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DescribeCapacityBlockExtensionOfferingsOutput.httpOutput(from:), DescribeCapacityBlockExtensionOfferingsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: EC2Client.version, config: config)) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DescribeCapacityBlockExtensionOfferingsInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-www-form-urlencoded")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "EC2") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DescribeCapacityBlockExtensionOfferings") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DescribeCapacityBlockOfferings` operation on the `AmazonEC2` service. /// /// Describes Capacity Block offerings available for purchase in the Amazon Web Services Region that you're currently using. With Capacity Blocks, you purchase a specific instance type for a period of time. @@ -24112,7 +24251,7 @@ extension EC2Client { /// Performs the `DescribeVpcBlockPublicAccessOptions` operation on the `AmazonEC2` service. /// - /// Describe VPC Block Public Access (BPA) options. VPC Block public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see [Block public access to VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) in the Amazon VPC User Guide. + /// Describe VPC Block Public Access (BPA) options. VPC Block Public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see [Block public access to VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) in the Amazon VPC User Guide. /// /// - Parameter DescribeVpcBlockPublicAccessOptionsInput : [no documentation found] /// @@ -32716,7 +32855,17 @@ extension EC2Client { /// Performs the `ModifyCapacityReservation` operation on the `AmazonEC2` service. /// - /// Modifies a Capacity Reservation's capacity, instance eligibility, and the conditions under which it is to be released. You can't modify a Capacity Reservation's instance type, EBS optimization, platform, instance store settings, Availability Zone, or tenancy. If you need to modify any of these attributes, we recommend that you cancel the Capacity Reservation, and then create a new one with the required attributes. For more information, see [Modify an active Capacity Reservation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-modify.html). + /// Modifies a Capacity Reservation's capacity, instance eligibility, and the conditions under which it is to be released. You can't modify a Capacity Reservation's instance type, EBS optimization, platform, instance store settings, Availability Zone, or tenancy. If you need to modify any of these attributes, we recommend that you cancel the Capacity Reservation, and then create a new one with the required attributes. For more information, see [ Modify an active Capacity Reservation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-modify.html). The allowed modifications depend on the state of the Capacity Reservation: + /// + /// * assessing or scheduled state - You can modify the tags only. + /// + /// * pending state - You can't modify the Capacity Reservation in any way. + /// + /// * active state but still within the commitment duration - You can't decrease the instance count or set an end date that is within the commitment duration. All other modifications are allowed. + /// + /// * active state with no commitment duration or elapsed commitment duration - All modifications are allowed. + /// + /// * expired, cancelled, unsupported, or failed state - You can't modify the Capacity Reservation in any way. /// /// - Parameter ModifyCapacityReservationInput : [no documentation found] /// @@ -36201,7 +36350,7 @@ extension EC2Client { /// Performs the `ModifyVpcBlockPublicAccessOptions` operation on the `AmazonEC2` service. /// - /// Modify VPC Block Public Access (BPA) options. VPC Block public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see [Block public access to VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) in the Amazon VPC User Guide. + /// Modify VPC Block Public Access (BPA) options. VPC Block Public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see [Block public access to VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) in the Amazon VPC User Guide. /// /// - Parameter ModifyVpcBlockPublicAccessOptionsInput : [no documentation found] /// @@ -37568,6 +37717,70 @@ extension EC2Client { return try await op.execute(input: input) } + /// Performs the `PurchaseCapacityBlockExtension` operation on the `AmazonEC2` service. + /// + /// Purchase the Capacity Block extension for use with your account. You must specify the ID of the Capacity Block extension offering you are purchasing. + /// + /// - Parameter PurchaseCapacityBlockExtensionInput : [no documentation found] + /// + /// - Returns: `PurchaseCapacityBlockExtensionOutput` : [no documentation found] + public func purchaseCapacityBlockExtension(input: PurchaseCapacityBlockExtensionInput) async throws -> PurchaseCapacityBlockExtensionOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "purchaseCapacityBlockExtension") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ec2") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(PurchaseCapacityBlockExtensionInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(PurchaseCapacityBlockExtensionOutput.httpOutput(from:), PurchaseCapacityBlockExtensionOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: EC2Client.version, config: config)) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: PurchaseCapacityBlockExtensionInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-www-form-urlencoded")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "EC2") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "PurchaseCapacityBlockExtension") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `PurchaseHostReservation` operation on the `AmazonEC2` service. /// /// Purchase a reservation with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation. This action results in the specified reservation being purchased and charged to your account. diff --git a/Sources/Services/AWSEC2/Sources/AWSEC2/Models.swift b/Sources/Services/AWSEC2/Sources/AWSEC2/Models.swift index 104b5edc76b..78c426f3b58 100644 --- a/Sources/Services/AWSEC2/Sources/AWSEC2/Models.swift +++ b/Sources/Services/AWSEC2/Sources/AWSEC2/Models.swift @@ -3326,6 +3326,45 @@ extension EC2ClientTypes { } } +extension EC2ClientTypes { + + /// Add an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see [Quotas for your IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in the Amazon VPC IPAM User Guide. + public struct AddIpamOrganizationalUnitExclusion: Swift.Sendable { + /// An Amazon Web Services Organizations entity path. Build the path for the OU(s) using Amazon Web Services Organizations IDs separated by a /. Include all child OUs by ending the path with /*. + /// + /// * Example 1 + /// + /// * Path to a child OU: o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/ou-jkl0-awsddddd/ + /// + /// * In this example, o-a1b2c3d4e5 is the organization ID, r-f6g7h8i9j0example is the root ID , ou-ghi0-awsccccc is an OU ID, and ou-jkl0-awsddddd is a child OU ID. + /// + /// * IPAM will not manage the IP addresses in accounts in the child OU. + /// + /// + /// + /// + /// * Example 2 + /// + /// * Path where all child OUs will be part of the exclusion: o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/* + /// + /// * In this example, IPAM will not manage the IP addresses in accounts in the OU (ou-ghi0-awsccccc) or in accounts in any OUs that are children of the OU. + /// + /// + /// + /// + /// + /// For more information on how to construct an entity path, see [Understand the Amazon Web Services Organizations entity path](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed-view-data-orgs.html#access_policies_access-advisor-viewing-orgs-entity-path) in the Amazon Web Services Identity and Access Management User Guide. + public var organizationsEntityPath: Swift.String? + + public init( + organizationsEntityPath: Swift.String? = nil + ) + { + self.organizationsEntityPath = organizationsEntityPath + } + } +} + extension EC2ClientTypes { /// An entry for a prefix list. @@ -8889,6 +8928,35 @@ public struct CopySnapshotOutput: Swift.Sendable { } } +extension EC2ClientTypes { + + public enum CapacityReservationDeliveryPreference: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case fixed + case incremental + case sdkUnknown(Swift.String) + + public static var allCases: [CapacityReservationDeliveryPreference] { + return [ + .fixed, + .incremental + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .fixed: return "fixed" + case .incremental: return "incremental" + case let .sdkUnknown(s): return s + } + } + } +} + extension EC2ClientTypes { public enum EndDateType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -9060,11 +9128,15 @@ public struct CreateCapacityReservationInput: Swift.Sendable { public var availabilityZoneId: Swift.String? /// Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see [Ensure Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). public var clientToken: Swift.String? + /// Required for future-dated Capacity Reservations only. To create a Capacity Reservation for immediate use, omit this parameter. Specify a commitment duration, in seconds, for the future-dated Capacity Reservation. The commitment duration is a minimum duration for which you commit to having the future-dated Capacity Reservation in the active state in your account after it has been delivered. For more information, see [ Commitment duration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-concepts.html#cr-commitment-duration). + public var commitmentDuration: Swift.Int? + /// Required for future-dated Capacity Reservations only. To create a Capacity Reservation for immediate use, omit this parameter. Indicates that the requested capacity will be delivered in addition to any running instances or reserved capacity that you have in your account at the requested date and time. The only supported value is incremental. + public var deliveryPreference: EC2ClientTypes.CapacityReservationDeliveryPreference? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? /// Indicates whether the Capacity Reservation supports EBS-optimized instances. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS- optimized instance. public var ebsOptimized: Swift.Bool? - /// The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. The Capacity Reservation's state changes to expired when it reaches its end date and time. You must provide an EndDate value if EndDateType is limited. Omit EndDate if EndDateType is unlimited. If the EndDateType is limited, the Capacity Reservation is cancelled within an hour from the specified time. For example, if you specify 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019. + /// The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. The Capacity Reservation's state changes to expired when it reaches its end date and time. You must provide an EndDate value if EndDateType is limited. Omit EndDate if EndDateType is unlimited. If the EndDateType is limited, the Capacity Reservation is cancelled within an hour from the specified time. For example, if you specify 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019. If you are requesting a future-dated Capacity Reservation, you can't specify an end date and time that is within the commitment duration. public var endDate: Foundation.Date? /// Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can have one of the following end types: /// @@ -9074,7 +9146,7 @@ public struct CreateCapacityReservationInput: Swift.Sendable { public var endDateType: EC2ClientTypes.EndDateType? /// Deprecated. public var ephemeralStorage: Swift.Bool? - /// The number of instances for which to reserve capacity. Valid range: 1 - 1000 + /// The number of instances for which to reserve capacity. You can request future-dated Capacity Reservations for an instance count with a minimum of 100 VPUs. For example, if you request a future-dated Capacity Reservation for m5.xlarge instances, you must request at least 25 instances (25 * m5.xlarge = 100 vCPUs). Valid range: 1 - 1000 /// This member is required. public var instanceCount: Swift.Int? /// Indicates the type of instance launches that the Capacity Reservation accepts. The options include: @@ -9084,18 +9156,20 @@ public struct CreateCapacityReservationInput: Swift.Sendable { /// * targeted - The Capacity Reservation only accepts instances that have matching attributes (instance type, platform, and Availability Zone), and explicitly target the Capacity Reservation. This ensures that only permitted instances can use the reserved capacity. /// /// - /// Default: open + /// If you are requesting a future-dated Capacity Reservation, you must specify targeted. Default: open public var instanceMatchCriteria: EC2ClientTypes.InstanceMatchCriteria? /// The type of operating system for which to reserve capacity. /// This member is required. public var instancePlatform: EC2ClientTypes.CapacityReservationInstancePlatform? - /// The instance type for which to reserve capacity. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the Amazon EC2 User Guide. + /// The instance type for which to reserve capacity. You can request future-dated Capacity Reservations for instance types in the C, M, R, I, and T instance families only. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the Amazon EC2 User Guide. /// This member is required. public var instanceType: Swift.String? - /// The Amazon Resource Name (ARN) of the Outpost on which to create the Capacity Reservation. + /// Not supported for future-dated Capacity Reservations. The Amazon Resource Name (ARN) of the Outpost on which to create the Capacity Reservation. public var outpostArn: Swift.String? - /// The Amazon Resource Name (ARN) of the cluster placement group in which to create the Capacity Reservation. For more information, see [ Capacity Reservations for cluster placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html) in the Amazon EC2 User Guide. + /// Not supported for future-dated Capacity Reservations. The Amazon Resource Name (ARN) of the cluster placement group in which to create the Capacity Reservation. For more information, see [ Capacity Reservations for cluster placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html) in the Amazon EC2 User Guide. public var placementGroupArn: Swift.String? + /// Required for future-dated Capacity Reservations only. To create a Capacity Reservation for immediate use, omit this parameter. The date and time at which the future-dated Capacity Reservation should become available for use, in the ISO8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ). You can request a future-dated Capacity Reservation between 5 and 120 days in advance. + public var startDate: Foundation.Date? /// The tags to apply to the Capacity Reservation during launch. public var tagSpecifications: [EC2ClientTypes.TagSpecification]? /// Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one of the following tenancy settings: @@ -9109,6 +9183,8 @@ public struct CreateCapacityReservationInput: Swift.Sendable { availabilityZone: Swift.String? = nil, availabilityZoneId: Swift.String? = nil, clientToken: Swift.String? = nil, + commitmentDuration: Swift.Int? = nil, + deliveryPreference: EC2ClientTypes.CapacityReservationDeliveryPreference? = nil, dryRun: Swift.Bool? = nil, ebsOptimized: Swift.Bool? = nil, endDate: Foundation.Date? = nil, @@ -9120,6 +9196,7 @@ public struct CreateCapacityReservationInput: Swift.Sendable { instanceType: Swift.String? = nil, outpostArn: Swift.String? = nil, placementGroupArn: Swift.String? = nil, + startDate: Foundation.Date? = nil, tagSpecifications: [EC2ClientTypes.TagSpecification]? = nil, tenancy: EC2ClientTypes.CapacityReservationTenancy? = nil ) @@ -9127,6 +9204,8 @@ public struct CreateCapacityReservationInput: Swift.Sendable { self.availabilityZone = availabilityZone self.availabilityZoneId = availabilityZoneId self.clientToken = clientToken + self.commitmentDuration = commitmentDuration + self.deliveryPreference = deliveryPreference self.dryRun = dryRun self.ebsOptimized = ebsOptimized self.endDate = endDate @@ -9138,6 +9217,7 @@ public struct CreateCapacityReservationInput: Swift.Sendable { self.instanceType = instanceType self.outpostArn = outpostArn self.placementGroupArn = placementGroupArn + self.startDate = startDate self.tagSpecifications = tagSpecifications self.tenancy = tenancy } @@ -9163,6 +9243,26 @@ extension EC2ClientTypes { } } +extension EC2ClientTypes { + + /// Information about your commitment for a future-dated Capacity Reservation. + public struct CapacityReservationCommitmentInfo: Swift.Sendable { + /// The date and time at which the commitment duration expires, in the ISO8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ). You can't decrease the instance count or cancel the Capacity Reservation before this date and time. + public var commitmentEndDate: Foundation.Date? + /// The instance capacity that you committed to when you requested the future-dated Capacity Reservation. + public var committedInstanceCount: Swift.Int? + + public init( + commitmentEndDate: Foundation.Date? = nil, + committedInstanceCount: Swift.Int? = nil + ) + { + self.commitmentEndDate = commitmentEndDate + self.committedInstanceCount = committedInstanceCount + } + } +} + extension EC2ClientTypes { public enum CapacityReservationType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -9196,25 +9296,31 @@ extension EC2ClientTypes { public enum CapacityReservationState: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case active + case assessing case cancelled + case delayed case expired case failed case paymentFailed case paymentPending case pending case scheduled + case unsupported case sdkUnknown(Swift.String) public static var allCases: [CapacityReservationState] { return [ .active, + .assessing, .cancelled, + .delayed, .expired, .failed, .paymentFailed, .paymentPending, .pending, - .scheduled + .scheduled, + .unsupported ] } @@ -9226,13 +9332,16 @@ extension EC2ClientTypes { public var rawValue: Swift.String { switch self { case .active: return "active" + case .assessing: return "assessing" case .cancelled: return "cancelled" + case .delayed: return "delayed" case .expired: return "expired" case .failed: return "failed" case .paymentFailed: return "payment-failed" case .paymentPending: return "payment-pending" case .pending: return "pending" case .scheduled: return "scheduled" + case .unsupported: return "unsupported" case let .sdkUnknown(s): return s } } @@ -9257,8 +9366,12 @@ extension EC2ClientTypes { public var capacityReservationFleetId: Swift.String? /// The ID of the Capacity Reservation. public var capacityReservationId: Swift.String? + /// Information about your commitment for a future-dated Capacity Reservation. + public var commitmentInfo: EC2ClientTypes.CapacityReservationCommitmentInfo? /// The date and time at which the Capacity Reservation was created. public var createDate: Foundation.Date? + /// The delivery method for a future-dated Capacity Reservation. incremental indicates that the requested capacity is delivered in addition to any running instances and reserved capacity that you have in your account at the requested date and time. + public var deliveryPreference: EC2ClientTypes.CapacityReservationDeliveryPreference? /// Indicates whether the Capacity Reservation supports EBS-optimized instances. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS- optimized instance. public var ebsOptimized: Swift.Bool? /// The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. The Capacity Reservation's state changes to expired when it reaches its end date and time. @@ -9293,15 +9406,23 @@ extension EC2ClientTypes { public var startDate: Foundation.Date? /// The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states: /// - /// * active - The Capacity Reservation is active and the capacity is available for your use. + /// * active - The capacity is available for use. /// - /// * expired - The Capacity Reservation expired automatically at the date and time specified in your request. The reserved capacity is no longer available for your use. + /// * expired - The Capacity Reservation expired automatically at the date and time specified in your reservation request. The reserved capacity is no longer available for your use. /// - /// * cancelled - The Capacity Reservation was cancelled. The reserved capacity is no longer available for your use. + /// * cancelled - The Capacity Reservation was canceled. The reserved capacity is no longer available for your use. /// /// * pending - The Capacity Reservation request was successful but the capacity provisioning is still pending. /// - /// * failed - The Capacity Reservation request has failed. A request might fail due to invalid request parameters, capacity constraints, or instance limit constraints. Failed requests are retained for 60 minutes. + /// * failed - The Capacity Reservation request has failed. A request can fail due to request parameters that are not valid, capacity constraints, or instance limit constraints. You can view a failed request for 60 minutes. + /// + /// * scheduled - (Future-dated Capacity Reservations only) The future-dated Capacity Reservation request was approved and the Capacity Reservation is scheduled for delivery on the requested start date. + /// + /// * assessing - (Future-dated Capacity Reservations only) Amazon EC2 is assessing your request for a future-dated Capacity Reservation. + /// + /// * delayed - (Future-dated Capacity Reservations only) Amazon EC2 encountered a delay in provisioning the requested future-dated Capacity Reservation. Amazon EC2 is unable to deliver the requested capacity by the requested start date and time. + /// + /// * unsupported - (Future-dated Capacity Reservations only) Amazon EC2 can't support the future-dated Capacity Reservation request due to capacity constraints. You can view unsupported requests for 30 days. The Capacity Reservation will not be delivered. public var state: EC2ClientTypes.CapacityReservationState? /// Any tags assigned to the Capacity Reservation. public var tags: [EC2ClientTypes.Tag]? @@ -9324,7 +9445,9 @@ extension EC2ClientTypes { capacityReservationArn: Swift.String? = nil, capacityReservationFleetId: Swift.String? = nil, capacityReservationId: Swift.String? = nil, + commitmentInfo: EC2ClientTypes.CapacityReservationCommitmentInfo? = nil, createDate: Foundation.Date? = nil, + deliveryPreference: EC2ClientTypes.CapacityReservationDeliveryPreference? = nil, ebsOptimized: Swift.Bool? = nil, endDate: Foundation.Date? = nil, endDateType: EC2ClientTypes.EndDateType? = nil, @@ -9351,7 +9474,9 @@ extension EC2ClientTypes { self.capacityReservationArn = capacityReservationArn self.capacityReservationFleetId = capacityReservationFleetId self.capacityReservationId = capacityReservationId + self.commitmentInfo = commitmentInfo self.createDate = createDate + self.deliveryPreference = deliveryPreference self.ebsOptimized = ebsOptimized self.endDate = endDate self.endDateType = endDateType @@ -13238,11 +13363,11 @@ extension EC2ClientTypes { public struct BlockPublicAccessStates: Swift.Sendable { /// The mode of VPC BPA. /// - /// * bidirectional-access-allowed: VPC BPA is not enabled and traffic is allowed to and from internet gateways and egress-only internet gateways in this Region. + /// * off: VPC BPA is not enabled and traffic is allowed to and from internet gateways and egress-only internet gateways in this Region. /// - /// * bidirectional-access-blocked: Block all traffic to and from internet gateways and egress-only internet gateways in this Region (except for excluded VPCs and subnets). + /// * block-bidirectional: Block all traffic to and from internet gateways and egress-only internet gateways in this Region (except for excluded VPCs and subnets). /// - /// * ingress-access-blocked: Block all internet traffic to the VPCs in this Region (except for VPCs or subnets which are excluded). Only traffic to and from NAT gateways and egress-only internet gateways is allowed because these gateways only allow outbound connections to be established. + /// * block-ingress: Block all internet traffic to the VPCs in this Region (except for VPCs or subnets which are excluded). Only traffic to and from NAT gateways and egress-only internet gateways is allowed because these gateways only allow outbound connections to be established. public var internetGatewayBlockMode: EC2ClientTypes.BlockPublicAccessMode? public init( @@ -17803,6 +17928,22 @@ public struct CreateIpamResourceDiscoveryInput: Swift.Sendable { } } +extension EC2ClientTypes { + + /// If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. + public struct IpamOrganizationalUnitExclusion: Swift.Sendable { + /// An Amazon Web Services Organizations entity path. For more information on the entity path, see [Understand the Amazon Web Services Organizations entity path](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed-view-data-orgs.html#access_policies_access-advisor-viewing-orgs-entity-path) in the Amazon Web Services Identity and Access Management User Guide. + public var organizationsEntityPath: Swift.String? + + public init( + organizationsEntityPath: Swift.String? = nil + ) + { + self.organizationsEntityPath = organizationsEntityPath + } + } +} + extension EC2ClientTypes { public enum IpamResourceDiscoveryState: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -17878,6 +18019,8 @@ extension EC2ClientTypes { public var isDefault: Swift.Bool? /// The operating Regions for the resource discovery. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions. public var operatingRegions: [EC2ClientTypes.IpamOperatingRegion]? + /// If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. + public var organizationalUnitExclusions: [EC2ClientTypes.IpamOrganizationalUnitExclusion]? /// The ID of the owner. public var ownerId: Swift.String? /// The lifecycle state of the resource discovery. @@ -17916,6 +18059,7 @@ extension EC2ClientTypes { ipamResourceDiscoveryRegion: Swift.String? = nil, isDefault: Swift.Bool? = nil, operatingRegions: [EC2ClientTypes.IpamOperatingRegion]? = nil, + organizationalUnitExclusions: [EC2ClientTypes.IpamOrganizationalUnitExclusion]? = nil, ownerId: Swift.String? = nil, state: EC2ClientTypes.IpamResourceDiscoveryState? = nil, tags: [EC2ClientTypes.Tag]? = nil @@ -17927,6 +18071,7 @@ extension EC2ClientTypes { self.ipamResourceDiscoveryRegion = ipamResourceDiscoveryRegion self.isDefault = isDefault self.operatingRegions = operatingRegions + self.organizationalUnitExclusions = organizationalUnitExclusions self.ownerId = ownerId self.state = state self.tags = tags @@ -28011,9 +28156,9 @@ public struct CreateVpcBlockPublicAccessExclusionInput: Swift.Sendable { public var dryRun: Swift.Bool? /// The exclusion mode for internet gateway traffic. /// - /// * bidirectional-access-allowed: Allow all internet traffic to and from the excluded VPCs and subnets. + /// * allow-bidirectional: Allow all internet traffic to and from the excluded VPCs and subnets. /// - /// * egress-access-allowed: Allow outbound internet traffic from the excluded VPCs and subnets. Block inbound internet traffic to the excluded VPCs and subnets. Only applies when VPC Block Public Access is set to Bidirectional. + /// * allow-egress: Allow outbound internet traffic from the excluded VPCs and subnets. Block inbound internet traffic to the excluded VPCs and subnets. Only applies when VPC Block Public Access is set to Bidirectional. /// This member is required. public var internetGatewayExclusionMode: EC2ClientTypes.InternetGatewayExclusionMode? /// A subnet ID. @@ -28104,9 +28249,9 @@ extension EC2ClientTypes { public var exclusionId: Swift.String? /// The exclusion mode for internet gateway traffic. /// - /// * bidirectional-access-allowed: Allow all internet traffic to and from the excluded VPCs and subnets. + /// * allow-bidirectional: Allow all internet traffic to and from the excluded VPCs and subnets. /// - /// * egress-access-allowed: Allow outbound internet traffic from the excluded VPCs and subnets. Block inbound internet traffic to the excluded VPCs and subnets. Only applies when VPC Block Public Access is set to Bidirectional. + /// * allow-egress: Allow outbound internet traffic from the excluded VPCs and subnets. Block inbound internet traffic to the excluded VPCs and subnets. Only applies when VPC Block Public Access is set to Bidirectional. public var internetGatewayExclusionMode: EC2ClientTypes.InternetGatewayExclusionMode? /// When the exclusion was last updated. public var lastUpdateTimestamp: Foundation.Date? @@ -33900,6 +34045,274 @@ public struct DescribeByoipCidrsOutput: Swift.Sendable { } } +public struct DescribeCapacityBlockExtensionHistoryInput: Swift.Sendable { + /// The IDs of Capacity Block reservations that you want to display the history for. + public var capacityReservationIds: [Swift.String]? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public var dryRun: Swift.Bool? + /// One or more filters + /// + /// * availability-zone - The Availability Zone of the extension. + /// + /// * availability-zone-id - The Availability Zone ID of the extension. + /// + /// * capacity-block-extension-offering-id - The ID of the extension offering. + /// + /// * capacity-block-extension-status - The status of the extension (payment-pending | payment-failed | payment-succeeded). + /// + /// * capacity-reservation-id - The reservation ID of the extension. + /// + /// * instance-type - The instance type of the extension. + public var filters: [EC2ClientTypes.Filter]? + /// The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + public var maxResults: Swift.Int? + /// The token to use to retrieve the next page of results. + public var nextToken: Swift.String? + + public init( + capacityReservationIds: [Swift.String]? = nil, + dryRun: Swift.Bool? = nil, + filters: [EC2ClientTypes.Filter]? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.capacityReservationIds = capacityReservationIds + self.dryRun = dryRun + self.filters = filters + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +extension EC2ClientTypes { + + public enum CapacityBlockExtensionStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case paymentFailed + case paymentPending + case paymentSucceeded + case sdkUnknown(Swift.String) + + public static var allCases: [CapacityBlockExtensionStatus] { + return [ + .paymentFailed, + .paymentPending, + .paymentSucceeded + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .paymentFailed: return "payment-failed" + case .paymentPending: return "payment-pending" + case .paymentSucceeded: return "payment-succeeded" + case let .sdkUnknown(s): return s + } + } + } +} + +extension EC2ClientTypes { + + /// Describes a Capacity Block extension. With an extension, you can extend the duration of time for an existing Capacity Block. + public struct CapacityBlockExtension: Swift.Sendable { + /// The Availability Zone of the Capacity Block extension. + public var availabilityZone: Swift.String? + /// The Availability Zone ID of the Capacity Block extension. + public var availabilityZoneId: Swift.String? + /// The duration of the Capacity Block extension in hours. + public var capacityBlockExtensionDurationHours: Swift.Int? + /// The end date of the Capacity Block extension. + public var capacityBlockExtensionEndDate: Foundation.Date? + /// The ID of the Capacity Block extension offering. + public var capacityBlockExtensionOfferingId: Swift.String? + /// The date when the Capacity Block extension was purchased. + public var capacityBlockExtensionPurchaseDate: Foundation.Date? + /// The start date of the Capacity Block extension. + public var capacityBlockExtensionStartDate: Foundation.Date? + /// The status of the Capacity Block extension. A Capacity Block extension can have one of the following statuses: + /// + /// * payment-pending - The Capacity Block extension payment is processing. If your payment can't be processed within 12 hours, the Capacity Block extension is failed. + /// + /// * payment-failed - Payment for the Capacity Block extension request was not successful. + /// + /// * payment-succeeded - Payment for the Capacity Block extension request was successful. You receive an invoice that reflects the one-time upfront payment. In the invoice, you can associate the paid amount with the Capacity Block reservation ID. + public var capacityBlockExtensionStatus: EC2ClientTypes.CapacityBlockExtensionStatus? + /// The reservation ID of the Capacity Block extension. + public var capacityReservationId: Swift.String? + /// The currency of the payment for the Capacity Block extension. + public var currencyCode: Swift.String? + /// The number of instances in the Capacity Block extension. + public var instanceCount: Swift.Int? + /// The instance type of the Capacity Block extension. + public var instanceType: Swift.String? + /// The total price to be paid up front. + public var upfrontFee: Swift.String? + + public init( + availabilityZone: Swift.String? = nil, + availabilityZoneId: Swift.String? = nil, + capacityBlockExtensionDurationHours: Swift.Int? = nil, + capacityBlockExtensionEndDate: Foundation.Date? = nil, + capacityBlockExtensionOfferingId: Swift.String? = nil, + capacityBlockExtensionPurchaseDate: Foundation.Date? = nil, + capacityBlockExtensionStartDate: Foundation.Date? = nil, + capacityBlockExtensionStatus: EC2ClientTypes.CapacityBlockExtensionStatus? = nil, + capacityReservationId: Swift.String? = nil, + currencyCode: Swift.String? = nil, + instanceCount: Swift.Int? = nil, + instanceType: Swift.String? = nil, + upfrontFee: Swift.String? = nil + ) + { + self.availabilityZone = availabilityZone + self.availabilityZoneId = availabilityZoneId + self.capacityBlockExtensionDurationHours = capacityBlockExtensionDurationHours + self.capacityBlockExtensionEndDate = capacityBlockExtensionEndDate + self.capacityBlockExtensionOfferingId = capacityBlockExtensionOfferingId + self.capacityBlockExtensionPurchaseDate = capacityBlockExtensionPurchaseDate + self.capacityBlockExtensionStartDate = capacityBlockExtensionStartDate + self.capacityBlockExtensionStatus = capacityBlockExtensionStatus + self.capacityReservationId = capacityReservationId + self.currencyCode = currencyCode + self.instanceCount = instanceCount + self.instanceType = instanceType + self.upfrontFee = upfrontFee + } + } +} + +public struct DescribeCapacityBlockExtensionHistoryOutput: Swift.Sendable { + /// Describes one or more of your Capacity Block extensions. The results describe only the Capacity Block extensions in the Amazon Web Services Region that you're currently using. + public var capacityBlockExtensions: [EC2ClientTypes.CapacityBlockExtension]? + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public var nextToken: Swift.String? + + public init( + capacityBlockExtensions: [EC2ClientTypes.CapacityBlockExtension]? = nil, + nextToken: Swift.String? = nil + ) + { + self.capacityBlockExtensions = capacityBlockExtensions + self.nextToken = nextToken + } +} + +public struct DescribeCapacityBlockExtensionOfferingsInput: Swift.Sendable { + /// The duration of the Capacity Block extension offering in hours. + /// This member is required. + public var capacityBlockExtensionDurationHours: Swift.Int? + /// The ID of the Capacity reservation to be extended. + /// This member is required. + public var capacityReservationId: Swift.String? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public var dryRun: Swift.Bool? + /// The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + public var maxResults: Swift.Int? + /// The token to use to retrieve the next page of results. + public var nextToken: Swift.String? + + public init( + capacityBlockExtensionDurationHours: Swift.Int? = nil, + capacityReservationId: Swift.String? = nil, + dryRun: Swift.Bool? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.capacityBlockExtensionDurationHours = capacityBlockExtensionDurationHours + self.capacityReservationId = capacityReservationId + self.dryRun = dryRun + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +extension EC2ClientTypes { + + /// The recommended Capacity Block extension that fits your search requirements. + public struct CapacityBlockExtensionOffering: Swift.Sendable { + /// The Availability Zone of the Capacity Block that will be extended. + public var availabilityZone: Swift.String? + /// The Availability Zone ID of the Capacity Block that will be extended. + public var availabilityZoneId: Swift.String? + /// The amount of time of the Capacity Block extension offering in hours. + public var capacityBlockExtensionDurationHours: Swift.Int? + /// The date and time at which the Capacity Block extension expires. When a Capacity Block expires, the reserved capacity is released and you can no longer launch instances into it. The Capacity Block's state changes to expired when it reaches its end date + public var capacityBlockExtensionEndDate: Foundation.Date? + /// The ID of the Capacity Block extension offering. + public var capacityBlockExtensionOfferingId: Swift.String? + /// The date and time at which the Capacity Block extension will start. This date is also the same as the end date of the Capacity Block that will be extended. + public var capacityBlockExtensionStartDate: Foundation.Date? + /// The currency of the payment for the Capacity Block extension offering. + public var currencyCode: Swift.String? + /// The number of instances in the Capacity Block extension offering. + public var instanceCount: Swift.Int? + /// The instance type of the Capacity Block that will be extended. + public var instanceType: Swift.String? + /// The start date of the Capacity Block that will be extended. + public var startDate: Foundation.Date? + /// Indicates the tenancy of the Capacity Block extension offering. A Capacity Block can have one of the following tenancy settings: + /// + /// * default - The Capacity Block is created on hardware that is shared with other Amazon Web Services accounts. + /// + /// * dedicated - The Capacity Block is created on single-tenant hardware that is dedicated to a single Amazon Web Services account. + public var tenancy: EC2ClientTypes.CapacityReservationTenancy? + /// The total price of the Capacity Block extension offering, to be paid up front. + public var upfrontFee: Swift.String? + + public init( + availabilityZone: Swift.String? = nil, + availabilityZoneId: Swift.String? = nil, + capacityBlockExtensionDurationHours: Swift.Int? = nil, + capacityBlockExtensionEndDate: Foundation.Date? = nil, + capacityBlockExtensionOfferingId: Swift.String? = nil, + capacityBlockExtensionStartDate: Foundation.Date? = nil, + currencyCode: Swift.String? = nil, + instanceCount: Swift.Int? = nil, + instanceType: Swift.String? = nil, + startDate: Foundation.Date? = nil, + tenancy: EC2ClientTypes.CapacityReservationTenancy? = nil, + upfrontFee: Swift.String? = nil + ) + { + self.availabilityZone = availabilityZone + self.availabilityZoneId = availabilityZoneId + self.capacityBlockExtensionDurationHours = capacityBlockExtensionDurationHours + self.capacityBlockExtensionEndDate = capacityBlockExtensionEndDate + self.capacityBlockExtensionOfferingId = capacityBlockExtensionOfferingId + self.capacityBlockExtensionStartDate = capacityBlockExtensionStartDate + self.currencyCode = currencyCode + self.instanceCount = instanceCount + self.instanceType = instanceType + self.startDate = startDate + self.tenancy = tenancy + self.upfrontFee = upfrontFee + } + } +} + +public struct DescribeCapacityBlockExtensionOfferingsOutput: Swift.Sendable { + /// The recommended Capacity Block extension offerings for the dates specified. + public var capacityBlockExtensionOfferings: [EC2ClientTypes.CapacityBlockExtensionOffering]? + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public var nextToken: Swift.String? + + public init( + capacityBlockExtensionOfferings: [EC2ClientTypes.CapacityBlockExtensionOffering]? = nil, + nextToken: Swift.String? = nil + ) + { + self.capacityBlockExtensionOfferings = capacityBlockExtensionOfferings + self.nextToken = nextToken + } +} + public struct DescribeCapacityBlockOfferingsInput: Swift.Sendable { /// The number of hours for which to reserve Capacity Block. /// This member is required. @@ -33947,8 +34360,10 @@ extension EC2ClientTypes { public struct CapacityBlockOffering: Swift.Sendable { /// The Availability Zone of the Capacity Block offering. public var availabilityZone: Swift.String? - /// The amount of time of the Capacity Block reservation in hours. + /// The number of hours (in addition to capacityBlockDurationMinutes) for the duration of the Capacity Block reservation. For example, if a Capacity Block starts at 04:55 and ends at 11:30, the hours field would be 6. public var capacityBlockDurationHours: Swift.Int? + /// The number of minutes (in addition to capacityBlockDurationHours) for the duration of the Capacity Block reservation. For example, if a Capacity Block starts at 08:55 and ends at 11:30, the minutes field would be 35. + public var capacityBlockDurationMinutes: Swift.Int? /// The ID of the Capacity Block offering. public var capacityBlockOfferingId: Swift.String? /// The currency of the payment for the Capacity Block. @@ -33969,6 +34384,7 @@ extension EC2ClientTypes { public init( availabilityZone: Swift.String? = nil, capacityBlockDurationHours: Swift.Int? = nil, + capacityBlockDurationMinutes: Swift.Int? = nil, capacityBlockOfferingId: Swift.String? = nil, currencyCode: Swift.String? = nil, endDate: Foundation.Date? = nil, @@ -33981,6 +34397,7 @@ extension EC2ClientTypes { { self.availabilityZone = availabilityZone self.capacityBlockDurationHours = capacityBlockDurationHours + self.capacityBlockDurationMinutes = capacityBlockDurationMinutes self.capacityBlockOfferingId = capacityBlockOfferingId self.currencyCode = currencyCode self.endDate = endDate @@ -52252,7 +52669,7 @@ public struct DescribeVpcBlockPublicAccessExclusionsInput: Swift.Sendable { /// /// * resource-arn - The Amazon Resource Name (ARN) of a exclusion. /// - /// * internet-gateway-exclusion-mode - The mode of a VPC BPA exclusion. Possible values: bidirectional-access-allowed | egress-access-allowed. + /// * internet-gateway-exclusion-mode - The mode of a VPC BPA exclusion. Possible values: allow-bidirectional | allow-egress. /// /// * state - The state of VPC BPA. Possible values: create-in-progress | create-complete | update-in-progress | update-complete | delete-in-progress | deleted-complete | disable-in-progress | disable-complete /// @@ -52377,7 +52794,7 @@ extension EC2ClientTypes { extension EC2ClientTypes { - /// VPC Block public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see [Block public access to VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) in the Amazon VPC User Guide. + /// VPC Block Public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see [Block public access to VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) in the Amazon VPC User Guide. public struct VpcBlockPublicAccessOptions: Swift.Sendable { /// An Amazon Web Services account ID. public var awsAccountId: Swift.String? @@ -52385,11 +52802,11 @@ extension EC2ClientTypes { public var awsRegion: Swift.String? /// The current mode of VPC BPA. /// - /// * bidirectional-access-allowed: VPC BPA is not enabled and traffic is allowed to and from internet gateways and egress-only internet gateways in this Region. + /// * off: VPC BPA is not enabled and traffic is allowed to and from internet gateways and egress-only internet gateways in this Region. /// - /// * bidirectional-access-blocked: Block all traffic to and from internet gateways and egress-only internet gateways in this Region (except for excluded VPCs and subnets). + /// * block-bidirectional: Block all traffic to and from internet gateways and egress-only internet gateways in this Region (except for excluded VPCs and subnets). /// - /// * ingress-access-blocked: Block all internet traffic to the VPCs in this Region (except for VPCs or subnets which are excluded). Only traffic to and from NAT gateways and egress-only internet gateways is allowed because these gateways only allow outbound connections to be established. + /// * block-ingress: Block all internet traffic to the VPCs in this Region (except for VPCs or subnets which are excluded). Only traffic to and from NAT gateways and egress-only internet gateways is allowed because these gateways only allow outbound connections to be established. public var internetGatewayBlockMode: EC2ClientTypes.InternetGatewayBlockMode? /// The last time the VPC BPA mode was updated. public var lastUpdateTimestamp: Foundation.Date? @@ -56184,15 +56601,23 @@ public struct GetCapacityReservationUsageOutput: Swift.Sendable { public var nextToken: Swift.String? /// The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states: /// - /// * active - The Capacity Reservation is active and the capacity is available for your use. + /// * active - The capacity is available for use. /// - /// * expired - The Capacity Reservation expired automatically at the date and time specified in your request. The reserved capacity is no longer available for your use. + /// * expired - The Capacity Reservation expired automatically at the date and time specified in your reservation request. The reserved capacity is no longer available for your use. /// - /// * cancelled - The Capacity Reservation was cancelled. The reserved capacity is no longer available for your use. + /// * cancelled - The Capacity Reservation was canceled. The reserved capacity is no longer available for your use. /// /// * pending - The Capacity Reservation request was successful but the capacity provisioning is still pending. /// - /// * failed - The Capacity Reservation request has failed. A request might fail due to invalid request parameters, capacity constraints, or instance limit constraints. Failed requests are retained for 60 minutes. + /// * failed - The Capacity Reservation request has failed. A request can fail due to request parameters that are not valid, capacity constraints, or instance limit constraints. You can view a failed request for 60 minutes. + /// + /// * scheduled - (Future-dated Capacity Reservations only) The future-dated Capacity Reservation request was approved and the Capacity Reservation is scheduled for delivery on the requested start date. + /// + /// * assessing - (Future-dated Capacity Reservations only) Amazon EC2 is assessing your request for a future-dated Capacity Reservation. + /// + /// * delayed - (Future-dated Capacity Reservations only) Amazon EC2 encountered a delay in provisioning the requested future-dated Capacity Reservation. Amazon EC2 is unable to deliver the requested capacity by the requested start date and time. + /// + /// * unsupported - (Future-dated Capacity Reservations only) Amazon EC2 can't support the future-dated Capacity Reservation request due to capacity constraints. You can view unsupported requests for 30 days. The Capacity Reservation will not be delivered. public var state: EC2ClientTypes.CapacityReservationState? /// The number of instances for which the Capacity Reservation reserves capacity. public var totalInstanceCount: Swift.Int? @@ -57419,13 +57844,16 @@ extension EC2ClientTypes { public var lastAttemptedDiscoveryTime: Foundation.Date? /// The last successful resource discovery time. public var lastSuccessfulDiscoveryTime: Foundation.Date? + /// The ID of an Organizational Unit in Amazon Web Services Organizations. + public var organizationalUnitId: Swift.String? public init( accountId: Swift.String? = nil, discoveryRegion: Swift.String? = nil, failureReason: EC2ClientTypes.IpamDiscoveryFailureReason? = nil, lastAttemptedDiscoveryTime: Foundation.Date? = nil, - lastSuccessfulDiscoveryTime: Foundation.Date? = nil + lastSuccessfulDiscoveryTime: Foundation.Date? = nil, + organizationalUnitId: Swift.String? = nil ) { self.accountId = accountId @@ -57433,6 +57861,7 @@ extension EC2ClientTypes { self.failureReason = failureReason self.lastAttemptedDiscoveryTime = lastAttemptedDiscoveryTime self.lastSuccessfulDiscoveryTime = lastSuccessfulDiscoveryTime + self.organizationalUnitId = organizationalUnitId } } } @@ -62481,9 +62910,50 @@ public struct ModifyIpamResourceCidrOutput: Swift.Sendable { } } +extension EC2ClientTypes { + + /// Remove an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see [Quotas for your IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in the Amazon VPC IPAM User Guide. + public struct RemoveIpamOrganizationalUnitExclusion: Swift.Sendable { + /// An Amazon Web Services Organizations entity path. Build the path for the OU(s) using Amazon Web Services Organizations IDs separated by a /. Include all child OUs by ending the path with /*. + /// + /// * Example 1 + /// + /// * Path to a child OU: o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/ou-jkl0-awsddddd/ + /// + /// * In this example, o-a1b2c3d4e5 is the organization ID, r-f6g7h8i9j0example is the root ID , ou-ghi0-awsccccc is an OU ID, and ou-jkl0-awsddddd is a child OU ID. + /// + /// * IPAM will not manage the IP addresses in accounts in the child OU. + /// + /// + /// + /// + /// * Example 2 + /// + /// * Path where all child OUs will be part of the exclusion: o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/* + /// + /// * In this example, IPAM will not manage the IP addresses in accounts in the OU (ou-ghi0-awsccccc) or in accounts in any OUs that are children of the OU. + /// + /// + /// + /// + /// + /// For more information on how to construct an entity path, see [Understand the Amazon Web Services Organizations entity path](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed-view-data-orgs.html#access_policies_access-advisor-viewing-orgs-entity-path) in the Amazon Web Services Identity and Access Management User Guide. + public var organizationsEntityPath: Swift.String? + + public init( + organizationsEntityPath: Swift.String? = nil + ) + { + self.organizationsEntityPath = organizationsEntityPath + } + } +} + public struct ModifyIpamResourceDiscoveryInput: Swift.Sendable { /// Add operating Regions to the resource discovery. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions. public var addOperatingRegions: [EC2ClientTypes.AddIpamOperatingRegion]? + /// Add an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see [Quotas for your IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in the Amazon VPC IPAM User Guide. + public var addOrganizationalUnitExclusions: [EC2ClientTypes.AddIpamOrganizationalUnitExclusion]? /// A resource discovery description. public var description: Swift.String? /// A check for whether you have the required permissions for the action without actually making the request and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. @@ -62493,20 +62963,26 @@ public struct ModifyIpamResourceDiscoveryInput: Swift.Sendable { public var ipamResourceDiscoveryId: Swift.String? /// Remove operating Regions. public var removeOperatingRegions: [EC2ClientTypes.RemoveIpamOperatingRegion]? + /// Remove an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see [Quotas for your IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in the Amazon VPC IPAM User Guide. + public var removeOrganizationalUnitExclusions: [EC2ClientTypes.RemoveIpamOrganizationalUnitExclusion]? public init( addOperatingRegions: [EC2ClientTypes.AddIpamOperatingRegion]? = nil, + addOrganizationalUnitExclusions: [EC2ClientTypes.AddIpamOrganizationalUnitExclusion]? = nil, description: Swift.String? = nil, dryRun: Swift.Bool? = nil, ipamResourceDiscoveryId: Swift.String? = nil, - removeOperatingRegions: [EC2ClientTypes.RemoveIpamOperatingRegion]? = nil + removeOperatingRegions: [EC2ClientTypes.RemoveIpamOperatingRegion]? = nil, + removeOrganizationalUnitExclusions: [EC2ClientTypes.RemoveIpamOrganizationalUnitExclusion]? = nil ) { self.addOperatingRegions = addOperatingRegions + self.addOrganizationalUnitExclusions = addOrganizationalUnitExclusions self.description = description self.dryRun = dryRun self.ipamResourceDiscoveryId = ipamResourceDiscoveryId self.removeOperatingRegions = removeOperatingRegions + self.removeOrganizationalUnitExclusions = removeOrganizationalUnitExclusions } } @@ -64281,9 +64757,9 @@ public struct ModifyVpcBlockPublicAccessExclusionInput: Swift.Sendable { public var exclusionId: Swift.String? /// The exclusion mode for internet gateway traffic. /// - /// * bidirectional-access-allowed: Allow all internet traffic to and from the excluded VPCs and subnets. + /// * allow-bidirectional: Allow all internet traffic to and from the excluded VPCs and subnets. /// - /// * egress-access-allowed: Allow outbound internet traffic from the excluded VPCs and subnets. Block inbound internet traffic to the excluded VPCs and subnets. Only applies when VPC Block Public Access is set to Bidirectional. + /// * allow-egress: Allow outbound internet traffic from the excluded VPCs and subnets. Block inbound internet traffic to the excluded VPCs and subnets. Only applies when VPC Block Public Access is set to Bidirectional. /// This member is required. public var internetGatewayExclusionMode: EC2ClientTypes.InternetGatewayExclusionMode? @@ -64316,11 +64792,11 @@ public struct ModifyVpcBlockPublicAccessOptionsInput: Swift.Sendable { public var dryRun: Swift.Bool? /// The mode of VPC BPA. /// - /// * bidirectional-access-allowed: VPC BPA is not enabled and traffic is allowed to and from internet gateways and egress-only internet gateways in this Region. + /// * off: VPC BPA is not enabled and traffic is allowed to and from internet gateways and egress-only internet gateways in this Region. /// - /// * bidirectional-access-blocked: Block all traffic to and from internet gateways and egress-only internet gateways in this Region (except for excluded VPCs and subnets). + /// * block-bidirectional: Block all traffic to and from internet gateways and egress-only internet gateways in this Region (except for excluded VPCs and subnets). /// - /// * ingress-access-blocked: Block all internet traffic to the VPCs in this Region (except for VPCs or subnets which are excluded). Only traffic to and from NAT gateways and egress-only internet gateways is allowed because these gateways only allow outbound connections to be established. + /// * block-ingress: Block all internet traffic to the VPCs in this Region (except for VPCs or subnets which are excluded). Only traffic to and from NAT gateways and egress-only internet gateways is allowed because these gateways only allow outbound connections to be established. /// This member is required. public var internetGatewayBlockMode: EC2ClientTypes.InternetGatewayBlockMode? @@ -65565,6 +66041,40 @@ public struct PurchaseCapacityBlockOutput: Swift.Sendable { } } +public struct PurchaseCapacityBlockExtensionInput: Swift.Sendable { + /// The ID of the Capacity Block extension offering to purchase. + /// This member is required. + public var capacityBlockExtensionOfferingId: Swift.String? + /// The ID of the Capacity reservation to be extended. + /// This member is required. + public var capacityReservationId: Swift.String? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public var dryRun: Swift.Bool? + + public init( + capacityBlockExtensionOfferingId: Swift.String? = nil, + capacityReservationId: Swift.String? = nil, + dryRun: Swift.Bool? = nil + ) + { + self.capacityBlockExtensionOfferingId = capacityBlockExtensionOfferingId + self.capacityReservationId = capacityReservationId + self.dryRun = dryRun + } +} + +public struct PurchaseCapacityBlockExtensionOutput: Swift.Sendable { + /// The purchased Capacity Block extensions. + public var capacityBlockExtensions: [EC2ClientTypes.CapacityBlockExtension]? + + public init( + capacityBlockExtensions: [EC2ClientTypes.CapacityBlockExtension]? = nil + ) + { + self.capacityBlockExtensions = capacityBlockExtensions + } +} + public struct PurchaseHostReservationInput: Swift.Sendable { /// Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see [Ensuring Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). public var clientToken: Swift.String? @@ -71009,6 +71519,20 @@ extension DescribeByoipCidrsInput { } } +extension DescribeCapacityBlockExtensionHistoryInput { + + static func urlPathProvider(_ value: DescribeCapacityBlockExtensionHistoryInput) -> Swift.String? { + return "/" + } +} + +extension DescribeCapacityBlockExtensionOfferingsInput { + + static func urlPathProvider(_ value: DescribeCapacityBlockExtensionOfferingsInput) -> Swift.String? { + return "/" + } +} + extension DescribeCapacityBlockOfferingsInput { static func urlPathProvider(_ value: DescribeCapacityBlockOfferingsInput) -> Swift.String? { @@ -73417,6 +73941,13 @@ extension PurchaseCapacityBlockInput { } } +extension PurchaseCapacityBlockExtensionInput { + + static func urlPathProvider(_ value: PurchaseCapacityBlockExtensionInput) -> Swift.String? { + return "/" + } +} + extension PurchaseHostReservationInput { static func urlPathProvider(_ value: PurchaseHostReservationInput) -> Swift.String? { @@ -74699,6 +75230,8 @@ extension CreateCapacityReservationInput { try writer["AvailabilityZone"].write(value.availabilityZone) try writer["AvailabilityZoneId"].write(value.availabilityZoneId) try writer["ClientToken"].write(value.clientToken) + try writer["CommitmentDuration"].write(value.commitmentDuration) + try writer["DeliveryPreference"].write(value.deliveryPreference) try writer["DryRun"].write(value.dryRun) try writer["EbsOptimized"].write(value.ebsOptimized) try writer["EndDate"].writeTimestamp(value.endDate, format: SmithyTimestamps.TimestampFormat.dateTime) @@ -74710,6 +75243,7 @@ extension CreateCapacityReservationInput { try writer["InstanceType"].write(value.instanceType) try writer["OutpostArn"].write(value.outpostArn) try writer["PlacementGroupArn"].write(value.placementGroupArn) + try writer["StartDate"].writeTimestamp(value.startDate, format: SmithyTimestamps.TimestampFormat.dateTime) if !(value.tagSpecifications?.isEmpty ?? true) { try writer["TagSpecifications"].writeList(value.tagSpecifications, memberWritingClosure: EC2ClientTypes.TagSpecification.write(value:to:), memberNodeInfo: "Item", isFlattened: true) } @@ -77369,6 +77903,38 @@ extension DescribeByoipCidrsInput { } } +extension DescribeCapacityBlockExtensionHistoryInput { + + static func write(value: DescribeCapacityBlockExtensionHistoryInput?, to writer: SmithyFormURL.Writer) throws { + guard let value else { return } + if !(value.capacityReservationIds?.isEmpty ?? true) { + try writer["CapacityReservationId"].writeList(value.capacityReservationIds, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "Item", isFlattened: true) + } + try writer["DryRun"].write(value.dryRun) + if !(value.filters?.isEmpty ?? true) { + try writer["Filter"].writeList(value.filters, memberWritingClosure: EC2ClientTypes.Filter.write(value:to:), memberNodeInfo: "Filter", isFlattened: true) + } + try writer["MaxResults"].write(value.maxResults) + try writer["NextToken"].write(value.nextToken) + try writer["Action"].write("DescribeCapacityBlockExtensionHistory") + try writer["Version"].write("2016-11-15") + } +} + +extension DescribeCapacityBlockExtensionOfferingsInput { + + static func write(value: DescribeCapacityBlockExtensionOfferingsInput?, to writer: SmithyFormURL.Writer) throws { + guard let value else { return } + try writer["CapacityBlockExtensionDurationHours"].write(value.capacityBlockExtensionDurationHours) + try writer["CapacityReservationId"].write(value.capacityReservationId) + try writer["DryRun"].write(value.dryRun) + try writer["MaxResults"].write(value.maxResults) + try writer["NextToken"].write(value.nextToken) + try writer["Action"].write("DescribeCapacityBlockExtensionOfferings") + try writer["Version"].write("2016-11-15") + } +} + extension DescribeCapacityBlockOfferingsInput { static func write(value: DescribeCapacityBlockOfferingsInput?, to writer: SmithyFormURL.Writer) throws { @@ -81924,12 +82490,18 @@ extension ModifyIpamResourceDiscoveryInput { if !(value.addOperatingRegions?.isEmpty ?? true) { try writer["AddOperatingRegion"].writeList(value.addOperatingRegions, memberWritingClosure: EC2ClientTypes.AddIpamOperatingRegion.write(value:to:), memberNodeInfo: "Member", isFlattened: true) } + if !(value.addOrganizationalUnitExclusions?.isEmpty ?? true) { + try writer["AddOrganizationalUnitExclusion"].writeList(value.addOrganizationalUnitExclusions, memberWritingClosure: EC2ClientTypes.AddIpamOrganizationalUnitExclusion.write(value:to:), memberNodeInfo: "Member", isFlattened: true) + } try writer["Description"].write(value.description) try writer["DryRun"].write(value.dryRun) try writer["IpamResourceDiscoveryId"].write(value.ipamResourceDiscoveryId) if !(value.removeOperatingRegions?.isEmpty ?? true) { try writer["RemoveOperatingRegion"].writeList(value.removeOperatingRegions, memberWritingClosure: EC2ClientTypes.RemoveIpamOperatingRegion.write(value:to:), memberNodeInfo: "Member", isFlattened: true) } + if !(value.removeOrganizationalUnitExclusions?.isEmpty ?? true) { + try writer["RemoveOrganizationalUnitExclusion"].writeList(value.removeOrganizationalUnitExclusions, memberWritingClosure: EC2ClientTypes.RemoveIpamOrganizationalUnitExclusion.write(value:to:), memberNodeInfo: "Member", isFlattened: true) + } try writer["Action"].write("ModifyIpamResourceDiscovery") try writer["Version"].write("2016-11-15") } @@ -82723,6 +83295,18 @@ extension PurchaseCapacityBlockInput { } } +extension PurchaseCapacityBlockExtensionInput { + + static func write(value: PurchaseCapacityBlockExtensionInput?, to writer: SmithyFormURL.Writer) throws { + guard let value else { return } + try writer["CapacityBlockExtensionOfferingId"].write(value.capacityBlockExtensionOfferingId) + try writer["CapacityReservationId"].write(value.capacityReservationId) + try writer["DryRun"].write(value.dryRun) + try writer["Action"].write("PurchaseCapacityBlockExtension") + try writer["Version"].write("2016-11-15") + } +} + extension PurchaseHostReservationInput { static func write(value: PurchaseHostReservationInput?, to writer: SmithyFormURL.Writer) throws { @@ -86513,6 +87097,32 @@ extension DescribeByoipCidrsOutput { } } +extension DescribeCapacityBlockExtensionHistoryOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeCapacityBlockExtensionHistoryOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let reader = responseReader + var value = DescribeCapacityBlockExtensionHistoryOutput() + value.capacityBlockExtensions = try reader["capacityBlockExtensionSet"].readListIfPresent(memberReadingClosure: EC2ClientTypes.CapacityBlockExtension.read(from:), memberNodeInfo: "item", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value + } +} + +extension DescribeCapacityBlockExtensionOfferingsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeCapacityBlockExtensionOfferingsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let reader = responseReader + var value = DescribeCapacityBlockExtensionOfferingsOutput() + value.capacityBlockExtensionOfferings = try reader["capacityBlockExtensionOfferingSet"].readListIfPresent(memberReadingClosure: EC2ClientTypes.CapacityBlockExtensionOffering.read(from:), memberNodeInfo: "item", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value + } +} + extension DescribeCapacityBlockOfferingsOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeCapacityBlockOfferingsOutput { @@ -90885,6 +91495,18 @@ extension PurchaseCapacityBlockOutput { } } +extension PurchaseCapacityBlockExtensionOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PurchaseCapacityBlockExtensionOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let reader = responseReader + var value = PurchaseCapacityBlockExtensionOutput() + value.capacityBlockExtensions = try reader["capacityBlockExtensionSet"].readListIfPresent(memberReadingClosure: EC2ClientTypes.CapacityBlockExtension.read(from:), memberNodeInfo: "item", isFlattened: false) + return value + } +} + extension PurchaseHostReservationOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PurchaseHostReservationOutput { @@ -94690,6 +95312,32 @@ enum DescribeByoipCidrsOutputError { } } +enum DescribeCapacityBlockExtensionHistoryOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let baseError = try AWSClientRuntime.EC2QueryError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeCapacityBlockExtensionOfferingsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let baseError = try AWSClientRuntime.EC2QueryError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum DescribeCapacityBlockOfferingsOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -99162,6 +99810,19 @@ enum PurchaseCapacityBlockOutputError { } } +enum PurchaseCapacityBlockExtensionOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let baseError = try AWSClientRuntime.EC2QueryError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum PurchaseHostReservationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -100881,6 +101542,19 @@ extension EC2ClientTypes.CapacityReservation { value.capacityAllocations = try reader["capacityAllocationSet"].readListIfPresent(memberReadingClosure: EC2ClientTypes.CapacityAllocation.read(from:), memberNodeInfo: "item", isFlattened: false) value.reservationType = try reader["reservationType"].readIfPresent() value.unusedReservationBillingOwnerId = try reader["unusedReservationBillingOwnerId"].readIfPresent() + value.commitmentInfo = try reader["commitmentInfo"].readIfPresent(with: EC2ClientTypes.CapacityReservationCommitmentInfo.read(from:)) + value.deliveryPreference = try reader["deliveryPreference"].readIfPresent() + return value + } +} + +extension EC2ClientTypes.CapacityReservationCommitmentInfo { + + static func read(from reader: SmithyXML.Reader) throws -> EC2ClientTypes.CapacityReservationCommitmentInfo { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = EC2ClientTypes.CapacityReservationCommitmentInfo() + value.committedInstanceCount = try reader["committedInstanceCount"].readIfPresent() + value.commitmentEndDate = try reader["commitmentEndDate"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) return value } } @@ -101699,6 +102373,17 @@ extension EC2ClientTypes.IpamResourceDiscovery { value.isDefault = try reader["isDefault"].readIfPresent() value.state = try reader["state"].readIfPresent() value.tags = try reader["tagSet"].readListIfPresent(memberReadingClosure: EC2ClientTypes.Tag.read(from:), memberNodeInfo: "item", isFlattened: false) + value.organizationalUnitExclusions = try reader["organizationalUnitExclusionSet"].readListIfPresent(memberReadingClosure: EC2ClientTypes.IpamOrganizationalUnitExclusion.read(from:), memberNodeInfo: "item", isFlattened: false) + return value + } +} + +extension EC2ClientTypes.IpamOrganizationalUnitExclusion { + + static func read(from reader: SmithyXML.Reader) throws -> EC2ClientTypes.IpamOrganizationalUnitExclusion { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = EC2ClientTypes.IpamOrganizationalUnitExclusion() + value.organizationsEntityPath = try reader["organizationsEntityPath"].readIfPresent() return value } } @@ -103973,6 +104658,49 @@ extension EC2ClientTypes.Subscription { } } +extension EC2ClientTypes.CapacityBlockExtension { + + static func read(from reader: SmithyXML.Reader) throws -> EC2ClientTypes.CapacityBlockExtension { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = EC2ClientTypes.CapacityBlockExtension() + value.capacityReservationId = try reader["capacityReservationId"].readIfPresent() + value.instanceType = try reader["instanceType"].readIfPresent() + value.instanceCount = try reader["instanceCount"].readIfPresent() + value.availabilityZone = try reader["availabilityZone"].readIfPresent() + value.availabilityZoneId = try reader["availabilityZoneId"].readIfPresent() + value.capacityBlockExtensionOfferingId = try reader["capacityBlockExtensionOfferingId"].readIfPresent() + value.capacityBlockExtensionDurationHours = try reader["capacityBlockExtensionDurationHours"].readIfPresent() + value.capacityBlockExtensionStatus = try reader["capacityBlockExtensionStatus"].readIfPresent() + value.capacityBlockExtensionPurchaseDate = try reader["capacityBlockExtensionPurchaseDate"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.capacityBlockExtensionStartDate = try reader["capacityBlockExtensionStartDate"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.capacityBlockExtensionEndDate = try reader["capacityBlockExtensionEndDate"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.upfrontFee = try reader["upfrontFee"].readIfPresent() + value.currencyCode = try reader["currencyCode"].readIfPresent() + return value + } +} + +extension EC2ClientTypes.CapacityBlockExtensionOffering { + + static func read(from reader: SmithyXML.Reader) throws -> EC2ClientTypes.CapacityBlockExtensionOffering { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = EC2ClientTypes.CapacityBlockExtensionOffering() + value.capacityBlockExtensionOfferingId = try reader["capacityBlockExtensionOfferingId"].readIfPresent() + value.instanceType = try reader["instanceType"].readIfPresent() + value.instanceCount = try reader["instanceCount"].readIfPresent() + value.availabilityZone = try reader["availabilityZone"].readIfPresent() + value.availabilityZoneId = try reader["availabilityZoneId"].readIfPresent() + value.startDate = try reader["startDate"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.capacityBlockExtensionStartDate = try reader["capacityBlockExtensionStartDate"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.capacityBlockExtensionEndDate = try reader["capacityBlockExtensionEndDate"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.capacityBlockExtensionDurationHours = try reader["capacityBlockExtensionDurationHours"].readIfPresent() + value.upfrontFee = try reader["upfrontFee"].readIfPresent() + value.currencyCode = try reader["currencyCode"].readIfPresent() + value.tenancy = try reader["tenancy"].readIfPresent() + return value + } +} + extension EC2ClientTypes.CapacityBlockOffering { static func read(from reader: SmithyXML.Reader) throws -> EC2ClientTypes.CapacityBlockOffering { @@ -103988,6 +104716,7 @@ extension EC2ClientTypes.CapacityBlockOffering { value.upfrontFee = try reader["upfrontFee"].readIfPresent() value.currencyCode = try reader["currencyCode"].readIfPresent() value.tenancy = try reader["tenancy"].readIfPresent() + value.capacityBlockDurationMinutes = try reader["capacityBlockDurationMinutes"].readIfPresent() return value } } @@ -108348,6 +109077,7 @@ extension EC2ClientTypes.IpamDiscoveredAccount { value.failureReason = try reader["failureReason"].readIfPresent(with: EC2ClientTypes.IpamDiscoveryFailureReason.read(from:)) value.lastAttemptedDiscoveryTime = try reader["lastAttemptedDiscoveryTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) value.lastSuccessfulDiscoveryTime = try reader["lastSuccessfulDiscoveryTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.organizationalUnitId = try reader["organizationalUnitId"].readIfPresent() return value } } @@ -110407,6 +111137,22 @@ extension EC2ClientTypes.RemoveIpamOperatingRegion { } } +extension EC2ClientTypes.AddIpamOrganizationalUnitExclusion { + + static func write(value: EC2ClientTypes.AddIpamOrganizationalUnitExclusion?, to writer: SmithyFormURL.Writer) throws { + guard let value else { return } + try writer["OrganizationsEntityPath"].write(value.organizationsEntityPath) + } +} + +extension EC2ClientTypes.RemoveIpamOrganizationalUnitExclusion { + + static func write(value: EC2ClientTypes.RemoveIpamOrganizationalUnitExclusion?, to writer: SmithyFormURL.Writer) throws { + guard let value else { return } + try writer["OrganizationsEntityPath"].write(value.organizationsEntityPath) + } +} + extension EC2ClientTypes.RemovePrefixListEntry { static func write(value: EC2ClientTypes.RemovePrefixListEntry?, to writer: SmithyFormURL.Writer) throws { diff --git a/Sources/Services/AWSEC2/Sources/AWSEC2/Paginators.swift b/Sources/Services/AWSEC2/Sources/AWSEC2/Paginators.swift index 83cc47a4d42..bfebc5a14c8 100644 --- a/Sources/Services/AWSEC2/Sources/AWSEC2/Paginators.swift +++ b/Sources/Services/AWSEC2/Sources/AWSEC2/Paginators.swift @@ -139,6 +139,72 @@ extension PaginatorSequence where OperationStackInput == DescribeByoipCidrsInput return try await self.asyncCompactMap { item in item.byoipCidrs } } } +extension EC2Client { + /// Paginate over `[DescribeCapacityBlockExtensionHistoryOutput]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCapacityBlockExtensionHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCapacityBlockExtensionHistoryOutput` + public func describeCapacityBlockExtensionHistoryPaginated(input: DescribeCapacityBlockExtensionHistoryInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.describeCapacityBlockExtensionHistory(input:)) + } +} + +extension DescribeCapacityBlockExtensionHistoryInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> DescribeCapacityBlockExtensionHistoryInput { + return DescribeCapacityBlockExtensionHistoryInput( + capacityReservationIds: self.capacityReservationIds, + dryRun: self.dryRun, + filters: self.filters, + maxResults: self.maxResults, + nextToken: token + )} +} + +extension PaginatorSequence where OperationStackInput == DescribeCapacityBlockExtensionHistoryInput, OperationStackOutput == DescribeCapacityBlockExtensionHistoryOutput { + /// This paginator transforms the `AsyncSequence` returned by `describeCapacityBlockExtensionHistoryPaginated` + /// to access the nested member `[EC2ClientTypes.CapacityBlockExtension]` + /// - Returns: `[EC2ClientTypes.CapacityBlockExtension]` + public func capacityBlockExtensions() async throws -> [EC2ClientTypes.CapacityBlockExtension] { + return try await self.asyncCompactMap { item in item.capacityBlockExtensions } + } +} +extension EC2Client { + /// Paginate over `[DescribeCapacityBlockExtensionOfferingsOutput]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCapacityBlockExtensionOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCapacityBlockExtensionOfferingsOutput` + public func describeCapacityBlockExtensionOfferingsPaginated(input: DescribeCapacityBlockExtensionOfferingsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.describeCapacityBlockExtensionOfferings(input:)) + } +} + +extension DescribeCapacityBlockExtensionOfferingsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> DescribeCapacityBlockExtensionOfferingsInput { + return DescribeCapacityBlockExtensionOfferingsInput( + capacityBlockExtensionDurationHours: self.capacityBlockExtensionDurationHours, + capacityReservationId: self.capacityReservationId, + dryRun: self.dryRun, + maxResults: self.maxResults, + nextToken: token + )} +} + +extension PaginatorSequence where OperationStackInput == DescribeCapacityBlockExtensionOfferingsInput, OperationStackOutput == DescribeCapacityBlockExtensionOfferingsOutput { + /// This paginator transforms the `AsyncSequence` returned by `describeCapacityBlockExtensionOfferingsPaginated` + /// to access the nested member `[EC2ClientTypes.CapacityBlockExtensionOffering]` + /// - Returns: `[EC2ClientTypes.CapacityBlockExtensionOffering]` + public func capacityBlockExtensionOfferings() async throws -> [EC2ClientTypes.CapacityBlockExtensionOffering] { + return try await self.asyncCompactMap { item in item.capacityBlockExtensionOfferings } + } +} extension EC2Client { /// Paginate over `[DescribeCapacityBlockOfferingsOutput]` results. /// diff --git a/Sources/Services/AWSEC2InstanceConnect/Sources/AWSEC2InstanceConnect/EC2InstanceConnectClient.swift b/Sources/Services/AWSEC2InstanceConnect/Sources/AWSEC2InstanceConnect/EC2InstanceConnectClient.swift index edcebc60df6..200d699663a 100644 --- a/Sources/Services/AWSEC2InstanceConnect/Sources/AWSEC2InstanceConnect/EC2InstanceConnectClient.swift +++ b/Sources/Services/AWSEC2InstanceConnect/Sources/AWSEC2InstanceConnect/EC2InstanceConnectClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EC2InstanceConnectClient: ClientRuntime.Client { public static let clientName = "EC2InstanceConnectClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EC2InstanceConnectClient.EC2InstanceConnectClientConfiguration let serviceName = "EC2 Instance Connect" diff --git a/Sources/Services/AWSECR/Sources/AWSECR/ECRClient.swift b/Sources/Services/AWSECR/Sources/AWSECR/ECRClient.swift index 1b586868d0d..cd190692a71 100644 --- a/Sources/Services/AWSECR/Sources/AWSECR/ECRClient.swift +++ b/Sources/Services/AWSECR/Sources/AWSECR/ECRClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ECRClient: ClientRuntime.Client { public static let clientName = "ECRClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ECRClient.ECRClientConfiguration let serviceName = "ECR" diff --git a/Sources/Services/AWSECRPUBLIC/Sources/AWSECRPUBLIC/ECRPUBLICClient.swift b/Sources/Services/AWSECRPUBLIC/Sources/AWSECRPUBLIC/ECRPUBLICClient.swift index 15bb719685e..c900f055a62 100644 --- a/Sources/Services/AWSECRPUBLIC/Sources/AWSECRPUBLIC/ECRPUBLICClient.swift +++ b/Sources/Services/AWSECRPUBLIC/Sources/AWSECRPUBLIC/ECRPUBLICClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ECRPUBLICClient: ClientRuntime.Client { public static let clientName = "ECRPUBLICClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ECRPUBLICClient.ECRPUBLICClientConfiguration let serviceName = "ECR PUBLIC" diff --git a/Sources/Services/AWSECS/Sources/AWSECS/ECSClient.swift b/Sources/Services/AWSECS/Sources/AWSECS/ECSClient.swift index 5788080bf78..88ec3357243 100644 --- a/Sources/Services/AWSECS/Sources/AWSECS/ECSClient.swift +++ b/Sources/Services/AWSECS/Sources/AWSECS/ECSClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ECSClient: ClientRuntime.Client { public static let clientName = "ECSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ECSClient.ECSClientConfiguration let serviceName = "ECS" diff --git a/Sources/Services/AWSEFS/Sources/AWSEFS/EFSClient.swift b/Sources/Services/AWSEFS/Sources/AWSEFS/EFSClient.swift index bb83af35edf..c74ad00a716 100644 --- a/Sources/Services/AWSEFS/Sources/AWSEFS/EFSClient.swift +++ b/Sources/Services/AWSEFS/Sources/AWSEFS/EFSClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EFSClient: ClientRuntime.Client { public static let clientName = "EFSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EFSClient.EFSClientConfiguration let serviceName = "EFS" diff --git a/Sources/Services/AWSEKS/Sources/AWSEKS/EKSClient.swift b/Sources/Services/AWSEKS/Sources/AWSEKS/EKSClient.swift index f58cba96f10..80d4d5eb7e4 100644 --- a/Sources/Services/AWSEKS/Sources/AWSEKS/EKSClient.swift +++ b/Sources/Services/AWSEKS/Sources/AWSEKS/EKSClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EKSClient: ClientRuntime.Client { public static let clientName = "EKSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EKSClient.EKSClientConfiguration let serviceName = "EKS" diff --git a/Sources/Services/AWSEKSAuth/Sources/AWSEKSAuth/EKSAuthClient.swift b/Sources/Services/AWSEKSAuth/Sources/AWSEKSAuth/EKSAuthClient.swift index 96b32211768..6aa63be7b5c 100644 --- a/Sources/Services/AWSEKSAuth/Sources/AWSEKSAuth/EKSAuthClient.swift +++ b/Sources/Services/AWSEKSAuth/Sources/AWSEKSAuth/EKSAuthClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EKSAuthClient: ClientRuntime.Client { public static let clientName = "EKSAuthClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EKSAuthClient.EKSAuthClientConfiguration let serviceName = "EKS Auth" diff --git a/Sources/Services/AWSEMR/Sources/AWSEMR/EMRClient.swift b/Sources/Services/AWSEMR/Sources/AWSEMR/EMRClient.swift index 8080e0eb621..f188248bfea 100644 --- a/Sources/Services/AWSEMR/Sources/AWSEMR/EMRClient.swift +++ b/Sources/Services/AWSEMR/Sources/AWSEMR/EMRClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EMRClient: ClientRuntime.Client { public static let clientName = "EMRClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EMRClient.EMRClientConfiguration let serviceName = "EMR" diff --git a/Sources/Services/AWSEMRServerless/Sources/AWSEMRServerless/EMRServerlessClient.swift b/Sources/Services/AWSEMRServerless/Sources/AWSEMRServerless/EMRServerlessClient.swift index a6fde1d88e8..6f47229d310 100644 --- a/Sources/Services/AWSEMRServerless/Sources/AWSEMRServerless/EMRServerlessClient.swift +++ b/Sources/Services/AWSEMRServerless/Sources/AWSEMRServerless/EMRServerlessClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EMRServerlessClient: ClientRuntime.Client { public static let clientName = "EMRServerlessClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EMRServerlessClient.EMRServerlessClientConfiguration let serviceName = "EMR Serverless" diff --git a/Sources/Services/AWSEMRcontainers/Sources/AWSEMRcontainers/EMRcontainersClient.swift b/Sources/Services/AWSEMRcontainers/Sources/AWSEMRcontainers/EMRcontainersClient.swift index 080f9262a7b..b7eb9a40b64 100644 --- a/Sources/Services/AWSEMRcontainers/Sources/AWSEMRcontainers/EMRcontainersClient.swift +++ b/Sources/Services/AWSEMRcontainers/Sources/AWSEMRcontainers/EMRcontainersClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EMRcontainersClient: ClientRuntime.Client { public static let clientName = "EMRcontainersClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EMRcontainersClient.EMRcontainersClientConfiguration let serviceName = "EMR containers" diff --git a/Sources/Services/AWSElastiCache/Sources/AWSElastiCache/ElastiCacheClient.swift b/Sources/Services/AWSElastiCache/Sources/AWSElastiCache/ElastiCacheClient.swift index c0cc204bc23..0ae55c22aac 100644 --- a/Sources/Services/AWSElastiCache/Sources/AWSElastiCache/ElastiCacheClient.swift +++ b/Sources/Services/AWSElastiCache/Sources/AWSElastiCache/ElastiCacheClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ElastiCacheClient: ClientRuntime.Client { public static let clientName = "ElastiCacheClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ElastiCacheClient.ElastiCacheClientConfiguration let serviceName = "ElastiCache" @@ -196,7 +196,7 @@ extension ElastiCacheClient { extension ElastiCacheClient { /// Performs the `AddTagsToResource` operation on the `AmazonElastiCacheV9` service. /// - /// A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group. For more information, see [Resource-level permissions](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.ResourceLevelPermissions.html). For example, you can use cost-allocation tags to your ElastiCache resources, Amazon generates a cost allocation report as a comma-separated value (CSV) file with your usage and costs aggregated by your tags. You can apply tags that represent business categories (such as cost centers, application names, or owners) to organize your costs across multiple services. For more information, see [Using Cost Allocation Tags in Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Tagging.html) in the ElastiCache User Guide. + /// A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group. For more information, see [Resource-level permissions](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/IAM.ResourceLevelPermissions.html). For example, you can use cost-allocation tags to your ElastiCache resources, Amazon generates a cost allocation report as a comma-separated value (CSV) file with your usage and costs aggregated by your tags. You can apply tags that represent business categories (such as cost centers, application names, or owners) to organize your costs across multiple services. For more information, see [Using Cost Allocation Tags in Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Tagging.html) in the ElastiCache User Guide. /// /// - Parameter AddTagsToResourceInput : Represents the input of an AddTagsToResource operation. /// @@ -353,7 +353,7 @@ extension ElastiCacheClient { /// Performs the `BatchApplyUpdateAction` operation on the `AmazonElastiCacheV9` service. /// - /// Apply the service update. For more information on service updates and applying them, see [Applying Service Updates](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/applying-updates.html). + /// Apply the service update. For more information on service updates and applying them, see [Applying Service Updates](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/applying-updates.html). /// /// - Parameter BatchApplyUpdateActionInput : [no documentation found] /// @@ -423,7 +423,7 @@ extension ElastiCacheClient { /// Performs the `BatchStopUpdateAction` operation on the `AmazonElastiCacheV9` service. /// - /// Stop the service update. For more information on service updates and stopping them, see [Stopping Service Updates](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/stopping-self-service-updates.html). + /// Stop the service update. For more information on service updates and stopping them, see [Stopping Service Updates](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/stopping-self-service-updates.html). /// /// - Parameter BatchStopUpdateActionInput : [no documentation found] /// @@ -640,23 +640,23 @@ extension ElastiCacheClient { /// Performs the `CopySnapshot` operation on the `AmazonElastiCacheV9` service. /// - /// Makes a copy of an existing snapshot. This operation is valid for Valkey or Redis OSS only. Users or groups that have permissions to use the CopySnapshot operation can create their own Amazon S3 buckets and copy snapshots to it. To control access to your snapshots, use an IAM policy to control who has the ability to use the CopySnapshot operation. For more information about using IAM to control the use of ElastiCache operations, see [Exporting Snapshots](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html) and [Authentication & Access Control](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.html). You could receive the following error messages. Error Messages + /// Makes a copy of an existing snapshot. This operation is valid for Valkey or Redis OSS only. Users or groups that have permissions to use the CopySnapshot operation can create their own Amazon S3 buckets and copy snapshots to it. To control access to your snapshots, use an IAM policy to control who has the ability to use the CopySnapshot operation. For more information about using IAM to control the use of ElastiCache operations, see [Exporting Snapshots](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-exporting.html) and [Authentication & Access Control](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/IAM.html). You could receive the following error messages. Error Messages /// - /// * Error Message: The S3 bucket %s is outside of the region. Solution: Create an Amazon S3 bucket in the same region as your snapshot. For more information, see [Step 1: Create an Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-create-s3-bucket) in the ElastiCache User Guide. + /// * Error Message: The S3 bucket %s is outside of the region. Solution: Create an Amazon S3 bucket in the same region as your snapshot. For more information, see [Step 1: Create an Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-exporting.html#backups-exporting-create-s3-bucket) in the ElastiCache User Guide. /// - /// * Error Message: The S3 bucket %s does not exist. Solution: Create an Amazon S3 bucket in the same region as your snapshot. For more information, see [Step 1: Create an Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-create-s3-bucket) in the ElastiCache User Guide. + /// * Error Message: The S3 bucket %s does not exist. Solution: Create an Amazon S3 bucket in the same region as your snapshot. For more information, see [Step 1: Create an Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-exporting.html#backups-exporting-create-s3-bucket) in the ElastiCache User Guide. /// - /// * Error Message: The S3 bucket %s is not owned by the authenticated user. Solution: Create an Amazon S3 bucket in the same region as your snapshot. For more information, see [Step 1: Create an Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-create-s3-bucket) in the ElastiCache User Guide. + /// * Error Message: The S3 bucket %s is not owned by the authenticated user. Solution: Create an Amazon S3 bucket in the same region as your snapshot. For more information, see [Step 1: Create an Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-exporting.html#backups-exporting-create-s3-bucket) in the ElastiCache User Guide. /// /// * Error Message: The authenticated user does not have sufficient permissions to perform the desired activity. Solution: Contact your system administrator to get the needed permissions. /// /// * Error Message: The S3 bucket %s already contains an object with key %s. Solution: Give the TargetSnapshotName a new and unique value. If exporting a snapshot, you could alternatively create a new Amazon S3 bucket and use this same value for TargetSnapshotName. /// - /// * Error Message: ElastiCache has not been granted READ permissions %s on the S3 Bucket. Solution: Add List and Read permissions on the bucket. For more information, see [Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access) in the ElastiCache User Guide. + /// * Error Message: ElastiCache has not been granted READ permissions %s on the S3 Bucket. Solution: Add List and Read permissions on the bucket. For more information, see [Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-exporting.html#backups-exporting-grant-access) in the ElastiCache User Guide. /// - /// * Error Message: ElastiCache has not been granted WRITE permissions %s on the S3 Bucket. Solution: Add Upload/Delete permissions on the bucket. For more information, see [Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access) in the ElastiCache User Guide. + /// * Error Message: ElastiCache has not been granted WRITE permissions %s on the S3 Bucket. Solution: Add Upload/Delete permissions on the bucket. For more information, see [Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-exporting.html#backups-exporting-grant-access) in the ElastiCache User Guide. /// - /// * Error Message: ElastiCache has not been granted READ_ACP permissions %s on the S3 Bucket. Solution: Add View Permissions on the bucket. For more information, see [Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access) in the ElastiCache User Guide. + /// * Error Message: ElastiCache has not been granted READ_ACP permissions %s on the S3 Bucket. Solution: Add View Permissions on the bucket. For more information, see [Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-exporting.html#backups-exporting-grant-access) in the ElastiCache User Guide. /// /// - Parameter CopySnapshotInput : Represents the input of a CopySnapshotMessage operation. /// @@ -745,7 +745,7 @@ extension ElastiCacheClient { /// - `CacheSecurityGroupNotFoundFault` : The requested cache security group name does not refer to an existing cache security group. /// - `CacheSubnetGroupNotFoundFault` : The requested cache subnet group name does not refer to an existing cache subnet group. /// - `ClusterQuotaForCustomerExceededFault` : The request cannot be processed because it would exceed the allowed number of clusters per customer. - /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. + /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. /// - `InvalidParameterCombinationException` : Two or more incompatible parameters were specified. /// - `InvalidParameterValueException` : The value for a parameter is invalid. /// - `InvalidReplicationGroupStateFault` : The requested replication group is not in the available state. @@ -817,7 +817,7 @@ extension ElastiCacheClient { /// /// * [ModifyCacheParameterGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html) in the ElastiCache API Reference. /// - /// * [Parameters and Parameter Groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ParameterGroups.html) in the ElastiCache User Guide. + /// * [Parameters and Parameter Groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ParameterGroups.html) in the ElastiCache User Guide. /// /// - Parameter CreateCacheParameterGroupInput : Represents the input of a CreateCacheParameterGroup operation. /// @@ -1038,7 +1038,7 @@ extension ElastiCacheClient { /// Performs the `CreateGlobalReplicationGroup` operation on the `AmazonElastiCacheV9` service. /// - /// Global Datastore offers fully managed, fast, reliable and secure cross-region replication. Using Global Datastore with Valkey or Redis OSS, you can create cross-region read replica clusters for ElastiCache to enable low-latency reads and disaster recovery across regions. For more information, see [Replication Across Regions Using Global Datastore](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html). + /// Global Datastore offers fully managed, fast, reliable and secure cross-region replication. Using Global Datastore with Valkey or Redis OSS, you can create cross-region read replica clusters for ElastiCache to enable low-latency reads and disaster recovery across regions. For more information, see [Replication Across Regions Using Global Datastore](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Redis-Global-Datastore.html). /// /// * The GlobalReplicationGroupIdSuffix is the name of the Global datastore. /// @@ -1115,7 +1115,7 @@ extension ElastiCacheClient { /// Performs the `CreateReplicationGroup` operation on the `AmazonElastiCacheV9` service. /// - /// Creates a Valkey or Redis OSS (cluster mode disabled) or a Valkey or Redis OSS (cluster mode enabled) replication group. This API can be used to create a standalone regional replication group or a secondary replication group associated with a Global datastore. A Valkey or Redis OSS (cluster mode disabled) replication group is a collection of nodes, where one of the nodes is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas. A Valkey or Redis OSS cluster-mode enabled cluster is comprised of from 1 to 90 shards (API/CLI: node groups). Each shard has a primary node and up to 5 read-only replica nodes. The configuration can range from 90 shards and 0 replicas to 15 shards and 5 replicas, which is the maximum number or replicas allowed. The node or shard limit can be increased to a maximum of 500 per cluster if the Valkey or Redis OSS engine version is 5.0.6 or higher. For example, you can choose to configure a 500 node cluster that ranges between 83 shards (one primary and 5 replicas per shard) and 500 shards (single primary and no replicas). Make sure there are enough available IP addresses to accommodate the increase. Common pitfalls include the subnets in the subnet group have too small a CIDR range or the subnets are shared and heavily used by other clusters. For more information, see [Creating a Subnet Group](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.Creating.html). For versions below 5.0.6, the limit is 250 per cluster. To request a limit increase, see [Amazon Service Limits](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) and choose the limit type Nodes per cluster per instance type. When a Valkey or Redis OSS (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. If you need to increase or decrease the number of node groups (console: shards), you can use scaling. For more information, see [Scaling self-designed clusters](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html) in the ElastiCache User Guide. This operation is valid for Valkey and Redis OSS only. + /// Creates a Valkey or Redis OSS (cluster mode disabled) or a Valkey or Redis OSS (cluster mode enabled) replication group. This API can be used to create a standalone regional replication group or a secondary replication group associated with a Global datastore. A Valkey or Redis OSS (cluster mode disabled) replication group is a collection of nodes, where one of the nodes is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas. A Valkey or Redis OSS cluster-mode enabled cluster is comprised of from 1 to 90 shards (API/CLI: node groups). Each shard has a primary node and up to 5 read-only replica nodes. The configuration can range from 90 shards and 0 replicas to 15 shards and 5 replicas, which is the maximum number or replicas allowed. The node or shard limit can be increased to a maximum of 500 per cluster if the Valkey or Redis OSS engine version is 5.0.6 or higher. For example, you can choose to configure a 500 node cluster that ranges between 83 shards (one primary and 5 replicas per shard) and 500 shards (single primary and no replicas). Make sure there are enough available IP addresses to accommodate the increase. Common pitfalls include the subnets in the subnet group have too small a CIDR range or the subnets are shared and heavily used by other clusters. For more information, see [Creating a Subnet Group](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/SubnetGroups.Creating.html). For versions below 5.0.6, the limit is 250 per cluster. To request a limit increase, see [Amazon Service Limits](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) and choose the limit type Nodes per cluster per instance type. When a Valkey or Redis OSS (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. If you need to increase or decrease the number of node groups (console: shards), you can use scaling. For more information, see [Scaling self-designed clusters](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Scaling.html) in the ElastiCache User Guide. This operation is valid for Valkey and Redis OSS only. /// /// - Parameter CreateReplicationGroupInput : Represents the input of a CreateReplicationGroup operation. /// @@ -1130,7 +1130,7 @@ extension ElastiCacheClient { /// - `CacheSubnetGroupNotFoundFault` : The requested cache subnet group name does not refer to an existing cache subnet group. /// - `ClusterQuotaForCustomerExceededFault` : The request cannot be processed because it would exceed the allowed number of clusters per customer. /// - `GlobalReplicationGroupNotFoundFault` : The Global datastore does not exist - /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. + /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. /// - `InvalidCacheClusterStateFault` : The requested cluster is not in the available state. /// - `InvalidGlobalReplicationGroupStateFault` : The Global datastore is not available or in primary-only state. /// - `InvalidParameterCombinationException` : Two or more incompatible parameters were specified. @@ -1442,7 +1442,7 @@ extension ElastiCacheClient { /// Performs the `CreateUser` operation on the `AmazonElastiCacheV9` service. /// - /// For Valkey engine version 7.2 onwards and Redis OSS 6.0 and onwards: Creates a user. For more information, see [Using Role Based Access Control (RBAC)](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html). + /// For Valkey engine version 7.2 onwards and Redis OSS 6.0 and onwards: Creates a user. For more information, see [Using Role Based Access Control (RBAC)](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html). /// /// - Parameter CreateUserInput : [no documentation found] /// @@ -1517,7 +1517,7 @@ extension ElastiCacheClient { /// Performs the `CreateUserGroup` operation on the `AmazonElastiCacheV9` service. /// - /// For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Creates a user group. For more information, see [Using Role Based Access Control (RBAC)](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html) + /// For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Creates a user group. For more information, see [Using Role Based Access Control (RBAC)](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html) /// /// - Parameter CreateUserGroupInput : [no documentation found] /// @@ -1675,7 +1675,7 @@ extension ElastiCacheClient { /// /// __Possible Exceptions:__ /// - `ClusterQuotaForCustomerExceededFault` : The request cannot be processed because it would exceed the allowed number of clusters per customer. - /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. + /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. /// - `InvalidCacheClusterStateFault` : The requested cluster is not in the available state. /// - `InvalidParameterCombinationException` : Two or more incompatible parameters were specified. /// - `InvalidParameterValueException` : The value for a parameter is invalid. @@ -2438,7 +2438,7 @@ extension ElastiCacheClient { /// Performs the `DeleteUser` operation on the `AmazonElastiCacheV9` service. /// - /// For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Deletes a user. The user will be removed from all user groups and in turn removed from all replication groups. For more information, see [Using Role Based Access Control (RBAC)](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html). + /// For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Deletes a user. The user will be removed from all user groups and in turn removed from all replication groups. For more information, see [Using Role Based Access Control (RBAC)](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html). /// /// - Parameter DeleteUserInput : [no documentation found] /// @@ -2511,7 +2511,7 @@ extension ElastiCacheClient { /// Performs the `DeleteUserGroup` operation on the `AmazonElastiCacheV9` service. /// - /// For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Deletes a user group. The user group must first be disassociated from the replication group before it can be deleted. For more information, see [Using Role Based Access Control (RBAC)](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html). + /// For Valkey engine version 7.2 onwards and Redis OSS 6.0 onwards: Deletes a user group. The user group must first be disassociated from the replication group before it can be deleted. For more information, see [Using Role Based Access Control (RBAC)](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html). /// /// - Parameter DeleteUserGroupInput : [no documentation found] /// @@ -4219,7 +4219,7 @@ extension ElastiCacheClient { /// /// __Possible Exceptions:__ /// - `ClusterQuotaForCustomerExceededFault` : The request cannot be processed because it would exceed the allowed number of clusters per customer. - /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. + /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. /// - `InvalidCacheClusterStateFault` : The requested cluster is not in the available state. /// - `InvalidKMSKeyFault` : The KMS key supplied is not valid. /// - `InvalidParameterCombinationException` : Two or more incompatible parameters were specified. @@ -4361,7 +4361,7 @@ extension ElastiCacheClient { /// Performs the `ListTagsForResource` operation on the `AmazonElastiCacheV9` service. /// - /// Lists all tags currently on a named resource. A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group. For more information, see [Resource-level permissions](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.ResourceLevelPermissions.html). If the cluster is not in the available state, ListTagsForResource returns an error. + /// Lists all tags currently on a named resource. A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group. For more information, see [Resource-level permissions](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/IAM.ResourceLevelPermissions.html). If the cluster is not in the available state, ListTagsForResource returns an error. /// /// - Parameter ListTagsForResourceInput : The input parameters for the ListTagsForResource operation. /// @@ -4456,7 +4456,7 @@ extension ElastiCacheClient { /// - `CacheClusterNotFoundFault` : The requested cluster ID does not refer to an existing cluster. /// - `CacheParameterGroupNotFoundFault` : The requested cache parameter group name does not refer to an existing cache parameter group. /// - `CacheSecurityGroupNotFoundFault` : The requested cache security group name does not refer to an existing cache security group. - /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. + /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. /// - `InvalidCacheClusterStateFault` : The requested cluster is not in the available state. /// - `InvalidCacheSecurityGroupStateFault` : The current state of the cache security group does not allow deletion. /// - `InvalidParameterCombinationException` : Two or more incompatible parameters were specified. @@ -4746,7 +4746,7 @@ extension ElastiCacheClient { /// /// Modifies the settings for a replication group. This is limited to Valkey and Redis OSS 7 and above. /// - /// * [Scaling for Valkey or Redis OSS (cluster mode enabled)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/scaling-redis-cluster-mode-enabled.html) in the ElastiCache User Guide + /// * [Scaling for Valkey or Redis OSS (cluster mode enabled)](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/scaling-redis-cluster-mode-enabled.html) in the ElastiCache User Guide /// /// * [ModifyReplicationGroupShardConfiguration](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html) in the ElastiCache API Reference /// @@ -4763,7 +4763,7 @@ extension ElastiCacheClient { /// - `CacheClusterNotFoundFault` : The requested cluster ID does not refer to an existing cluster. /// - `CacheParameterGroupNotFoundFault` : The requested cache parameter group name does not refer to an existing cache parameter group. /// - `CacheSecurityGroupNotFoundFault` : The requested cache security group name does not refer to an existing cache security group. - /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. + /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. /// - `InvalidCacheClusterStateFault` : The requested cluster is not in the available state. /// - `InvalidCacheSecurityGroupStateFault` : The current state of the cache security group does not allow deletion. /// - `InvalidKMSKeyFault` : The KMS key supplied is not valid. @@ -4844,7 +4844,7 @@ extension ElastiCacheClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. + /// - `InsufficientCacheClusterCapacityFault` : The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. /// - `InvalidCacheClusterStateFault` : The requested cluster is not in the available state. /// - `InvalidKMSKeyFault` : The KMS key supplied is not valid. /// - `InvalidParameterCombinationException` : Two or more incompatible parameters were specified. @@ -5138,7 +5138,7 @@ extension ElastiCacheClient { /// Performs the `PurchaseReservedCacheNodesOffering` operation on the `AmazonElastiCacheV9` service. /// - /// Allows you to purchase a reserved cache node offering. Reserved nodes are not eligible for cancellation and are non-refundable. For more information, see [Managing Costs with Reserved Nodes](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/reserved-nodes.html). + /// Allows you to purchase a reserved cache node offering. Reserved nodes are not eligible for cancellation and are non-refundable. For more information, see [Managing Costs with Reserved Nodes](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/reserved-nodes.html). /// /// - Parameter PurchaseReservedCacheNodesOfferingInput : Represents the input of a PurchaseReservedCacheNodesOffering operation. /// @@ -5283,7 +5283,7 @@ extension ElastiCacheClient { /// Performs the `RebootCacheCluster` operation on the `AmazonElastiCacheV9` service. /// - /// Reboots some, or all, of the cache nodes within a provisioned cluster. This operation applies any modified cache parameter groups to the cluster. The reboot operation takes place as soon as possible, and results in a momentary outage to the cluster. During the reboot, the cluster status is set to REBOOTING. The reboot causes the contents of the cache (for each cache node being rebooted) to be lost. When the reboot is complete, a cluster event is created. Rebooting a cluster is currently supported on Memcached, Valkey and Redis OSS (cluster mode disabled) clusters. Rebooting is not supported on Valkey or Redis OSS (cluster mode enabled) clusters. If you make changes to parameters that require a Valkey or Redis OSS (cluster mode enabled) cluster reboot for the changes to be applied, see [Rebooting a Cluster](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes.rebooting.html) for an alternate process. + /// Reboots some, or all, of the cache nodes within a provisioned cluster. This operation applies any modified cache parameter groups to the cluster. The reboot operation takes place as soon as possible, and results in a momentary outage to the cluster. During the reboot, the cluster status is set to REBOOTING. The reboot causes the contents of the cache (for each cache node being rebooted) to be lost. When the reboot is complete, a cluster event is created. Rebooting a cluster is currently supported on Memcached, Valkey and Redis OSS (cluster mode disabled) clusters. Rebooting is not supported on Valkey or Redis OSS (cluster mode enabled) clusters. If you make changes to parameters that require a Valkey or Redis OSS (cluster mode enabled) cluster reboot for the changes to be applied, see [Rebooting a Cluster](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/nodes.rebooting.html) for an alternate process. /// /// - Parameter RebootCacheClusterInput : Represents the input of a RebootCacheCluster operation. /// @@ -5353,7 +5353,7 @@ extension ElastiCacheClient { /// Performs the `RemoveTagsFromResource` operation on the `AmazonElastiCacheV9` service. /// - /// Removes the tags identified by the TagKeys list from the named resource. A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group. For more information, see [Resource-level permissions](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.ResourceLevelPermissions.html). + /// Removes the tags identified by the TagKeys list from the named resource. A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group. For more information, see [Resource-level permissions](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/IAM.ResourceLevelPermissions.html). /// /// - Parameter RemoveTagsFromResourceInput : Represents the input of a RemoveTagsFromResource operation. /// @@ -5682,7 +5682,7 @@ extension ElastiCacheClient { /// /// For more information see: /// - /// * [Viewing ElastiCache Events](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ECEvents.Viewing.html) in the ElastiCache User Guide + /// * [Viewing ElastiCache Events](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ECEvents.Viewing.html) in the ElastiCache User Guide /// /// * [DescribeEvents](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEvents.html) in the ElastiCache API Reference /// @@ -5690,7 +5690,7 @@ extension ElastiCacheClient { /// /// /// - /// Also see, [Testing Multi-AZ ](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html#auto-failover-test) in the ElastiCache User Guide. + /// Also see, [Testing Multi-AZ ](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoFailover.html#auto-failover-test) in the ElastiCache User Guide. /// /// - Parameter TestFailoverInput : [no documentation found] /// diff --git a/Sources/Services/AWSElastiCache/Sources/AWSElastiCache/Models.swift b/Sources/Services/AWSElastiCache/Sources/AWSElastiCache/Models.swift index 9beb148ef7a..f8b607b4d52 100644 --- a/Sources/Services/AWSElastiCache/Sources/AWSElastiCache/Models.swift +++ b/Sources/Services/AWSElastiCache/Sources/AWSElastiCache/Models.swift @@ -1680,7 +1680,7 @@ extension ElastiCacheClientTypes { public var clusterMode: ElastiCacheClientTypes.ClusterMode? /// The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group. public var configurationEndpoint: ElastiCacheClientTypes.Endpoint? - /// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. For more information, see [Data tiering](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + /// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. For more information, see [Data tiering](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/data-tiering.html). public var dataTiering: ElastiCacheClientTypes.DataTieringStatus? /// The user supplied description of the replication group. public var description: Swift.String? @@ -1698,7 +1698,7 @@ extension ElastiCacheClientTypes { public var memberClusters: [Swift.String]? /// The outpost ARNs of the replication group's member clusters. public var memberClustersOutpostArns: [Swift.String]? - /// A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see [Minimizing Downtime: Multi-AZ](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html) + /// A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see [Minimizing Downtime: Multi-AZ](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoFailover.html) public var multiAZ: ElastiCacheClientTypes.MultiAZStatus? /// Must be either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads using Valkey 7.2 and above, Redis OSS engine version 6.2 and above or Memcached engine version 1.6.6 and above on all instances built on the [Nitro system](http://aws.amazon.com/ec2/nitro/). public var networkType: ElastiCacheClientTypes.NetworkType? @@ -2071,7 +2071,7 @@ public struct CopySnapshotInput: Swift.Sendable { public var sourceSnapshotName: Swift.String? /// A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted. public var tags: [ElastiCacheClientTypes.Tag]? - /// The Amazon S3 bucket to which the snapshot is exported. This parameter is used only when exporting a snapshot for external access. When using this parameter to export a snapshot, be sure Amazon ElastiCache has the needed permissions to this S3 bucket. For more information, see [Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access) in the Amazon ElastiCache User Guide. For more information, see [Exporting a Snapshot](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html) in the Amazon ElastiCache User Guide. + /// The Amazon S3 bucket to which the snapshot is exported. This parameter is used only when exporting a snapshot for external access. When using this parameter to export a snapshot, be sure Amazon ElastiCache has the needed permissions to this S3 bucket. For more information, see [Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-exporting.html#backups-exporting-grant-access) in the Amazon ElastiCache User Guide. For more information, see [Exporting a Snapshot](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-exporting.html) in the Amazon ElastiCache User Guide. public var targetBucket: Swift.String? /// A name for the snapshot copy. ElastiCache does not permit overwriting a snapshot, therefore this name must be unique within its context - ElastiCache or an Amazon S3 bucket if exporting. /// This member is required. @@ -2191,7 +2191,7 @@ extension ElastiCacheClientTypes { /// /// * General purpose: /// - /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium + /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge /// @@ -2207,7 +2207,7 @@ extension ElastiCacheClientTypes { /// /// * Memory optimized: /// - /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, /// @@ -2232,7 +2232,7 @@ extension ElastiCacheClientTypes { public var cacheParameterGroupName: Swift.String? /// The name of the cache subnet group associated with the source cluster. public var cacheSubnetGroupName: Swift.String? - /// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. For more information, see [Data tiering](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + /// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. For more information, see [Data tiering](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/data-tiering.html). public var dataTiering: ElastiCacheClientTypes.DataTieringStatus? /// The name of the cache engine (memcached or redis) used by the source cluster. public var engine: Swift.String? @@ -2413,7 +2413,7 @@ public struct ClusterQuotaForCustomerExceededFault: ClientRuntime.ModeledError, } } -/// The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. +/// The requested cache node type is not available in the specified Availability Zone. For more information, see [InsufficientCacheClusterCapacity](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) in the ElastiCache User Guide. public struct InsufficientCacheClusterCapacityFault: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -2629,7 +2629,7 @@ public struct CreateCacheClusterInput: Swift.Sendable { /// /// * General purpose: /// - /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium + /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge /// @@ -2645,7 +2645,7 @@ public struct CreateCacheClusterInput: Swift.Sendable { /// /// * Memory optimized: /// - /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, /// @@ -2670,11 +2670,11 @@ public struct CreateCacheClusterInput: Swift.Sendable { public var cacheParameterGroupName: Swift.String? /// A list of security group names to associate with this cluster. Use this parameter only when you are creating a cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). public var cacheSecurityGroupNames: [Swift.String]? - /// The name of the subnet group to be used for the cluster. Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC). If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see [Subnets and Subnet Groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html). + /// The name of the subnet group to be used for the cluster. Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC). If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see [Subnets and Subnet Groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/SubnetGroups.html). public var cacheSubnetGroupName: Swift.String? /// The name of the cache engine to be used for this cluster. Valid values for this parameter are: memcached | redis public var engine: Swift.String? - /// The version number of the cache engine to be used for this cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. Important: You can upgrade to a newer engine version (see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. + /// The version number of the cache engine to be used for this cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. Important: You can upgrade to a newer engine version (see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/SelectEngine.html#VersionManagement)), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. public var engineVersion: Swift.String? /// The network type you choose when modifying a cluster, either ipv4 | ipv6. IPv6 is supported for workloads using Valkey 7.2 and above, Redis OSS engine version 6.2 and above or Memcached engine version 1.6.6 and above on all instances built on the [Nitro system](http://aws.amazon.com/ec2/nitro/). public var ipDiscovery: ElastiCacheClientTypes.IpDiscovery? @@ -2789,7 +2789,7 @@ extension ElastiCacheClientTypes { /// /// * General purpose: /// - /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium + /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge /// @@ -2805,7 +2805,7 @@ extension ElastiCacheClientTypes { /// /// * Memory optimized: /// - /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, /// @@ -3018,7 +3018,7 @@ extension ElastiCacheClientTypes { /// /// * General purpose: /// - /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium + /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge /// @@ -3034,7 +3034,7 @@ extension ElastiCacheClientTypes { /// /// * Memory optimized: /// - /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, /// @@ -3730,7 +3730,7 @@ public struct GlobalReplicationGroupAlreadyExistsFault: ClientRuntime.ModeledErr public struct CreateGlobalReplicationGroupInput: Swift.Sendable { /// Provides details of the Global datastore public var globalReplicationGroupDescription: Swift.String? - /// The suffix name of a Global datastore. Amazon ElastiCache automatically applies a prefix to the Global datastore ID when it is created. Each Amazon Region has its own prefix. For instance, a Global datastore ID created in the US-West-1 region will begin with "dsdfu" along with the suffix name you provide. The suffix, combined with the auto-generated prefix, guarantees uniqueness of the Global datastore name across multiple regions. For a full list of Amazon Regions and their respective Global datastore iD prefixes, see [Using the Amazon CLI with Global datastores ](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastores-CLI.html). + /// The suffix name of a Global datastore. Amazon ElastiCache automatically applies a prefix to the Global datastore ID when it is created. Each Amazon Region has its own prefix. For instance, a Global datastore ID created in the US-West-1 region will begin with "dsdfu" along with the suffix name you provide. The suffix, combined with the auto-generated prefix, guarantees uniqueness of the Global datastore name across multiple regions. For a full list of Amazon Regions and their respective Global datastore iD prefixes, see [Using the Amazon CLI with Global datastores ](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Redis-Global-Datastores-CLI.html). /// This member is required. public var globalReplicationGroupIdSuffix: Swift.String? /// The name of the primary cluster that accepts writes and will replicate updates to the secondary cluster. @@ -4048,7 +4048,7 @@ public struct CreateReplicationGroupInput: Swift.Sendable { /// /// * General purpose: /// - /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium + /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge /// @@ -4064,7 +4064,7 @@ public struct CreateReplicationGroupInput: Swift.Sendable { /// /// * Memory optimized: /// - /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, /// @@ -4093,15 +4093,15 @@ public struct CreateReplicationGroupInput: Swift.Sendable { public var cacheParameterGroupName: Swift.String? /// A list of cache security group names to associate with this replication group. public var cacheSecurityGroupNames: [Swift.String]? - /// The name of the cache subnet group to be used for the replication group. If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see [Subnets and Subnet Groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html). + /// The name of the cache subnet group to be used for the replication group. If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see [Subnets and Subnet Groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/SubnetGroups.html). public var cacheSubnetGroupName: Swift.String? /// Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you must first set the cluster mode to Compatible. Compatible mode allows your Valkey or Redis OSS clients to connect using both cluster mode enabled and cluster mode disabled. After you migrate all Valkey or Redis OSS clients to use cluster mode enabled, you can then complete cluster mode configuration and set the cluster mode to Enabled. public var clusterMode: ElastiCacheClientTypes.ClusterMode? - /// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. For more information, see [Data tiering](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + /// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. For more information, see [Data tiering](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/data-tiering.html). public var dataTieringEnabled: Swift.Bool? /// The name of the cache engine to be used for the clusters in this replication group. The value must be set to Redis. public var engine: Swift.String? - /// The version number of the cache engine to be used for the clusters in this replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. Important: You can upgrade to a newer engine version (see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)) in the ElastiCache User Guide, but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. + /// The version number of the cache engine to be used for the clusters in this replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. Important: You can upgrade to a newer engine version (see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/SelectEngine.html#VersionManagement)) in the ElastiCache User Guide, but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. public var engineVersion: Swift.String? /// The name of the Global datastore public var globalReplicationGroupId: Swift.String? @@ -4111,7 +4111,7 @@ public struct CreateReplicationGroupInput: Swift.Sendable { public var kmsKeyId: Swift.String? /// Specifies the destination, format and type of the logs. public var logDeliveryConfigurations: [ElastiCacheClientTypes.LogDeliveryConfigurationRequest]? - /// A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see [Minimizing Downtime: Multi-AZ](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html). + /// A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see [Minimizing Downtime: Multi-AZ](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoFailover.html). public var multiAZEnabled: Swift.Bool? /// Must be either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads using Valkey 7.2 and above, Redis OSS engine version 6.2 and above or Memcached engine version 1.6.6 and above on all instances built on the [Nitro system](http://aws.amazon.com/ec2/nitro/). public var networkType: ElastiCacheClientTypes.NetworkType? @@ -5220,7 +5220,7 @@ extension ElastiCacheClientTypes { /// * Valkey or Redis OSS (cluster mode enabled): 0 (though you will not be able to failover to a replica if your primary node fails) /// This member is required. public var newReplicaCount: Swift.Int? - /// The 4-digit id for the node group you are configuring. For Valkey or Redis OSS (cluster mode disabled) replication groups, the node group id is always 0001. To find a Valkey or Redis OSS (cluster mode enabled)'s node group's (shard's) id, see [Finding a Shard's Id](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/shard-find-id.html). + /// The 4-digit id for the node group you are configuring. For Valkey or Redis OSS (cluster mode disabled) replication groups, the node group id is always 0001. To find a Valkey or Redis OSS (cluster mode enabled)'s node group's (shard's) id, see [Finding a Shard's Id](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/shard-find-id.html). /// This member is required. public var nodeGroupId: Swift.String? /// A list of PreferredAvailabilityZone strings that specify which availability zones the replication group's nodes are to be in. The nummber of PreferredAvailabilityZone values must equal the value of NewReplicaCount plus 1 to account for the primary node. If this member of ReplicaConfiguration is omitted, ElastiCache selects the availability zone for each of the replicas. @@ -5955,7 +5955,7 @@ extension ElastiCacheClientTypes { public var allowedValues: Swift.String? /// A list of cache node types and their corresponding values for this parameter. public var cacheNodeTypeSpecificValues: [ElastiCacheClientTypes.CacheNodeTypeSpecificValue]? - /// Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see [Rebooting a Cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Rebooting.html). + /// Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see [Rebooting a Cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.Rebooting.html). public var changeType: ElastiCacheClientTypes.ChangeType? /// The valid data type for the parameter. public var dataType: Swift.String? @@ -6001,7 +6001,7 @@ extension ElastiCacheClientTypes { public struct Parameter: Swift.Sendable, Swift.Equatable { /// The valid range of values for the parameter. public var allowedValues: Swift.String? - /// Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see [Rebooting a Cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Rebooting.html). + /// Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see [Rebooting a Cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.Rebooting.html). public var changeType: ElastiCacheClientTypes.ChangeType? /// The valid data type for the parameter. public var dataType: Swift.String? @@ -6418,7 +6418,7 @@ public struct DescribeReservedCacheNodesInput: Swift.Sendable { /// /// * General purpose: /// - /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium + /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge /// @@ -6434,7 +6434,7 @@ public struct DescribeReservedCacheNodesInput: Swift.Sendable { /// /// * Memory optimized: /// - /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, /// @@ -6522,7 +6522,7 @@ extension ElastiCacheClientTypes { /// /// * General purpose: /// - /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium + /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge /// @@ -6538,7 +6538,7 @@ extension ElastiCacheClientTypes { /// /// * Memory optimized: /// - /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, /// @@ -6662,7 +6662,7 @@ public struct DescribeReservedCacheNodesOfferingsInput: Swift.Sendable { /// /// * General purpose: /// - /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium + /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge /// @@ -6678,7 +6678,7 @@ public struct DescribeReservedCacheNodesOfferingsInput: Swift.Sendable { /// /// * Memory optimized: /// - /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, /// @@ -6740,7 +6740,7 @@ extension ElastiCacheClientTypes { /// /// * General purpose: /// - /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium + /// * Current generation: M7g node types: cache.m7g.large, cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge, cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) M6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge /// @@ -6756,7 +6756,7 @@ extension ElastiCacheClientTypes { /// /// * Memory optimized: /// - /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + /// * Current generation: R7g node types: cache.r7g.large, cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge, cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see [Supported Node Types](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) R6g node types (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge /// /// * Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, /// @@ -7047,7 +7047,7 @@ extension ElastiCacheClientTypes { public var serviceUpdateEndDate: Foundation.Date? /// The unique ID of the service update public var serviceUpdateName: Swift.String? - /// The recommendend date to apply the service update in order to ensure compliance. For information on compliance, see [Self-Service Security Updates for Compliance](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/elasticache-compliance.html#elasticache-compliance-self-service). + /// The recommendend date to apply the service update in order to ensure compliance. For information on compliance, see [Self-Service Security Updates for Compliance](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/elasticache-compliance.html#elasticache-compliance-self-service). public var serviceUpdateRecommendedApplyByDate: Foundation.Date? /// The date when the service update is initially available public var serviceUpdateReleaseDate: Foundation.Date? @@ -7461,7 +7461,7 @@ extension ElastiCacheClientTypes { public var replicationGroupId: Swift.String? /// The unique ID of the service update public var serviceUpdateName: Swift.String? - /// The recommended date to apply the service update to ensure compliance. For information on compliance, see [Self-Service Security Updates for Compliance](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/elasticache-compliance.html#elasticache-compliance-self-service). + /// The recommended date to apply the service update to ensure compliance. For information on compliance, see [Self-Service Security Updates for Compliance](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/elasticache-compliance.html#elasticache-compliance-self-service). public var serviceUpdateRecommendedApplyByDate: Foundation.Date? /// The date the update is first available public var serviceUpdateReleaseDate: Foundation.Date? @@ -8104,7 +8104,7 @@ public struct ModifyCacheClusterInput: Swift.Sendable { /// * DELETE - allowed only when transitioning to RBAC /// /// - /// For more information, see [Authenticating Users with AUTH](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/auth.html) + /// For more information, see [Authenticating Users with AUTH](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth.html) public var authTokenUpdateStrategy: ElastiCacheClientTypes.AuthTokenUpdateStrategyType? /// If you are running Valkey 7.2 or Redis OSS engine version 6.0 or later, set this parameter to yes to opt-in to the next auto minor version upgrade campaign. This parameter is disabled for previous versions. public var autoMinorVersionUpgrade: Swift.Bool? @@ -8123,7 +8123,7 @@ public struct ModifyCacheClusterInput: Swift.Sendable { public var cacheSecurityGroupNames: [Swift.String]? /// Modifies the engine listed in a cluster message. The options are redis, memcached or valkey. public var engine: Swift.String? - /// The upgraded version of the cache engine to be run on the cache nodes. Important: You can upgrade to a newer engine version (see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster and create it anew with the earlier engine version. + /// The upgraded version of the cache engine to be run on the cache nodes. Important: You can upgrade to a newer engine version (see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/SelectEngine.html#VersionManagement)), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster and create it anew with the earlier engine version. public var engineVersion: Swift.String? /// The network type you choose when modifying a cluster, either ipv4 | ipv6. IPv6 is supported for workloads using Valkey 7.2 and above, Redis OSS engine version 6.2 and above or Memcached engine version 1.6.6 and above on all instances built on the [Nitro system](http://aws.amazon.com/ec2/nitro/). public var ipDiscovery: ElastiCacheClientTypes.IpDiscovery? @@ -8138,7 +8138,7 @@ public struct ModifyCacheClusterInput: Swift.Sendable { /// * Scenario 3: You want to cancel all pending operations. Specify NumCacheNodes=3 to cancel all pending operations. /// /// - /// The Availability Zone placement of nodes pending creation cannot be modified. If you wish to cancel any nodes pending creation, add 0 nodes by setting NumCacheNodes to the number of current nodes. If cross-az is specified, existing Memcached nodes remain in their current Availability Zone. Only newly created nodes can be located in different Availability Zones. For guidance on how to move existing Memcached nodes to different Availability Zones, see the Availability Zone Considerations section of [Cache Node Considerations for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/CacheNodes.SupportedTypes.html). Impact of new add/remove requests upon pending requests + /// The Availability Zone placement of nodes pending creation cannot be modified. If you wish to cancel any nodes pending creation, add 0 nodes by setting NumCacheNodes to the number of current nodes. If cross-az is specified, existing Memcached nodes remain in their current Availability Zone. Only newly created nodes can be located in different Availability Zones. For guidance on how to move existing Memcached nodes to different Availability Zones, see the Availability Zone Considerations section of [Cache Node Considerations for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html). Impact of new add/remove requests upon pending requests /// /// * Scenario-1 /// @@ -8473,7 +8473,7 @@ public struct ModifyReplicationGroupInput: Swift.Sendable { /// * DELETE - allowed only when transitioning to RBAC /// /// - /// For more information, see [Authenticating Users with AUTH](http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/auth.html) + /// For more information, see [Authenticating Users with AUTH](http://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth.html) public var authTokenUpdateStrategy: ElastiCacheClientTypes.AuthTokenUpdateStrategyType? /// If you are running Valkey or Redis OSS engine version 6.0 or later, set this parameter to yes if you want to opt-in to the next auto minor version upgrade campaign. This parameter is disabled for previous versions. public var autoMinorVersionUpgrade: Swift.Bool? @@ -8489,7 +8489,7 @@ public struct ModifyReplicationGroupInput: Swift.Sendable { public var clusterMode: ElastiCacheClientTypes.ClusterMode? /// Modifies the engine listed in a replication group message. The options are redis, memcached or valkey. public var engine: Swift.String? - /// The upgraded version of the cache engine to be run on the clusters in the replication group. Important: You can upgrade to a newer engine version (see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing replication group and create it anew with the earlier engine version. + /// The upgraded version of the cache engine to be run on the clusters in the replication group. Important: You can upgrade to a newer engine version (see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/SelectEngine.html#VersionManagement)), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing replication group and create it anew with the earlier engine version. public var engineVersion: Swift.String? /// The network type you choose when modifying a cluster, either ipv4 | ipv6. IPv6 is supported for workloads using Valkey 7.2 and above, Redis OSS engine version 6.2 and above or Memcached engine version 1.6.6 and above on all instances built on the [Nitro system](http://aws.amazon.com/ec2/nitro/). public var ipDiscovery: ElastiCacheClientTypes.IpDiscovery? @@ -8743,6 +8743,8 @@ public struct ModifyUserInput: Swift.Sendable { public var appendAccessString: Swift.String? /// Specifies how to authenticate the user. public var authenticationMode: ElastiCacheClientTypes.AuthenticationMode? + /// The engine for a specific user. + public var engine: Swift.String? /// Indicates no password is required for the user. public var noPasswordRequired: Swift.Bool? /// The passwords belonging to the user. You are allowed up to two. @@ -8755,6 +8757,7 @@ public struct ModifyUserInput: Swift.Sendable { accessString: Swift.String? = nil, appendAccessString: Swift.String? = nil, authenticationMode: ElastiCacheClientTypes.AuthenticationMode? = nil, + engine: Swift.String? = nil, noPasswordRequired: Swift.Bool? = nil, passwords: [Swift.String]? = nil, userId: Swift.String? = nil @@ -8763,6 +8766,7 @@ public struct ModifyUserInput: Swift.Sendable { self.accessString = accessString self.appendAccessString = appendAccessString self.authenticationMode = authenticationMode + self.engine = engine self.noPasswordRequired = noPasswordRequired self.passwords = passwords self.userId = userId @@ -8814,6 +8818,8 @@ public struct ModifyUserOutput: Swift.Sendable { } public struct ModifyUserGroupInput: Swift.Sendable { + /// The engine for a user group. + public var engine: Swift.String? /// The ID of the user group. /// This member is required. public var userGroupId: Swift.String? @@ -8823,11 +8829,13 @@ public struct ModifyUserGroupInput: Swift.Sendable { public var userIdsToRemove: [Swift.String]? public init( + engine: Swift.String? = nil, userGroupId: Swift.String? = nil, userIdsToAdd: [Swift.String]? = nil, userIdsToRemove: [Swift.String]? = nil ) { + self.engine = engine self.userGroupId = userGroupId self.userIdsToAdd = userIdsToAdd self.userIdsToRemove = userIdsToRemove @@ -10860,6 +10868,7 @@ extension ModifyUserInput { try writer["AccessString"].write(value.accessString) try writer["AppendAccessString"].write(value.appendAccessString) try writer["AuthenticationMode"].write(value.authenticationMode, with: ElastiCacheClientTypes.AuthenticationMode.write(value:to:)) + try writer["Engine"].write(value.engine) try writer["NoPasswordRequired"].write(value.noPasswordRequired) try writer["Passwords"].writeList(value.passwords, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["UserId"].write(value.userId) @@ -10872,6 +10881,7 @@ extension ModifyUserGroupInput { static func write(value: ModifyUserGroupInput?, to writer: SmithyFormURL.Writer) throws { guard let value else { return } + try writer["Engine"].write(value.engine) try writer["UserGroupId"].write(value.userGroupId) try writer["UserIdsToAdd"].writeList(value.userIdsToAdd, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["UserIdsToRemove"].writeList(value.userIdsToRemove, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) diff --git a/Sources/Services/AWSElasticBeanstalk/Sources/AWSElasticBeanstalk/ElasticBeanstalkClient.swift b/Sources/Services/AWSElasticBeanstalk/Sources/AWSElasticBeanstalk/ElasticBeanstalkClient.swift index 55dd5ca9c25..208de84b401 100644 --- a/Sources/Services/AWSElasticBeanstalk/Sources/AWSElasticBeanstalk/ElasticBeanstalkClient.swift +++ b/Sources/Services/AWSElasticBeanstalk/Sources/AWSElasticBeanstalk/ElasticBeanstalkClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ElasticBeanstalkClient: ClientRuntime.Client { public static let clientName = "ElasticBeanstalkClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ElasticBeanstalkClient.ElasticBeanstalkClientConfiguration let serviceName = "Elastic Beanstalk" diff --git a/Sources/Services/AWSElasticInference/Sources/AWSElasticInference/ElasticInferenceClient.swift b/Sources/Services/AWSElasticInference/Sources/AWSElasticInference/ElasticInferenceClient.swift index 651189db318..66a1b3b5e60 100644 --- a/Sources/Services/AWSElasticInference/Sources/AWSElasticInference/ElasticInferenceClient.swift +++ b/Sources/Services/AWSElasticInference/Sources/AWSElasticInference/ElasticInferenceClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ElasticInferenceClient: ClientRuntime.Client { public static let clientName = "ElasticInferenceClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ElasticInferenceClient.ElasticInferenceClientConfiguration let serviceName = "Elastic Inference" diff --git a/Sources/Services/AWSElasticLoadBalancing/Sources/AWSElasticLoadBalancing/ElasticLoadBalancingClient.swift b/Sources/Services/AWSElasticLoadBalancing/Sources/AWSElasticLoadBalancing/ElasticLoadBalancingClient.swift index fbdb843e03f..df3527d6528 100644 --- a/Sources/Services/AWSElasticLoadBalancing/Sources/AWSElasticLoadBalancing/ElasticLoadBalancingClient.swift +++ b/Sources/Services/AWSElasticLoadBalancing/Sources/AWSElasticLoadBalancing/ElasticLoadBalancingClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ElasticLoadBalancingClient: ClientRuntime.Client { public static let clientName = "ElasticLoadBalancingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ElasticLoadBalancingClient.ElasticLoadBalancingClientConfiguration let serviceName = "Elastic Load Balancing" diff --git a/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2Client.swift b/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2Client.swift index 54e73944fa0..aca4f9112f9 100644 --- a/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2Client.swift +++ b/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2Client.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ElasticLoadBalancingv2Client: ClientRuntime.Client { public static let clientName = "ElasticLoadBalancingv2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ElasticLoadBalancingv2Client.ElasticLoadBalancingv2ClientConfiguration let serviceName = "Elastic Load Balancing v2" diff --git a/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/Models.swift b/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/Models.swift index b3fc488b475..b9f9f76d15c 100644 --- a/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/Models.swift +++ b/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/Models.swift @@ -3753,6 +3753,47 @@ extension ElasticLoadBalancingv2ClientTypes { /// The name of the attribute. The following attribute is supported by Network Load Balancers, and Gateway Load Balancers. /// /// * tcp.idle_timeout.seconds - The tcp idle timeout value, in seconds. The valid range is 60-6000 seconds. The default is 350 seconds. + /// + /// + /// The following attributes are only supported by Application Load Balancers. + /// + /// * routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert-Serial-Number HTTP request header. + /// + /// * routing.http.request.x_amzn_mtls_clientcert_issuer.header_name - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert-Issuer HTTP request header. + /// + /// * routing.http.request.x_amzn_mtls_clientcert_subject.header_name - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert-Subject HTTP request header. + /// + /// * routing.http.request.x_amzn_mtls_clientcert_validity.header_name - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert-Validity HTTP request header. + /// + /// * routing.http.request.x_amzn_mtls_clientcert_leaf.header_name - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert-Leaf HTTP request header. + /// + /// * routing.http.request.x_amzn_mtls_clientcert.header_name - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert HTTP request header. + /// + /// * routing.http.request.x_amzn_tls_version.header_name - Enables you to modify the header name of the X-Amzn-Tls-Version HTTP request header. + /// + /// * routing.http.request.x_amzn_tls_cipher_suite.header_name - Enables you to modify the header name of the X-Amzn-Tls-Cipher-Suite HTTP request header. + /// + /// * routing.http.response.server.enabled - Enables you to allow or remove the HTTP response server header. + /// + /// * routing.http.response.strict_transport_security.header_value - Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. + /// + /// * routing.http.response.access_control_allow_origin.header_value - Specifies which origins are allowed to access the server. + /// + /// * routing.http.response.access_control_allow_methods.header_value - Returns which HTTP methods are allowed when accessing the server from a different origin. + /// + /// * routing.http.response.access_control_allow_headers.header_value - Specifies which headers can be used during the request. + /// + /// * routing.http.response.access_control_allow_credentials.header_value - Indicates whether the browser should include credentials such as cookies or authentication when making requests. + /// + /// * routing.http.response.access_control_expose_headers.header_value - Returns which headers the browser can expose to the requesting client. + /// + /// * routing.http.response.access_control_max_age.header_value - Specifies how long the results of a preflight request can be cached, in seconds. + /// + /// * routing.http.response.content_security_policy.header_value - Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. + /// + /// * routing.http.response.x_content_type_options.header_value - Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. + /// + /// * routing.http.response.x_frame_options.header_value - Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. public var key: Swift.String? /// The value of the attribute. public var value: Swift.String? @@ -3891,6 +3932,8 @@ extension ElasticLoadBalancingv2ClientTypes { /// /// * ipv6.deny_all_igw_traffic - Blocks internet gateway (IGW) access to the load balancer. It is set to false for internet-facing load balancers and true for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway. /// + /// * zonal_shift.config.enabled - Indicates whether zonal shift is enabled. The possible values are true and false. The default is false. + /// /// /// The following attributes are supported by only Application Load Balancers: /// @@ -3933,8 +3976,6 @@ extension ElasticLoadBalancingv2ClientTypes { /// The following attributes are supported by only Network Load Balancers: /// /// * dns_record.client_routing_policy - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are availability_zone_affinity with 100 percent zonal affinity, partial_availability_zone_affinity with 85 percent zonal affinity, and any_availability_zone with 0 percent zonal affinity. - /// - /// * zonal_shift.config.enabled - Indicates whether zonal shift is enabled. The possible values are true and false. The default is false. public var key: Swift.String? /// The value of the attribute. public var value: Swift.String? diff --git a/Sources/Services/AWSElasticTranscoder/Sources/AWSElasticTranscoder/ElasticTranscoderClient.swift b/Sources/Services/AWSElasticTranscoder/Sources/AWSElasticTranscoder/ElasticTranscoderClient.swift index 66e003c4abd..17c0fa1304c 100644 --- a/Sources/Services/AWSElasticTranscoder/Sources/AWSElasticTranscoder/ElasticTranscoderClient.swift +++ b/Sources/Services/AWSElasticTranscoder/Sources/AWSElasticTranscoder/ElasticTranscoderClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ElasticTranscoderClient: ClientRuntime.Client { public static let clientName = "ElasticTranscoderClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ElasticTranscoderClient.ElasticTranscoderClientConfiguration let serviceName = "Elastic Transcoder" diff --git a/Sources/Services/AWSElasticsearchService/Sources/AWSElasticsearchService/ElasticsearchClient.swift b/Sources/Services/AWSElasticsearchService/Sources/AWSElasticsearchService/ElasticsearchClient.swift index 1d8c59d6c9b..77b4f579fef 100644 --- a/Sources/Services/AWSElasticsearchService/Sources/AWSElasticsearchService/ElasticsearchClient.swift +++ b/Sources/Services/AWSElasticsearchService/Sources/AWSElasticsearchService/ElasticsearchClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ElasticsearchClient: ClientRuntime.Client { public static let clientName = "ElasticsearchClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ElasticsearchClient.ElasticsearchClientConfiguration let serviceName = "Elasticsearch" diff --git a/Sources/Services/AWSEntityResolution/Sources/AWSEntityResolution/EntityResolutionClient.swift b/Sources/Services/AWSEntityResolution/Sources/AWSEntityResolution/EntityResolutionClient.swift index d94eff8c316..996b91a75b6 100644 --- a/Sources/Services/AWSEntityResolution/Sources/AWSEntityResolution/EntityResolutionClient.swift +++ b/Sources/Services/AWSEntityResolution/Sources/AWSEntityResolution/EntityResolutionClient.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EntityResolutionClient: ClientRuntime.Client { public static let clientName = "EntityResolutionClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EntityResolutionClient.EntityResolutionClientConfiguration let serviceName = "EntityResolution" diff --git a/Sources/Services/AWSEventBridge/Sources/AWSEventBridge/EventBridgeClient.swift b/Sources/Services/AWSEventBridge/Sources/AWSEventBridge/EventBridgeClient.swift index 7c3eb29aa6a..8754d7e613d 100644 --- a/Sources/Services/AWSEventBridge/Sources/AWSEventBridge/EventBridgeClient.swift +++ b/Sources/Services/AWSEventBridge/Sources/AWSEventBridge/EventBridgeClient.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EventBridgeClient: ClientRuntime.Client { public static let clientName = "EventBridgeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EventBridgeClient.EventBridgeClientConfiguration let serviceName = "EventBridge" diff --git a/Sources/Services/AWSEvidently/Sources/AWSEvidently/EvidentlyClient.swift b/Sources/Services/AWSEvidently/Sources/AWSEvidently/EvidentlyClient.swift index fd6595278de..297bbf9d231 100644 --- a/Sources/Services/AWSEvidently/Sources/AWSEvidently/EvidentlyClient.swift +++ b/Sources/Services/AWSEvidently/Sources/AWSEvidently/EvidentlyClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class EvidentlyClient: ClientRuntime.Client { public static let clientName = "EvidentlyClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: EvidentlyClient.EvidentlyClientConfiguration let serviceName = "Evidently" diff --git a/Sources/Services/AWSFMS/Sources/AWSFMS/FMSClient.swift b/Sources/Services/AWSFMS/Sources/AWSFMS/FMSClient.swift index 7238f1cac14..c0ba1dee054 100644 --- a/Sources/Services/AWSFMS/Sources/AWSFMS/FMSClient.swift +++ b/Sources/Services/AWSFMS/Sources/AWSFMS/FMSClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class FMSClient: ClientRuntime.Client { public static let clientName = "FMSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: FMSClient.FMSClientConfiguration let serviceName = "FMS" diff --git a/Sources/Services/AWSFSx/Sources/AWSFSx/FSxClient.swift b/Sources/Services/AWSFSx/Sources/AWSFSx/FSxClient.swift index 5594eea203e..65c712fdb83 100644 --- a/Sources/Services/AWSFSx/Sources/AWSFSx/FSxClient.swift +++ b/Sources/Services/AWSFSx/Sources/AWSFSx/FSxClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class FSxClient: ClientRuntime.Client { public static let clientName = "FSxClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: FSxClient.FSxClientConfiguration let serviceName = "FSx" diff --git a/Sources/Services/AWSFinspace/Sources/AWSFinspace/FinspaceClient.swift b/Sources/Services/AWSFinspace/Sources/AWSFinspace/FinspaceClient.swift index 8ea933f70b0..b27401d4281 100644 --- a/Sources/Services/AWSFinspace/Sources/AWSFinspace/FinspaceClient.swift +++ b/Sources/Services/AWSFinspace/Sources/AWSFinspace/FinspaceClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class FinspaceClient: ClientRuntime.Client { public static let clientName = "FinspaceClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: FinspaceClient.FinspaceClientConfiguration let serviceName = "finspace" diff --git a/Sources/Services/AWSFinspacedata/Sources/AWSFinspacedata/FinspacedataClient.swift b/Sources/Services/AWSFinspacedata/Sources/AWSFinspacedata/FinspacedataClient.swift index 0a947e6e85e..d9f8cc06bb1 100644 --- a/Sources/Services/AWSFinspacedata/Sources/AWSFinspacedata/FinspacedataClient.swift +++ b/Sources/Services/AWSFinspacedata/Sources/AWSFinspacedata/FinspacedataClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class FinspacedataClient: ClientRuntime.Client { public static let clientName = "FinspacedataClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: FinspacedataClient.FinspacedataClientConfiguration let serviceName = "finspace data" diff --git a/Sources/Services/AWSFirehose/Sources/AWSFirehose/FirehoseClient.swift b/Sources/Services/AWSFirehose/Sources/AWSFirehose/FirehoseClient.swift index b2e18b6ae9e..3612f0c7882 100644 --- a/Sources/Services/AWSFirehose/Sources/AWSFirehose/FirehoseClient.swift +++ b/Sources/Services/AWSFirehose/Sources/AWSFirehose/FirehoseClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class FirehoseClient: ClientRuntime.Client { public static let clientName = "FirehoseClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: FirehoseClient.FirehoseClientConfiguration let serviceName = "Firehose" diff --git a/Sources/Services/AWSFis/Sources/AWSFis/FisClient.swift b/Sources/Services/AWSFis/Sources/AWSFis/FisClient.swift index e550e92f4a5..794729553c1 100644 --- a/Sources/Services/AWSFis/Sources/AWSFis/FisClient.swift +++ b/Sources/Services/AWSFis/Sources/AWSFis/FisClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class FisClient: ClientRuntime.Client { public static let clientName = "FisClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: FisClient.FisClientConfiguration let serviceName = "fis" diff --git a/Sources/Services/AWSForecast/Sources/AWSForecast/ForecastClient.swift b/Sources/Services/AWSForecast/Sources/AWSForecast/ForecastClient.swift index 6901027939a..7b1fba76b21 100644 --- a/Sources/Services/AWSForecast/Sources/AWSForecast/ForecastClient.swift +++ b/Sources/Services/AWSForecast/Sources/AWSForecast/ForecastClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ForecastClient: ClientRuntime.Client { public static let clientName = "ForecastClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ForecastClient.ForecastClientConfiguration let serviceName = "forecast" diff --git a/Sources/Services/AWSForecastquery/Sources/AWSForecastquery/ForecastqueryClient.swift b/Sources/Services/AWSForecastquery/Sources/AWSForecastquery/ForecastqueryClient.swift index b2a985df863..245bc690d31 100644 --- a/Sources/Services/AWSForecastquery/Sources/AWSForecastquery/ForecastqueryClient.swift +++ b/Sources/Services/AWSForecastquery/Sources/AWSForecastquery/ForecastqueryClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ForecastqueryClient: ClientRuntime.Client { public static let clientName = "ForecastqueryClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ForecastqueryClient.ForecastqueryClientConfiguration let serviceName = "forecastquery" diff --git a/Sources/Services/AWSFraudDetector/Sources/AWSFraudDetector/FraudDetectorClient.swift b/Sources/Services/AWSFraudDetector/Sources/AWSFraudDetector/FraudDetectorClient.swift index 50b0d05d1c1..41d2ee5ba18 100644 --- a/Sources/Services/AWSFraudDetector/Sources/AWSFraudDetector/FraudDetectorClient.swift +++ b/Sources/Services/AWSFraudDetector/Sources/AWSFraudDetector/FraudDetectorClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class FraudDetectorClient: ClientRuntime.Client { public static let clientName = "FraudDetectorClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: FraudDetectorClient.FraudDetectorClientConfiguration let serviceName = "FraudDetector" diff --git a/Sources/Services/AWSFreeTier/Sources/AWSFreeTier/FreeTierClient.swift b/Sources/Services/AWSFreeTier/Sources/AWSFreeTier/FreeTierClient.swift index 2b3f520a4de..f117c71e828 100644 --- a/Sources/Services/AWSFreeTier/Sources/AWSFreeTier/FreeTierClient.swift +++ b/Sources/Services/AWSFreeTier/Sources/AWSFreeTier/FreeTierClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class FreeTierClient: ClientRuntime.Client { public static let clientName = "FreeTierClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: FreeTierClient.FreeTierClientConfiguration let serviceName = "FreeTier" diff --git a/Sources/Services/AWSGameLift/Sources/AWSGameLift/GameLiftClient.swift b/Sources/Services/AWSGameLift/Sources/AWSGameLift/GameLiftClient.swift index bbf0b67cb89..bad73800c27 100644 --- a/Sources/Services/AWSGameLift/Sources/AWSGameLift/GameLiftClient.swift +++ b/Sources/Services/AWSGameLift/Sources/AWSGameLift/GameLiftClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GameLiftClient: ClientRuntime.Client { public static let clientName = "GameLiftClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GameLiftClient.GameLiftClientConfiguration let serviceName = "GameLift" diff --git a/Sources/Services/AWSGeoMaps/Sources/AWSGeoMaps/GeoMapsClient.swift b/Sources/Services/AWSGeoMaps/Sources/AWSGeoMaps/GeoMapsClient.swift index e5d3a6a22d9..beaa674056a 100644 --- a/Sources/Services/AWSGeoMaps/Sources/AWSGeoMaps/GeoMapsClient.swift +++ b/Sources/Services/AWSGeoMaps/Sources/AWSGeoMaps/GeoMapsClient.swift @@ -59,7 +59,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GeoMapsClient: ClientRuntime.Client { public static let clientName = "GeoMapsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GeoMapsClient.GeoMapsClientConfiguration let serviceName = "Geo Maps" diff --git a/Sources/Services/AWSGeoPlaces/Sources/AWSGeoPlaces/GeoPlacesClient.swift b/Sources/Services/AWSGeoPlaces/Sources/AWSGeoPlaces/GeoPlacesClient.swift index 2ef10f75147..2b6f96c5c35 100644 --- a/Sources/Services/AWSGeoPlaces/Sources/AWSGeoPlaces/GeoPlacesClient.swift +++ b/Sources/Services/AWSGeoPlaces/Sources/AWSGeoPlaces/GeoPlacesClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GeoPlacesClient: ClientRuntime.Client { public static let clientName = "GeoPlacesClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GeoPlacesClient.GeoPlacesClientConfiguration let serviceName = "Geo Places" diff --git a/Sources/Services/AWSGeoRoutes/Sources/AWSGeoRoutes/GeoRoutesClient.swift b/Sources/Services/AWSGeoRoutes/Sources/AWSGeoRoutes/GeoRoutesClient.swift index 718606a4b62..79071ee80e2 100644 --- a/Sources/Services/AWSGeoRoutes/Sources/AWSGeoRoutes/GeoRoutesClient.swift +++ b/Sources/Services/AWSGeoRoutes/Sources/AWSGeoRoutes/GeoRoutesClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GeoRoutesClient: ClientRuntime.Client { public static let clientName = "GeoRoutesClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GeoRoutesClient.GeoRoutesClientConfiguration let serviceName = "Geo Routes" diff --git a/Sources/Services/AWSGlacier/Sources/AWSGlacier/GlacierClient.swift b/Sources/Services/AWSGlacier/Sources/AWSGlacier/GlacierClient.swift index 9e7c337cce4..7287682f4b7 100644 --- a/Sources/Services/AWSGlacier/Sources/AWSGlacier/GlacierClient.swift +++ b/Sources/Services/AWSGlacier/Sources/AWSGlacier/GlacierClient.swift @@ -70,7 +70,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GlacierClient: ClientRuntime.Client { public static let clientName = "GlacierClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GlacierClient.GlacierClientConfiguration let serviceName = "Glacier" diff --git a/Sources/Services/AWSGlobalAccelerator/Sources/AWSGlobalAccelerator/GlobalAcceleratorClient.swift b/Sources/Services/AWSGlobalAccelerator/Sources/AWSGlobalAccelerator/GlobalAcceleratorClient.swift index b260123181c..fad1dffc881 100644 --- a/Sources/Services/AWSGlobalAccelerator/Sources/AWSGlobalAccelerator/GlobalAcceleratorClient.swift +++ b/Sources/Services/AWSGlobalAccelerator/Sources/AWSGlobalAccelerator/GlobalAcceleratorClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GlobalAcceleratorClient: ClientRuntime.Client { public static let clientName = "GlobalAcceleratorClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GlobalAcceleratorClient.GlobalAcceleratorClientConfiguration let serviceName = "Global Accelerator" diff --git a/Sources/Services/AWSGlue/Sources/AWSGlue/GlueClient.swift b/Sources/Services/AWSGlue/Sources/AWSGlue/GlueClient.swift index 7521aaf92ce..c42fea109af 100644 --- a/Sources/Services/AWSGlue/Sources/AWSGlue/GlueClient.swift +++ b/Sources/Services/AWSGlue/Sources/AWSGlue/GlueClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GlueClient: ClientRuntime.Client { public static let clientName = "GlueClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GlueClient.GlueClientConfiguration let serviceName = "Glue" diff --git a/Sources/Services/AWSGrafana/Sources/AWSGrafana/GrafanaClient.swift b/Sources/Services/AWSGrafana/Sources/AWSGrafana/GrafanaClient.swift index 9df52580d87..1462de2c958 100644 --- a/Sources/Services/AWSGrafana/Sources/AWSGrafana/GrafanaClient.swift +++ b/Sources/Services/AWSGrafana/Sources/AWSGrafana/GrafanaClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GrafanaClient: ClientRuntime.Client { public static let clientName = "GrafanaClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GrafanaClient.GrafanaClientConfiguration let serviceName = "grafana" diff --git a/Sources/Services/AWSGreengrass/Sources/AWSGreengrass/GreengrassClient.swift b/Sources/Services/AWSGreengrass/Sources/AWSGreengrass/GreengrassClient.swift index 90f83f312fa..f2048dedd20 100644 --- a/Sources/Services/AWSGreengrass/Sources/AWSGreengrass/GreengrassClient.swift +++ b/Sources/Services/AWSGreengrass/Sources/AWSGreengrass/GreengrassClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GreengrassClient: ClientRuntime.Client { public static let clientName = "GreengrassClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GreengrassClient.GreengrassClientConfiguration let serviceName = "Greengrass" diff --git a/Sources/Services/AWSGreengrassV2/Sources/AWSGreengrassV2/GreengrassV2Client.swift b/Sources/Services/AWSGreengrassV2/Sources/AWSGreengrassV2/GreengrassV2Client.swift index fdb447ba2e4..db11dd02e22 100644 --- a/Sources/Services/AWSGreengrassV2/Sources/AWSGreengrassV2/GreengrassV2Client.swift +++ b/Sources/Services/AWSGreengrassV2/Sources/AWSGreengrassV2/GreengrassV2Client.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GreengrassV2Client: ClientRuntime.Client { public static let clientName = "GreengrassV2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GreengrassV2Client.GreengrassV2ClientConfiguration let serviceName = "GreengrassV2" diff --git a/Sources/Services/AWSGroundStation/Sources/AWSGroundStation/GroundStationClient.swift b/Sources/Services/AWSGroundStation/Sources/AWSGroundStation/GroundStationClient.swift index c3edef85c0b..253d580e2f0 100644 --- a/Sources/Services/AWSGroundStation/Sources/AWSGroundStation/GroundStationClient.swift +++ b/Sources/Services/AWSGroundStation/Sources/AWSGroundStation/GroundStationClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GroundStationClient: ClientRuntime.Client { public static let clientName = "GroundStationClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GroundStationClient.GroundStationClientConfiguration let serviceName = "GroundStation" diff --git a/Sources/Services/AWSGuardDuty/Sources/AWSGuardDuty/GuardDutyClient.swift b/Sources/Services/AWSGuardDuty/Sources/AWSGuardDuty/GuardDutyClient.swift index 3abe471ae7f..75dff29f31f 100644 --- a/Sources/Services/AWSGuardDuty/Sources/AWSGuardDuty/GuardDutyClient.swift +++ b/Sources/Services/AWSGuardDuty/Sources/AWSGuardDuty/GuardDutyClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class GuardDutyClient: ClientRuntime.Client { public static let clientName = "GuardDutyClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: GuardDutyClient.GuardDutyClientConfiguration let serviceName = "GuardDuty" diff --git a/Sources/Services/AWSHealth/Sources/AWSHealth/HealthClient.swift b/Sources/Services/AWSHealth/Sources/AWSHealth/HealthClient.swift index 46a713fc8d1..59a746b6831 100644 --- a/Sources/Services/AWSHealth/Sources/AWSHealth/HealthClient.swift +++ b/Sources/Services/AWSHealth/Sources/AWSHealth/HealthClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class HealthClient: ClientRuntime.Client { public static let clientName = "HealthClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: HealthClient.HealthClientConfiguration let serviceName = "Health" @@ -266,7 +266,7 @@ extension HealthClient { /// Performs the `DescribeAffectedEntities` operation on the `AWSHealth_20160804` service. /// - /// 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. + /// 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 Services 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. /// /// * This API operation uses pagination. Specify the nextToken parameter in the next request to return more results. /// @@ -341,7 +341,7 @@ extension HealthClient { /// Performs the `DescribeAffectedEntitiesForOrganization` operation on the `AWSHealth_20160804` service. /// - /// 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](https://docs.aws.amazon.com/health/latest/APIReference/API_EnableHealthServiceAccessForOrganization.html) operation from your organization's management account. + /// 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 Services 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](https://docs.aws.amazon.com/health/latest/APIReference/API_EnableHealthServiceAccessForOrganization.html) operation from your organization's management account. /// /// * This API operation uses pagination. Specify the nextToken parameter in the next request to return more results. /// @@ -763,7 +763,7 @@ extension HealthClient { /// Performs the `DescribeEventTypes` operation on the `AWSHealth_20160804` service. /// - /// Returns the event types that meet the specified filter criteria. You can use this API operation to find information about the Health event, such as the category, Amazon Web Service, and event code. The metadata for each event appears in the [EventType](https://docs.aws.amazon.com/health/latest/APIReference/API_EventType.html) object. If you don't specify a filter criteria, the API operation returns all event types, in no particular order. This API operation uses pagination. Specify the nextToken parameter in the next request to return more results. + /// Returns the event types that meet the specified filter criteria. You can use this API operation to find information about the Health event, such as the category, Amazon Web Services service, and event code. The metadata for each event appears in the [EventType](https://docs.aws.amazon.com/health/latest/APIReference/API_EventType.html) object. If you don't specify a filter criteria, the API operation returns all event types, in no particular order. This API operation uses pagination. Specify the nextToken parameter in the next request to return more results. /// /// - Parameter DescribeEventTypesInput : [no documentation found] /// diff --git a/Sources/Services/AWSHealth/Sources/AWSHealth/Models.swift b/Sources/Services/AWSHealth/Sources/AWSHealth/Models.swift index b611c4bbb85..01f9e38048d 100644 --- a/Sources/Services/AWSHealth/Sources/AWSHealth/Models.swift +++ b/Sources/Services/AWSHealth/Sources/AWSHealth/Models.swift @@ -123,6 +123,8 @@ extension HealthClientTypes { public var awsAccountId: Swift.String? /// The unique identifier for the entity. Format: arn:aws:health:entity-region:aws-account:entity/entity-id . Example: arn:aws:health:us-east-1:111222333444:entity/AVh5GGT7ul1arKr1sE1K public var entityArn: Swift.String? + /// Additional metadata about the affected entity. + public var entityMetadata: [Swift.String: Swift.String]? /// The URL of the affected entity. public var entityUrl: Swift.String? /// The ID of the affected entity. @@ -139,6 +141,7 @@ extension HealthClientTypes { public init( awsAccountId: Swift.String? = nil, entityArn: Swift.String? = nil, + entityMetadata: [Swift.String: Swift.String]? = nil, entityUrl: Swift.String? = nil, entityValue: Swift.String? = nil, eventArn: Swift.String? = nil, @@ -149,6 +152,7 @@ extension HealthClientTypes { { self.awsAccountId = awsAccountId self.entityArn = entityArn + self.entityMetadata = entityMetadata self.entityUrl = entityUrl self.entityValue = entityValue self.eventArn = eventArn @@ -239,7 +243,7 @@ extension HealthClientTypes { public struct DescribeAffectedAccountsForOrganizationOutput: Swift.Sendable { /// A JSON set of elements of the affected accounts. public var affectedAccounts: [Swift.String]? - /// This parameter specifies if the Health event is a public Amazon Web Service event or an account-specific event. + /// This parameter specifies if the Health event is a public Amazon Web Services service event or an account-specific event. /// /// * If the eventScopeCode value is PUBLIC, then the affectedAccounts value is always empty. /// @@ -729,7 +733,7 @@ extension HealthClientTypes { public var lastUpdatedTimes: [HealthClientTypes.DateTimeRange]? /// A list of Amazon Web Services Regions. public var regions: [Swift.String]? - /// The Amazon Web Services associated with the event. For example, EC2, RDS. + /// The Amazon Web Services services associated with the event. For example, EC2, RDS. public var services: [Swift.String]? /// A list of dates and times that the event began. public var startTimes: [HealthClientTypes.DateTimeRange]? @@ -888,7 +892,7 @@ extension HealthClientTypes { public var availabilityZone: Swift.String? /// The date and time that the event ended. public var endTime: Foundation.Date? - /// This parameter specifies if the Health event is a public Amazon Web Service event or an account-specific event. + /// This parameter specifies if the Health event is a public Amazon Web Services service event or an account-specific event. /// /// * If the eventScopeCode value is PUBLIC, then the affectedAccounts value is always empty. /// @@ -904,7 +908,7 @@ extension HealthClientTypes { public var lastUpdatedTime: Foundation.Date? /// The Amazon Web Services Region name of the event. public var region: Swift.String? - /// The Amazon Web Service that is affected by the event. For example, EC2, RDS. + /// The Amazon Web Services service that is affected by the event. For example, EC2, RDS. public var service: Swift.String? /// The date and time that the event began. public var startTime: Foundation.Date? @@ -1160,7 +1164,7 @@ extension HealthClientTypes { public var lastUpdatedTime: HealthClientTypes.DateTimeRange? /// A list of Amazon Web Services Regions. public var regions: [Swift.String]? - /// The Amazon Web Services associated with the event. For example, EC2, RDS. + /// The Amazon Web Services services associated with the event. For example, EC2, RDS. public var services: [Swift.String]? /// A range of dates and times that is used by the [EventFilter](https://docs.aws.amazon.com/health/latest/APIReference/API_EventFilter.html) and [EntityFilter](https://docs.aws.amazon.com/health/latest/APIReference/API_EntityFilter.html) objects. If from is set and to is set: match items where the timestamp (startTime, endTime, or lastUpdatedTime) is between from and to inclusive. If from is set and to is not set: match items where the timestamp value is equal to or after from. If from is not set and to is set: match items where the timestamp value is equal to or before to. public var startTime: HealthClientTypes.DateTimeRange? @@ -1226,7 +1230,7 @@ extension HealthClientTypes { public var arn: Swift.String? /// The date and time that the event ended. public var endTime: Foundation.Date? - /// This parameter specifies if the Health event is a public Amazon Web Service event or an account-specific event. + /// This parameter specifies if the Health event is a public Amazon Web Services service event or an account-specific event. /// /// * If the eventScopeCode value is PUBLIC, then the affectedAccounts value is always empty. /// @@ -1242,7 +1246,7 @@ extension HealthClientTypes { public var lastUpdatedTime: Foundation.Date? /// The Amazon Web Services Region name of the event. public var region: Swift.String? - /// The Amazon Web Service that is affected by the event, such as EC2 and RDS. + /// The Amazon Web Services service that is affected by the event, such as EC2 and RDS. public var service: Swift.String? /// The date and time that the event began. public var startTime: Foundation.Date? @@ -1300,7 +1304,7 @@ extension HealthClientTypes { public var eventTypeCategories: [HealthClientTypes.EventTypeCategory]? /// A list of event type codes. public var eventTypeCodes: [Swift.String]? - /// The Amazon Web Services associated with the event. For example, EC2, RDS. + /// The Amazon Web Services services associated with the event. For example, EC2, RDS. public var services: [Swift.String]? public init( @@ -1348,7 +1352,7 @@ extension HealthClientTypes { public var category: HealthClientTypes.EventTypeCategory? /// The unique identifier for the event type. The format is AWS_SERVICE_DESCRIPTION ; for example, AWS_EC2_SYSTEM_MAINTENANCE_EVENT. public var code: Swift.String? - /// The Amazon Web Service that is affected by the event. For example, EC2, RDS. + /// The Amazon Web Services service that is affected by the event. For example, EC2, RDS. public var service: Swift.String? public init( @@ -2069,6 +2073,7 @@ extension HealthClientTypes.AffectedEntity { value.lastUpdatedTime = try reader["lastUpdatedTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.statusCode = try reader["statusCode"].readIfPresent() value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.entityMetadata = try reader["entityMetadata"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) return value } } diff --git a/Sources/Services/AWSHealthLake/Sources/AWSHealthLake/HealthLakeClient.swift b/Sources/Services/AWSHealthLake/Sources/AWSHealthLake/HealthLakeClient.swift index 622b3a86d5e..7f8d8b11a3d 100644 --- a/Sources/Services/AWSHealthLake/Sources/AWSHealthLake/HealthLakeClient.swift +++ b/Sources/Services/AWSHealthLake/Sources/AWSHealthLake/HealthLakeClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class HealthLakeClient: ClientRuntime.Client { public static let clientName = "HealthLakeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: HealthLakeClient.HealthLakeClientConfiguration let serviceName = "HealthLake" diff --git a/Sources/Services/AWSIAM/Sources/AWSIAM/IAMClient.swift b/Sources/Services/AWSIAM/Sources/AWSIAM/IAMClient.swift index f4d5127b12a..97e3176c316 100644 --- a/Sources/Services/AWSIAM/Sources/AWSIAM/IAMClient.swift +++ b/Sources/Services/AWSIAM/Sources/AWSIAM/IAMClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IAMClient: ClientRuntime.Client { public static let clientName = "IAMClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IAMClient.IAMClientConfiguration let serviceName = "IAM" diff --git a/Sources/Services/AWSIVSRealTime/Sources/AWSIVSRealTime/IVSRealTimeClient.swift b/Sources/Services/AWSIVSRealTime/Sources/AWSIVSRealTime/IVSRealTimeClient.swift index 455257e6d9b..c2e622edc0a 100644 --- a/Sources/Services/AWSIVSRealTime/Sources/AWSIVSRealTime/IVSRealTimeClient.swift +++ b/Sources/Services/AWSIVSRealTime/Sources/AWSIVSRealTime/IVSRealTimeClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IVSRealTimeClient: ClientRuntime.Client { public static let clientName = "IVSRealTimeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IVSRealTimeClient.IVSRealTimeClientConfiguration let serviceName = "IVS RealTime" diff --git a/Sources/Services/AWSIdentitystore/Sources/AWSIdentitystore/IdentitystoreClient.swift b/Sources/Services/AWSIdentitystore/Sources/AWSIdentitystore/IdentitystoreClient.swift index 74f513b65f2..6ce9d81e05c 100644 --- a/Sources/Services/AWSIdentitystore/Sources/AWSIdentitystore/IdentitystoreClient.swift +++ b/Sources/Services/AWSIdentitystore/Sources/AWSIdentitystore/IdentitystoreClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IdentitystoreClient: ClientRuntime.Client { public static let clientName = "IdentitystoreClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IdentitystoreClient.IdentitystoreClientConfiguration let serviceName = "identitystore" diff --git a/Sources/Services/AWSImagebuilder/Sources/AWSImagebuilder/ImagebuilderClient.swift b/Sources/Services/AWSImagebuilder/Sources/AWSImagebuilder/ImagebuilderClient.swift index aeaaf0abef2..67bcc416b22 100644 --- a/Sources/Services/AWSImagebuilder/Sources/AWSImagebuilder/ImagebuilderClient.swift +++ b/Sources/Services/AWSImagebuilder/Sources/AWSImagebuilder/ImagebuilderClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ImagebuilderClient: ClientRuntime.Client { public static let clientName = "ImagebuilderClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ImagebuilderClient.ImagebuilderClientConfiguration let serviceName = "imagebuilder" diff --git a/Sources/Services/AWSInspector/Sources/AWSInspector/InspectorClient.swift b/Sources/Services/AWSInspector/Sources/AWSInspector/InspectorClient.swift index 0e5a8315133..32b0152c274 100644 --- a/Sources/Services/AWSInspector/Sources/AWSInspector/InspectorClient.swift +++ b/Sources/Services/AWSInspector/Sources/AWSInspector/InspectorClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class InspectorClient: ClientRuntime.Client { public static let clientName = "InspectorClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: InspectorClient.InspectorClientConfiguration let serviceName = "Inspector" diff --git a/Sources/Services/AWSInspector2/Sources/AWSInspector2/Inspector2Client.swift b/Sources/Services/AWSInspector2/Sources/AWSInspector2/Inspector2Client.swift index 62e76ab81f2..11071e3a661 100644 --- a/Sources/Services/AWSInspector2/Sources/AWSInspector2/Inspector2Client.swift +++ b/Sources/Services/AWSInspector2/Sources/AWSInspector2/Inspector2Client.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class Inspector2Client: ClientRuntime.Client { public static let clientName = "Inspector2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: Inspector2Client.Inspector2ClientConfiguration let serviceName = "Inspector2" diff --git a/Sources/Services/AWSInspectorScan/Sources/AWSInspectorScan/InspectorScanClient.swift b/Sources/Services/AWSInspectorScan/Sources/AWSInspectorScan/InspectorScanClient.swift index 5d73370f661..ee6d69e017d 100644 --- a/Sources/Services/AWSInspectorScan/Sources/AWSInspectorScan/InspectorScanClient.swift +++ b/Sources/Services/AWSInspectorScan/Sources/AWSInspectorScan/InspectorScanClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class InspectorScanClient: ClientRuntime.Client { public static let clientName = "InspectorScanClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: InspectorScanClient.InspectorScanClientConfiguration let serviceName = "Inspector Scan" diff --git a/Sources/Services/AWSInternetMonitor/Sources/AWSInternetMonitor/InternetMonitorClient.swift b/Sources/Services/AWSInternetMonitor/Sources/AWSInternetMonitor/InternetMonitorClient.swift index 8bafbee9a33..fda490da52a 100644 --- a/Sources/Services/AWSInternetMonitor/Sources/AWSInternetMonitor/InternetMonitorClient.swift +++ b/Sources/Services/AWSInternetMonitor/Sources/AWSInternetMonitor/InternetMonitorClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class InternetMonitorClient: ClientRuntime.Client { public static let clientName = "InternetMonitorClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: InternetMonitorClient.InternetMonitorClientConfiguration let serviceName = "InternetMonitor" diff --git a/Sources/Services/AWSIoT/Sources/AWSIoT/IoTClient.swift b/Sources/Services/AWSIoT/Sources/AWSIoT/IoTClient.swift index 318e365a879..8e8fe99cc8b 100644 --- a/Sources/Services/AWSIoT/Sources/AWSIoT/IoTClient.swift +++ b/Sources/Services/AWSIoT/Sources/AWSIoT/IoTClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTClient: ClientRuntime.Client { public static let clientName = "IoTClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTClient.IoTClientConfiguration let serviceName = "IoT" @@ -426,10 +426,10 @@ extension IoTClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `ConflictException` : A resource with the same name already exists. + /// - `ConflictException` : The request conflicts with the current state of the resource. /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. /// - `ResourceNotFoundException` : The specified resource does not exist. - /// - `ServiceQuotaExceededException` : A limit has been exceeded. + /// - `ServiceQuotaExceededException` : Service quota has been exceeded. /// - `ThrottlingException` : The rate exceeds the limit. /// - `ValidationException` : The request is not valid. public func associateSbomWithPackageVersion(input: AssociateSbomWithPackageVersionInput) async throws -> AssociateSbomWithPackageVersionOutput { @@ -1808,6 +1808,79 @@ extension IoTClient { return try await op.execute(input: input) } + /// Performs the `CreateCommand` operation on the `AWSIotService` service. + /// + /// Creates a command. A command contains reusable configurations that can be applied before they are sent to the devices. + /// + /// - Parameter CreateCommandInput : [no documentation found] + /// + /// - Returns: `CreateCommandOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConflictException` : The request conflicts with the current state of the resource. + /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. + /// - `ServiceQuotaExceededException` : Service quota has been exceeded. + /// - `ThrottlingException` : The rate exceeds the limit. + /// - `ValidationException` : The request is not valid. + public func createCommand(input: CreateCommandInput) async throws -> CreateCommandOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .put) + .withServiceName(value: serviceName) + .withOperation(value: "createCommand") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iot") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateCommandInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateCommandInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateCommandOutput.httpOutput(from:), CreateCommandOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoT") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateCommand") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `CreateCustomMetric` operation on the `AWSIotService` service. /// /// Use this API to define a Custom Metric published by your devices to Device Defender. Requires permission to access the [CreateCustomMetric](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) action. @@ -2271,7 +2344,7 @@ extension IoTClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `ConflictException` : A resource with the same name already exists. + /// - `ConflictException` : The request conflicts with the current state of the resource. /// - `InternalFailureException` : An unexpected error has occurred. /// - `InvalidRequestException` : The request is not valid. /// - `LimitExceededException` : A limit has been exceeded. @@ -2565,9 +2638,9 @@ extension IoTClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `ConflictException` : A resource with the same name already exists. + /// - `ConflictException` : The request conflicts with the current state of the resource. /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. - /// - `ServiceQuotaExceededException` : A limit has been exceeded. + /// - `ServiceQuotaExceededException` : Service quota has been exceeded. /// - `ThrottlingException` : The rate exceeds the limit. /// - `ValidationException` : The request is not valid. public func createPackage(input: CreatePackageInput) async throws -> CreatePackageOutput { @@ -2640,9 +2713,9 @@ extension IoTClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `ConflictException` : A resource with the same name already exists. + /// - `ConflictException` : The request conflicts with the current state of the resource. /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. - /// - `ServiceQuotaExceededException` : A limit has been exceeded. + /// - `ServiceQuotaExceededException` : Service quota has been exceeded. /// - `ThrottlingException` : The rate exceeds the limit. /// - `ValidationException` : The request is not valid. public func createPackageVersion(input: CreatePackageVersionInput) async throws -> CreatePackageVersionOutput { @@ -4243,6 +4316,145 @@ extension IoTClient { return try await op.execute(input: input) } + /// Performs the `DeleteCommand` operation on the `AWSIotService` service. + /// + /// Delete a command resource. + /// + /// - Parameter DeleteCommandInput : [no documentation found] + /// + /// - Returns: `DeleteCommandOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConflictException` : The request conflicts with the current state of the resource. + /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. + /// - `ThrottlingException` : The rate exceeds the limit. + /// - `ValidationException` : The request is not valid. + public func deleteCommand(input: DeleteCommandInput) async throws -> DeleteCommandOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteCommand") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iot") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteCommandInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteCommandOutput.httpOutput(from:), DeleteCommandOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoT") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteCommand") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeleteCommandExecution` operation on the `AWSIotService` service. + /// + /// Delete a command execution. Only command executions that enter a terminal state can be deleted from your account. + /// + /// - Parameter DeleteCommandExecutionInput : [no documentation found] + /// + /// - Returns: `DeleteCommandExecutionOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConflictException` : The request conflicts with the current state of the resource. + /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. + /// - `ThrottlingException` : The rate exceeds the limit. + /// - `ValidationException` : The request is not valid. + public func deleteCommandExecution(input: DeleteCommandExecutionInput) async throws -> DeleteCommandExecutionOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteCommandExecution") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iot") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteCommandExecutionInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(DeleteCommandExecutionInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteCommandExecutionOutput.httpOutput(from:), DeleteCommandExecutionOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoT") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteCommandExecution") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DeleteCustomMetric` operation on the `AWSIotService` service. /// /// Deletes a Device Defender detect custom metric. Requires permission to access the [DeleteCustomMetric](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) action. Before you can delete a custom metric, you must first remove the custom metric from all security profiles it's a part of. The security profile associated with the custom metric can be found using the [ListSecurityProfiles](https://docs.aws.amazon.com/iot/latest/apireference/API_ListSecurityProfiles.html) API with metricName set to your custom metric name. @@ -8969,7 +9181,7 @@ extension IoTClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `ConflictException` : A resource with the same name already exists. + /// - `ConflictException` : The request conflicts with the current state of the resource. /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. /// - `ResourceNotFoundException` : The specified resource does not exist. /// - `ThrottlingException` : The rate exceeds the limit. @@ -9324,6 +9536,145 @@ extension IoTClient { return try await op.execute(input: input) } + /// Performs the `GetCommand` operation on the `AWSIotService` service. + /// + /// Gets information about the specified command. + /// + /// - Parameter GetCommandInput : [no documentation found] + /// + /// - Returns: `GetCommandOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ThrottlingException` : The rate exceeds the limit. + /// - `ValidationException` : The request is not valid. + public func getCommand(input: GetCommandInput) async throws -> GetCommandOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getCommand") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iot") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetCommandInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetCommandOutput.httpOutput(from:), GetCommandOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoT") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetCommand") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetCommandExecution` operation on the `AWSIotService` service. + /// + /// Gets information about the specific command execution on a single device. + /// + /// - Parameter GetCommandExecutionInput : [no documentation found] + /// + /// - Returns: `GetCommandExecutionOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ThrottlingException` : The rate exceeds the limit. + /// - `ValidationException` : The request is not valid. + public func getCommandExecution(input: GetCommandExecutionInput) async throws -> GetCommandExecutionOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getCommandExecution") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iot") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetCommandExecutionInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(GetCommandExecutionInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetCommandExecutionOutput.httpOutput(from:), GetCommandExecutionOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoT") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetCommandExecution") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `GetEffectivePolicies` operation on the `AWSIotService` service. /// /// Gets a list of the policies that have an effect on the authorization behavior of the specified device when it connects to the IoT device gateway. Requires permission to access the [GetEffectivePolicies](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) action. @@ -11373,6 +11724,148 @@ extension IoTClient { return try await op.execute(input: input) } + /// Performs the `ListCommandExecutions` operation on the `AWSIotService` service. + /// + /// List all command executions. You must provide only the startedTimeFilter or the completedTimeFilter information. If you provide both time filters, the API will generate an error. You can use this information to find command executions that started within a specific timeframe. + /// + /// - Parameter ListCommandExecutionsInput : [no documentation found] + /// + /// - Returns: `ListCommandExecutionsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ThrottlingException` : The rate exceeds the limit. + /// - `ValidationException` : The request is not valid. + public func listCommandExecutions(input: ListCommandExecutionsInput) async throws -> ListCommandExecutionsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listCommandExecutions") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iot") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListCommandExecutionsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListCommandExecutionsInput.queryItemProvider(_:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListCommandExecutionsInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListCommandExecutionsOutput.httpOutput(from:), ListCommandExecutionsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoT") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListCommandExecutions") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListCommands` operation on the `AWSIotService` service. + /// + /// List all commands in your account. + /// + /// - Parameter ListCommandsInput : [no documentation found] + /// + /// - Returns: `ListCommandsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. + /// - `ThrottlingException` : The rate exceeds the limit. + /// - `ValidationException` : The request is not valid. + public func listCommands(input: ListCommandsInput) async throws -> ListCommandsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listCommands") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iot") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListCommandsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListCommandsInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListCommandsOutput.httpOutput(from:), ListCommandsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoT") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListCommands") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListCustomMetrics` operation on the `AWSIotService` service. /// /// Lists your Device Defender detect custom metrics. Requires permission to access the [ListCustomMetrics](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) action. @@ -17273,6 +17766,79 @@ extension IoTClient { return try await op.execute(input: input) } + /// Performs the `UpdateCommand` operation on the `AWSIotService` service. + /// + /// Update information about a command or mark a command for deprecation. + /// + /// - Parameter UpdateCommandInput : [no documentation found] + /// + /// - Returns: `UpdateCommandOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConflictException` : The request conflicts with the current state of the resource. + /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ThrottlingException` : The rate exceeds the limit. + /// - `ValidationException` : The request is not valid. + public func updateCommand(input: UpdateCommandInput) async throws -> UpdateCommandOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .patch) + .withServiceName(value: serviceName) + .withOperation(value: "updateCommand") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iot") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateCommandInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateCommandInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateCommandOutput.httpOutput(from:), UpdateCommandOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoT") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateCommand") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `UpdateCustomMetric` operation on the `AWSIotService` service. /// /// Updates a Device Defender detect custom metric. Requires permission to access the [UpdateCustomMetric](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) action. @@ -17944,7 +18510,7 @@ extension IoTClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `ConflictException` : A resource with the same name already exists. + /// - `ConflictException` : The request conflicts with the current state of the resource. /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. /// - `ResourceNotFoundException` : The specified resource does not exist. /// - `ThrottlingException` : The rate exceeds the limit. @@ -18019,7 +18585,7 @@ extension IoTClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `ConflictException` : A resource with the same name already exists. + /// - `ConflictException` : The request conflicts with the current state of the resource. /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. /// - `ThrottlingException` : The rate exceeds the limit. /// - `ValidationException` : The request is not valid. @@ -18093,7 +18659,7 @@ extension IoTClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `ConflictException` : A resource with the same name already exists. + /// - `ConflictException` : The request conflicts with the current state of the resource. /// - `InternalServerException` : Internal error from the service that indicates an unexpected error or that the service is unavailable. /// - `ResourceNotFoundException` : The specified resource does not exist. /// - `ThrottlingException` : The rate exceeds the limit. diff --git a/Sources/Services/AWSIoT/Sources/AWSIoT/Models.swift b/Sources/Services/AWSIoT/Sources/AWSIoT/Models.swift index cc7a87b6b9d..fd088ddc027 100644 --- a/Sources/Services/AWSIoT/Sources/AWSIoT/Models.swift +++ b/Sources/Services/AWSIoT/Sources/AWSIoT/Models.swift @@ -2433,7 +2433,7 @@ extension IoTClientTypes { } } -/// A resource with the same name already exists. +/// The request conflicts with the current state of the resource. public struct ConflictException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -2485,7 +2485,7 @@ public struct InternalServerException: ClientRuntime.ModeledError, AWSClientRunt } } -/// A limit has been exceeded. +/// Service quota has been exceeded. public struct ServiceQuotaExceededException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -4582,6 +4582,181 @@ public struct CreateCertificateProviderOutput: Swift.Sendable { } } +extension IoTClientTypes { + + /// The range of possible values that's used to describe a specific command parameter. The commandParameterValue can only have one of the below fields listed. + public struct CommandParameterValue: Swift.Sendable { + /// An attribute of type Boolean. For example: "BOOL": true + public var b: Swift.Bool? + /// An attribute of type Binary. For example: "B": "dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk" + public var bin: Foundation.Data? + /// An attribute of type Double (Sixty-Four Bits). + public var d: Swift.Double? + /// An attribute of type Integer (Thirty-Two Bits). + public var i: Swift.Int? + /// An attribute of type Long. + public var l: Swift.Int? + /// An attribute of type String. For example: "S": "Hello" + public var s: Swift.String? + /// An attribute of type unsigned long. + public var ul: Swift.String? + + public init( + b: Swift.Bool? = nil, + bin: Foundation.Data? = nil, + d: Swift.Double? = nil, + i: Swift.Int? = nil, + l: Swift.Int? = nil, + s: Swift.String? = nil, + ul: Swift.String? = nil + ) + { + self.b = b + self.bin = bin + self.d = d + self.i = i + self.l = l + self.s = s + self.ul = ul + } + } +} + +extension IoTClientTypes { + + /// A map of key-value pairs that describe the command. + public struct CommandParameter: Swift.Sendable { + /// The default value used to describe the command. This is the value assumed by the parameter if no other value is assigned to it. + public var defaultValue: IoTClientTypes.CommandParameterValue? + /// The description of the command parameter. + public var description: Swift.String? + /// The name of a specific parameter used in a command and command execution. + /// This member is required. + public var name: Swift.String? + /// The value used to describe the command. When you assign a value to a parameter, it will override any default value that you had already specified. + public var value: IoTClientTypes.CommandParameterValue? + + public init( + defaultValue: IoTClientTypes.CommandParameterValue? = nil, + description: Swift.String? = nil, + name: Swift.String? = nil, + value: IoTClientTypes.CommandParameterValue? = nil + ) + { + self.defaultValue = defaultValue + self.description = description + self.name = name + self.value = value + } + } +} + +extension IoTClientTypes { + + public enum CommandNamespace: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case awsiot + case awsiotfleetwise + case sdkUnknown(Swift.String) + + public static var allCases: [CommandNamespace] { + return [ + .awsiot, + .awsiotfleetwise + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .awsiot: return "AWS-IoT" + case .awsiotfleetwise: return "AWS-IoT-FleetWise" + case let .sdkUnknown(s): return s + } + } + } +} + +extension IoTClientTypes { + + /// The command payload object that contains the instructions for the device to process. + public struct CommandPayload: Swift.Sendable { + /// The static payload file for the command. + public var content: Foundation.Data? + /// The content type that specifies the format type of the payload file. This field must use a type/subtype format, such as application/json. For information about various content types, see [Common MIME types](https://developer.mozilla.org/en-US/docs/Web/HTTP/MIME_types/Common_types). + public var contentType: Swift.String? + + public init( + content: Foundation.Data? = nil, + contentType: Swift.String? = nil + ) + { + self.content = content + self.contentType = contentType + } + } +} + +public struct CreateCommandInput: Swift.Sendable { + /// A unique identifier for the command. We recommend using UUID. Alpha-numeric characters, hyphens, and underscores are valid for use here. + /// This member is required. + public var commandId: Swift.String? + /// A short text decription of the command. + public var description: Swift.String? + /// The user-friendly name in the console for the command. This name doesn't have to be unique. You can update the user-friendly name after you define it. + public var displayName: Swift.String? + /// A list of parameters that are required by the StartCommandExecution API. These parameters need to be specified only when using the AWS-IoT-FleetWise namespace. You can either specify them here or when running the command using the StartCommandExecution API. + public var mandatoryParameters: [IoTClientTypes.CommandParameter]? + /// The namespace of the command. The MQTT reserved topics and validations will be used for command executions according to the namespace setting. + public var namespace: IoTClientTypes.CommandNamespace? + /// The payload object for the command. You must specify this information when using the AWS-IoT namespace. You can upload a static payload file from your local storage that contains the instructions for the device to process. The payload file can use any format. To make sure that the device correctly interprets the payload, we recommend you to specify the payload content type. + public var payload: IoTClientTypes.CommandPayload? + /// The IAM role that allows access to create the command. + public var roleArn: Swift.String? + /// Name-value pairs that are used as metadata to manage a command. + public var tags: [IoTClientTypes.Tag]? + + public init( + commandId: Swift.String? = nil, + description: Swift.String? = nil, + displayName: Swift.String? = nil, + mandatoryParameters: [IoTClientTypes.CommandParameter]? = nil, + namespace: IoTClientTypes.CommandNamespace? = nil, + payload: IoTClientTypes.CommandPayload? = nil, + roleArn: Swift.String? = nil, + tags: [IoTClientTypes.Tag]? = nil + ) + { + self.commandId = commandId + self.description = description + self.displayName = displayName + self.mandatoryParameters = mandatoryParameters + self.namespace = namespace + self.payload = payload + self.roleArn = roleArn + self.tags = tags + } +} + +public struct CreateCommandOutput: Swift.Sendable { + /// The Amazon Resource Number (ARN) of the command. For example, arn:aws:iot:::command/ + public var commandArn: Swift.String? + /// The unique identifier for the command. + public var commandId: Swift.String? + + public init( + commandArn: Swift.String? = nil, + commandId: Swift.String? = nil + ) + { + self.commandArn = commandArn + self.commandId = commandId + } +} + extension IoTClientTypes { public enum CustomMetricType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -4785,9 +4960,9 @@ extension IoTClientTypes { public struct ServerCertificateConfig: Swift.Sendable { /// A Boolean value that indicates whether Online Certificate Status Protocol (OCSP) server certificate check is enabled or not. For more information, see [ Server certificate configuration for OCSP stapling](https://docs.aws.amazon.com/iot/latest/developerguide/iot-custom-endpoints-cert-config.html) from Amazon Web Services IoT Core Developer Guide. public var enableOCSPCheck: Swift.Bool? - /// The Amazon Resource Name (ARN) for an X.509 certificate stored in Amazon Web Services Certificate Manager (ACM). If provided, Amazon Web Services IoT Core will use this certificate to validate the signature of the received OCSP response. The OCSP responder must sign responses using either this authorized responder certificate or the issuing certificate, depending on whether the ARN is provided or not. The certificate must be in the same Amazon Web Services region and account as the domain configuration. + /// The Amazon Resource Name (ARN) for an X.509 certificate stored in Amazon Web Services Certificate Manager (ACM). If provided, Amazon Web Services IoT Core will use this certificate to validate the signature of the received OCSP response. The OCSP responder must sign responses using either this authorized responder certificate or the issuing certificate, depending on whether the ARN is provided or not. The certificate must be in the same Amazon Web Services account and region as the domain configuration. public var ocspAuthorizedResponderArn: Swift.String? - /// The Amazon Resource Name (ARN) for a Lambda function that acts as a Request for Comments (RFC) 6960-compliant Online Certificate Status Protocol (OCSP) responder, supporting basic OCSP responses. The Lambda function accepts a JSON string that's Base64-encoded. Therefore, you must convert your OCSP response, which is typically in the Distinguished Encoding Rules (DER) format, into a JSON string that's Base64-encoded. The Lambda function's response is also a Base64-encoded JSON string and the response payload must not exceed 8 kilobytes (KiB) in size. The Lambda function must be in the same Amazon Web Services region and account as the domain configuration. + /// The Amazon Resource Name (ARN) for a Lambda function that acts as a Request for Comments (RFC) 6960-compliant Online Certificate Status Protocol (OCSP) responder, supporting basic OCSP responses. The Lambda function accepts a base64-encoding of the OCSP request in the Distinguished Encoding Rules (DER) format. The Lambda function's response is also a base64-encoded OCSP response in the DER format. The response size must not exceed 4 kilobytes (KiB). The Lambda function must be in the same Amazon Web Services account and region as the domain configuration. For more information, see [Configuring server certificate OCSP for private endpoints in Amazon Web Services IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/iot-custom-endpoints-cert-config.html#iot-custom-endpoints-cert-config-ocsp-private-endpoint.html) from the Amazon Web Services IoT Core developer guide. public var ocspLambdaArn: Swift.String? public init( @@ -5598,7 +5773,7 @@ public struct CreateJobInput: Swift.Sendable { public var jobExecutionsRetryConfig: IoTClientTypes.JobExecutionsRetryConfig? /// Allows you to create a staged rollout of the job. public var jobExecutionsRolloutConfig: IoTClientTypes.JobExecutionsRolloutConfig? - /// A job identifier which must be unique for your Amazon Web Services account. We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for use here. + /// A job identifier which must be unique for your account. We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for use here. /// This member is required. public var jobId: Swift.String? /// The ARN of the job template used to create the job. @@ -8231,6 +8406,58 @@ public struct DeleteCertificateProviderOutput: Swift.Sendable { public init() { } } +public struct DeleteCommandInput: Swift.Sendable { + /// The unique identifier of the command to be deleted. + /// This member is required. + public var commandId: Swift.String? + + public init( + commandId: Swift.String? = nil + ) + { + self.commandId = commandId + } +} + +public struct DeleteCommandOutput: Swift.Sendable { + /// The status code for the command deletion request. The status code is in the 200 range for a successful request. + /// + /// * If the command hasn't been deprecated, or has been deprecated for a duration that is shorter than the maximum time out duration of 12 hours, when calling the DeleteCommand request, the deletion will be scheduled and a 202 status code will be returned. While the command is being deleted, it will be in a pendingDeletion state. Once the time out duration has been reached, the command will be permanently removed from your account. + /// + /// * If the command has been deprecated for a duration that is longer than the maximum time out duration of 12 hours, when calling the DeleteCommand request, the command will be deleted immediately and a 204 status code will be returned. + public var statusCode: Swift.Int + + public init( + statusCode: Swift.Int = 0 + ) + { + self.statusCode = statusCode + } +} + +public struct DeleteCommandExecutionInput: Swift.Sendable { + /// The unique identifier of the command execution that you want to delete from your account. + /// This member is required. + public var executionId: Swift.String? + /// The Amazon Resource Number (ARN) of the target device for which you want to delete command executions. + /// This member is required. + public var targetArn: Swift.String? + + public init( + executionId: Swift.String? = nil, + targetArn: Swift.String? = nil + ) + { + self.executionId = executionId + self.targetArn = targetArn + } +} + +public struct DeleteCommandExecutionOutput: Swift.Sendable { + + public init() { } +} + public struct DeleteCustomMetricInput: Swift.Sendable { /// The name of the custom metric. /// This member is required. @@ -10383,7 +10610,7 @@ public struct DescribeIndexOutput: Swift.Sendable { } public struct DescribeJobInput: Swift.Sendable { - /// A flag that provides a view of the job document before and after the substitution parameters have been resolved with their exact values. + /// Provides a view of the job document before and after the substitution parameters have been resolved with their exact values. public var beforeSubstitution: Swift.Bool? /// The unique identifier you assigned to this job when it was created. /// This member is required. @@ -12132,6 +12359,243 @@ public struct GetCardinalityOutput: Swift.Sendable { } } +public struct GetCommandInput: Swift.Sendable { + /// The unique identifier of the command for which you want to retrieve information. + /// This member is required. + public var commandId: Swift.String? + + public init( + commandId: Swift.String? = nil + ) + { + self.commandId = commandId + } +} + +public struct GetCommandOutput: Swift.Sendable { + /// The Amazon Resource Number (ARN) of the command. For example, arn:aws:iot:::command/ + public var commandArn: Swift.String? + /// The unique identifier of the command. + public var commandId: Swift.String? + /// The timestamp, when the command was created. + public var createdAt: Foundation.Date? + /// Indicates whether the command has been deprecated. + public var deprecated: Swift.Bool? + /// A short text description of the command. + public var description: Swift.String? + /// The user-friendly name in the console for the command. + public var displayName: Swift.String? + /// The timestamp, when the command was last updated. + public var lastUpdatedAt: Foundation.Date? + /// A list of parameters for the command created. + public var mandatoryParameters: [IoTClientTypes.CommandParameter]? + /// The namespace of the command. + public var namespace: IoTClientTypes.CommandNamespace? + /// The payload object that you provided for the command. + public var payload: IoTClientTypes.CommandPayload? + /// Indicates whether the command is being deleted. + public var pendingDeletion: Swift.Bool? + /// The IAM role that allows access to retrieve information about the command. + public var roleArn: Swift.String? + + public init( + commandArn: Swift.String? = nil, + commandId: Swift.String? = nil, + createdAt: Foundation.Date? = nil, + deprecated: Swift.Bool? = nil, + description: Swift.String? = nil, + displayName: Swift.String? = nil, + lastUpdatedAt: Foundation.Date? = nil, + mandatoryParameters: [IoTClientTypes.CommandParameter]? = nil, + namespace: IoTClientTypes.CommandNamespace? = nil, + payload: IoTClientTypes.CommandPayload? = nil, + pendingDeletion: Swift.Bool? = nil, + roleArn: Swift.String? = nil + ) + { + self.commandArn = commandArn + self.commandId = commandId + self.createdAt = createdAt + self.deprecated = deprecated + self.description = description + self.displayName = displayName + self.lastUpdatedAt = lastUpdatedAt + self.mandatoryParameters = mandatoryParameters + self.namespace = namespace + self.payload = payload + self.pendingDeletion = pendingDeletion + self.roleArn = roleArn + } +} + +public struct GetCommandExecutionInput: Swift.Sendable { + /// The unique identifier for the command execution. This information is returned as a response of the StartCommandExecution API request. + /// This member is required. + public var executionId: Swift.String? + /// Can be used to specify whether to include the result of the command execution in the GetCommandExecution API response. Your device can use this field to provide additional information about the command execution. You only need to specify this field when using the AWS-IoT namespace. + public var includeResult: Swift.Bool? + /// The Amazon Resource Number (ARN) of the device on which the command execution is being performed. + /// This member is required. + public var targetArn: Swift.String? + + public init( + executionId: Swift.String? = nil, + includeResult: Swift.Bool? = nil, + targetArn: Swift.String? = nil + ) + { + self.executionId = executionId + self.includeResult = includeResult + self.targetArn = targetArn + } +} + +extension IoTClientTypes { + + /// The result value of the command execution. The device can use the result field to share additional details about the execution such as a return value of a remote function call. This field is not applicable if you use the AWS-IoT-FleetWise namespace. + public struct CommandExecutionResult: Swift.Sendable { + /// An attribute of type Boolean. For example: "BOOL": true + public var b: Swift.Bool? + /// An attribute of type Binary. + public var bin: Foundation.Data? + /// An attribute of type String. For example: "S": "Hello" + public var s: Swift.String? + + public init( + b: Swift.Bool? = nil, + bin: Foundation.Data? = nil, + s: Swift.String? = nil + ) + { + self.b = b + self.bin = bin + self.s = s + } + } +} + +extension IoTClientTypes { + + public enum CommandExecutionStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case created + case failed + case inProgress + case rejected + case succeeded + case timedOut + case sdkUnknown(Swift.String) + + public static var allCases: [CommandExecutionStatus] { + return [ + .created, + .failed, + .inProgress, + .rejected, + .succeeded, + .timedOut + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .created: return "CREATED" + case .failed: return "FAILED" + case .inProgress: return "IN_PROGRESS" + case .rejected: return "REJECTED" + case .succeeded: return "SUCCEEDED" + case .timedOut: return "TIMED_OUT" + case let .sdkUnknown(s): return s + } + } + } +} + +extension IoTClientTypes { + + /// Provide additional context about the status of a command execution using a reason code and description. + public struct StatusReason: Swift.Sendable { + /// A code that provides additional context for the command execution status. + /// This member is required. + public var reasonCode: Swift.String? + /// A literal string for devices to optionally provide additional information about the reason code for a command execution status. + public var reasonDescription: Swift.String? + + public init( + reasonCode: Swift.String? = nil, + reasonDescription: Swift.String? = nil + ) + { + self.reasonCode = reasonCode + self.reasonDescription = reasonDescription + } + } +} + +public struct GetCommandExecutionOutput: Swift.Sendable { + /// The Amazon Resource Number (ARN) of the command. For example, arn:aws:iot:::command/ + public var commandArn: Swift.String? + /// The timestamp, when the command execution was completed. + public var completedAt: Foundation.Date? + /// The timestamp, when the command execution was created. + public var createdAt: Foundation.Date? + /// The unique identifier of the command execution. + public var executionId: Swift.String? + /// Specifies the amount of time in seconds that the device can take to finish a command execution. A timer starts when the command execution is created. If the command execution status is not set to another terminal state before the timer expires, it will automatically update to TIMED_OUT. + public var executionTimeoutSeconds: Swift.Int? + /// The timestamp, when the command execution was last updated. + public var lastUpdatedAt: Foundation.Date? + /// The list of parameters that the StartCommandExecution API used when performing the command on the device. + public var parameters: [Swift.String: IoTClientTypes.CommandParameterValue]? + /// The result value for the current state of the command execution. The status provides information about the progress of the command execution. The device can use the result field to share additional details about the execution such as a return value of a remote function call. If you use the AWS-IoT-FleetWise namespace, then this field is not applicable in the API response. + public var result: [Swift.String: IoTClientTypes.CommandExecutionResult]? + /// The timestamp, when the command execution was started. + public var startedAt: Foundation.Date? + /// The status of the command execution. After your devices receive the command and start performing the operations specified in the command, it can use the UpdateCommandExecution MQTT API to update the status information. + public var status: IoTClientTypes.CommandExecutionStatus? + /// Your devices can use this parameter to provide additional context about the status of a command execution using a reason code and description. + public var statusReason: IoTClientTypes.StatusReason? + /// The Amazon Resource Number (ARN) of the device on which the command execution is being performed. + public var targetArn: Swift.String? + /// The time to live (TTL) parameter for the GetCommandExecution API. + public var timeToLive: Foundation.Date? + + public init( + commandArn: Swift.String? = nil, + completedAt: Foundation.Date? = nil, + createdAt: Foundation.Date? = nil, + executionId: Swift.String? = nil, + executionTimeoutSeconds: Swift.Int? = nil, + lastUpdatedAt: Foundation.Date? = nil, + parameters: [Swift.String: IoTClientTypes.CommandParameterValue]? = nil, + result: [Swift.String: IoTClientTypes.CommandExecutionResult]? = nil, + startedAt: Foundation.Date? = nil, + status: IoTClientTypes.CommandExecutionStatus? = nil, + statusReason: IoTClientTypes.StatusReason? = nil, + targetArn: Swift.String? = nil, + timeToLive: Foundation.Date? = nil + ) + { + self.commandArn = commandArn + self.completedAt = completedAt + self.createdAt = createdAt + self.executionId = executionId + self.executionTimeoutSeconds = executionTimeoutSeconds + self.lastUpdatedAt = lastUpdatedAt + self.parameters = parameters + self.result = result + self.startedAt = startedAt + self.status = status + self.statusReason = statusReason + self.targetArn = targetArn + self.timeToLive = timeToLive + } +} + public struct GetEffectivePoliciesInput: Swift.Sendable { /// The Cognito identity pool ID. public var cognitoIdentityPoolId: Swift.String? @@ -12577,7 +13041,7 @@ public struct GetIndexingConfigurationOutput: Swift.Sendable { } public struct GetJobDocumentInput: Swift.Sendable { - /// A flag that provides a view of the job document before and after the substitution parameters have been resolved with their exact values. + /// Provides a view of the job document before and after the substitution parameters have been resolved with their exact values. public var beforeSubstitution: Swift.Bool? /// The unique identifier you assigned to this job when it was created. /// This member is required. @@ -14027,6 +14491,239 @@ public struct ListCertificatesByCAOutput: Swift.Sendable { } } +extension IoTClientTypes { + + /// A filter that can be used to list command executions for a device that started or completed before or after a particular date and time. + public struct TimeFilter: Swift.Sendable { + /// Filter to display command executions that started or completed only after a particular date and time. + public var after: Swift.String? + /// Filter to display command executions that started or completed only before a particular date and time. + public var before: Swift.String? + + public init( + after: Swift.String? = nil, + before: Swift.String? = nil + ) + { + self.after = after + self.before = before + } + } +} + +extension IoTClientTypes { + + public enum SortOrder: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case ascending + case descending + case sdkUnknown(Swift.String) + + public static var allCases: [SortOrder] { + return [ + .ascending, + .descending + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .ascending: return "ASCENDING" + case .descending: return "DESCENDING" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct ListCommandExecutionsInput: Swift.Sendable { + /// The Amazon Resource Number (ARN) of the command. You can use this information to list all command executions for a particular command. + public var commandArn: Swift.String? + /// List all command executions that completed any time before or after the date and time that you specify. The date and time uses the format yyyy-MM-dd'T'HH:mm. + public var completedTimeFilter: IoTClientTypes.TimeFilter? + /// The maximum number of results to return in this operation. + public var maxResults: Swift.Int? + /// The namespace of the command. + public var namespace: IoTClientTypes.CommandNamespace? + /// To retrieve the next set of results, the nextToken value from a previous response; otherwise null to receive the first set of results. + public var nextToken: Swift.String? + /// Specify whether to list the command executions that were created in the ascending or descending order. By default, the API returns all commands in the descending order based on the start time or completion time of the executions, that are determined by the startTimeFilter and completeTimeFilter parameters. + public var sortOrder: IoTClientTypes.SortOrder? + /// List all command executions that started any time before or after the date and time that you specify. The date and time uses the format yyyy-MM-dd'T'HH:mm. + public var startedTimeFilter: IoTClientTypes.TimeFilter? + /// List all command executions for the device that have a particular status. For example, you can filter the list to display only command executions that have failed or timed out. + public var status: IoTClientTypes.CommandExecutionStatus? + /// The Amazon Resource Number (ARN) of the target device. You can use this information to list all command executions for a particular device. + public var targetArn: Swift.String? + + public init( + commandArn: Swift.String? = nil, + completedTimeFilter: IoTClientTypes.TimeFilter? = nil, + maxResults: Swift.Int? = nil, + namespace: IoTClientTypes.CommandNamespace? = nil, + nextToken: Swift.String? = nil, + sortOrder: IoTClientTypes.SortOrder? = nil, + startedTimeFilter: IoTClientTypes.TimeFilter? = nil, + status: IoTClientTypes.CommandExecutionStatus? = nil, + targetArn: Swift.String? = nil + ) + { + self.commandArn = commandArn + self.completedTimeFilter = completedTimeFilter + self.maxResults = maxResults + self.namespace = namespace + self.nextToken = nextToken + self.sortOrder = sortOrder + self.startedTimeFilter = startedTimeFilter + self.status = status + self.targetArn = targetArn + } +} + +extension IoTClientTypes { + + /// Summary information about a particular command execution. + public struct CommandExecutionSummary: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the command execution. + public var commandArn: Swift.String? + /// The date and time at which the command completed executing on the target device. + public var completedAt: Foundation.Date? + /// The date and time at which the command execution was created for the target device. + public var createdAt: Foundation.Date? + /// The unique identifier of the command execution. + public var executionId: Swift.String? + /// The date and time at which the command started executing on the target device. + public var startedAt: Foundation.Date? + /// The status of the command executions. + public var status: IoTClientTypes.CommandExecutionStatus? + /// The Amazon Resource Name (ARN) of the target device for which the command is being executed. + public var targetArn: Swift.String? + + public init( + commandArn: Swift.String? = nil, + completedAt: Foundation.Date? = nil, + createdAt: Foundation.Date? = nil, + executionId: Swift.String? = nil, + startedAt: Foundation.Date? = nil, + status: IoTClientTypes.CommandExecutionStatus? = nil, + targetArn: Swift.String? = nil + ) + { + self.commandArn = commandArn + self.completedAt = completedAt + self.createdAt = createdAt + self.executionId = executionId + self.startedAt = startedAt + self.status = status + self.targetArn = targetArn + } + } +} + +public struct ListCommandExecutionsOutput: Swift.Sendable { + /// The list of command executions. + public var commandExecutions: [IoTClientTypes.CommandExecutionSummary]? + /// The token to use to get the next set of results, or null if there are no additional results. + public var nextToken: Swift.String? + + public init( + commandExecutions: [IoTClientTypes.CommandExecutionSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.commandExecutions = commandExecutions + self.nextToken = nextToken + } +} + +public struct ListCommandsInput: Swift.Sendable { + /// A filter that can be used to display the list of commands that have a specific command parameter name. + public var commandParameterName: Swift.String? + /// The maximum number of results to return in this operation. By default, the API returns up to a maximum of 25 results. You can override this default value to return up to a maximum of 100 results for this operation. + public var maxResults: Swift.Int? + /// The namespace of the command. By default, the API returns all commands that have been created for both AWS-IoT and AWS-IoT-FleetWise namespaces. You can override this default value if you want to return all commands that have been created only for a specific namespace. + public var namespace: IoTClientTypes.CommandNamespace? + /// To retrieve the next set of results, the nextToken value from a previous response; otherwise null to receive the first set of results. + public var nextToken: Swift.String? + /// Specify whether to list the commands that you have created in the ascending or descending order. By default, the API returns all commands in the descending order based on the time that they were created. + public var sortOrder: IoTClientTypes.SortOrder? + + public init( + commandParameterName: Swift.String? = nil, + maxResults: Swift.Int? = nil, + namespace: IoTClientTypes.CommandNamespace? = nil, + nextToken: Swift.String? = nil, + sortOrder: IoTClientTypes.SortOrder? = nil + ) + { + self.commandParameterName = commandParameterName + self.maxResults = maxResults + self.namespace = namespace + self.nextToken = nextToken + self.sortOrder = sortOrder + } +} + +extension IoTClientTypes { + + /// Summary information about a particular command resource. + public struct CommandSummary: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the command. + public var commandArn: Swift.String? + /// The unique identifier of the command. + public var commandId: Swift.String? + /// The timestamp, when the command was created. + public var createdAt: Foundation.Date? + /// Indicates whether the command has been deprecated. + public var deprecated: Swift.Bool? + /// The display name of the command. + public var displayName: Swift.String? + /// The timestamp, when the command was last updated. + public var lastUpdatedAt: Foundation.Date? + /// Indicates whether the command is pending deletion. + public var pendingDeletion: Swift.Bool? + + public init( + commandArn: Swift.String? = nil, + commandId: Swift.String? = nil, + createdAt: Foundation.Date? = nil, + deprecated: Swift.Bool? = nil, + displayName: Swift.String? = nil, + lastUpdatedAt: Foundation.Date? = nil, + pendingDeletion: Swift.Bool? = nil + ) + { + self.commandArn = commandArn + self.commandId = commandId + self.createdAt = createdAt + self.deprecated = deprecated + self.displayName = displayName + self.lastUpdatedAt = lastUpdatedAt + self.pendingDeletion = pendingDeletion + } + } +} + +public struct ListCommandsOutput: Swift.Sendable { + /// The list of commands. + public var commands: [IoTClientTypes.CommandSummary]? + /// The token to use to get the next set of results, or null if there are no additional results. + public var nextToken: Swift.String? + + public init( + commands: [IoTClientTypes.CommandSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.commands = commands + self.nextToken = nextToken + } +} + public struct ListCustomMetricsInput: Swift.Sendable { /// The maximum number of results to return at one time. The default is 25. public var maxResults: Swift.Int? @@ -18526,6 +19223,59 @@ public struct UpdateCertificateProviderOutput: Swift.Sendable { } } +public struct UpdateCommandInput: Swift.Sendable { + /// The unique identifier of the command to be updated. + /// This member is required. + public var commandId: Swift.String? + /// A boolean that you can use to specify whether to deprecate a command. + public var deprecated: Swift.Bool? + /// A short text description of the command. + public var description: Swift.String? + /// The new user-friendly name to use in the console for the command. + public var displayName: Swift.String? + + public init( + commandId: Swift.String? = nil, + deprecated: Swift.Bool? = nil, + description: Swift.String? = nil, + displayName: Swift.String? = nil + ) + { + self.commandId = commandId + self.deprecated = deprecated + self.description = description + self.displayName = displayName + } +} + +public struct UpdateCommandOutput: Swift.Sendable { + /// The unique identifier of the command. + public var commandId: Swift.String? + /// The boolean that indicates whether the command was deprecated. + public var deprecated: Swift.Bool? + /// The updated text description of the command. + public var description: Swift.String? + /// The updated user-friendly display name in the console for the command. + public var displayName: Swift.String? + /// The date and time (epoch timestamp in seconds) when the command was last updated. + public var lastUpdatedAt: Foundation.Date? + + public init( + commandId: Swift.String? = nil, + deprecated: Swift.Bool? = nil, + description: Swift.String? = nil, + displayName: Swift.String? = nil, + lastUpdatedAt: Foundation.Date? = nil + ) + { + self.commandId = commandId + self.deprecated = deprecated + self.description = description + self.displayName = displayName + self.lastUpdatedAt = lastUpdatedAt + } +} + public struct UpdateCustomMetricInput: Swift.Sendable { /// Field represents a friendly name in the console for the custom metric, it doesn't have to be unique. Don't use this name as the metric identifier in the device metric report. Can be updated. /// This member is required. @@ -19879,6 +20629,16 @@ extension CreateCertificateProviderInput { } } +extension CreateCommandInput { + + static func urlPathProvider(_ value: CreateCommandInput) -> Swift.String? { + guard let commandId = value.commandId else { + return nil + } + return "/commands/\(commandId.urlPercentEncoding())" + } +} + extension CreateCustomMetricInput { static func urlPathProvider(_ value: CreateCustomMetricInput) -> Swift.String? { @@ -20304,6 +21064,40 @@ extension DeleteCertificateProviderInput { } } +extension DeleteCommandInput { + + static func urlPathProvider(_ value: DeleteCommandInput) -> Swift.String? { + guard let commandId = value.commandId else { + return nil + } + return "/commands/\(commandId.urlPercentEncoding())" + } +} + +extension DeleteCommandExecutionInput { + + static func urlPathProvider(_ value: DeleteCommandExecutionInput) -> Swift.String? { + guard let executionId = value.executionId else { + return nil + } + return "/command-executions/\(executionId.urlPercentEncoding())" + } +} + +extension DeleteCommandExecutionInput { + + static func queryItemProvider(_ value: DeleteCommandExecutionInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + guard let targetArn = value.targetArn else { + let message = "Creating a URL Query Item failed. targetArn is required and must not be nil." + throw Smithy.ClientError.unknownError(message) + } + let targetArnQueryItem = Smithy.URIQueryItem(name: "targetArn".urlPercentEncoding(), value: Swift.String(targetArn).urlPercentEncoding()) + items.append(targetArnQueryItem) + return items + } +} + extension DeleteCustomMetricInput { static func urlPathProvider(_ value: DeleteCustomMetricInput) -> Swift.String? { @@ -21286,6 +22080,44 @@ extension GetCardinalityInput { } } +extension GetCommandInput { + + static func urlPathProvider(_ value: GetCommandInput) -> Swift.String? { + guard let commandId = value.commandId else { + return nil + } + return "/commands/\(commandId.urlPercentEncoding())" + } +} + +extension GetCommandExecutionInput { + + static func urlPathProvider(_ value: GetCommandExecutionInput) -> Swift.String? { + guard let executionId = value.executionId else { + return nil + } + return "/command-executions/\(executionId.urlPercentEncoding())" + } +} + +extension GetCommandExecutionInput { + + static func queryItemProvider(_ value: GetCommandExecutionInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let includeResult = value.includeResult { + let includeResultQueryItem = Smithy.URIQueryItem(name: "includeResult".urlPercentEncoding(), value: Swift.String(includeResult).urlPercentEncoding()) + items.append(includeResultQueryItem) + } + guard let targetArn = value.targetArn else { + let message = "Creating a URL Query Item failed. targetArn is required and must not be nil." + throw Smithy.ClientError.unknownError(message) + } + let targetArnQueryItem = Smithy.URIQueryItem(name: "targetArn".urlPercentEncoding(), value: Swift.String(targetArn).urlPercentEncoding()) + items.append(targetArnQueryItem) + return items + } +} + extension GetEffectivePoliciesInput { static func urlPathProvider(_ value: GetEffectivePoliciesInput) -> Swift.String? { @@ -21837,6 +22669,64 @@ extension ListCertificatesByCAInput { } } +extension ListCommandExecutionsInput { + + static func urlPathProvider(_ value: ListCommandExecutionsInput) -> Swift.String? { + return "/command-executions" + } +} + +extension ListCommandExecutionsInput { + + static func queryItemProvider(_ value: ListCommandExecutionsInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + return items + } +} + +extension ListCommandsInput { + + static func urlPathProvider(_ value: ListCommandsInput) -> Swift.String? { + return "/commands" + } +} + +extension ListCommandsInput { + + static func queryItemProvider(_ value: ListCommandsInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let sortOrder = value.sortOrder { + let sortOrderQueryItem = Smithy.URIQueryItem(name: "sortOrder".urlPercentEncoding(), value: Swift.String(sortOrder.rawValue).urlPercentEncoding()) + items.append(sortOrderQueryItem) + } + if let namespace = value.namespace { + let namespaceQueryItem = Smithy.URIQueryItem(name: "namespace".urlPercentEncoding(), value: Swift.String(namespace.rawValue).urlPercentEncoding()) + items.append(namespaceQueryItem) + } + if let commandParameterName = value.commandParameterName { + let commandParameterNameQueryItem = Smithy.URIQueryItem(name: "commandParameterName".urlPercentEncoding(), value: Swift.String(commandParameterName).urlPercentEncoding()) + items.append(commandParameterNameQueryItem) + } + return items + } +} + extension ListCustomMetricsInput { static func urlPathProvider(_ value: ListCustomMetricsInput) -> Swift.String? { @@ -23685,6 +24575,16 @@ extension UpdateCertificateProviderInput { } } +extension UpdateCommandInput { + + static func urlPathProvider(_ value: UpdateCommandInput) -> Swift.String? { + guard let commandId = value.commandId else { + return nil + } + return "/commands/\(commandId.urlPercentEncoding())" + } +} + extension UpdateCustomMetricInput { static func urlPathProvider(_ value: UpdateCustomMetricInput) -> Swift.String? { @@ -24081,6 +24981,20 @@ extension CreateCertificateProviderInput { } } +extension CreateCommandInput { + + static func write(value: CreateCommandInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["description"].write(value.description) + try writer["displayName"].write(value.displayName) + try writer["mandatoryParameters"].writeList(value.mandatoryParameters, memberWritingClosure: IoTClientTypes.CommandParameter.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["namespace"].write(value.namespace) + try writer["payload"].write(value.payload, with: IoTClientTypes.CommandPayload.write(value:to:)) + try writer["roleArn"].write(value.roleArn) + try writer["tags"].writeList(value.tags, memberWritingClosure: IoTClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + extension CreateCustomMetricInput { static func write(value: CreateCustomMetricInput?, to writer: SmithyJSON.Writer) throws { @@ -24489,6 +25403,20 @@ extension ListAuditSuppressionsInput { } } +extension ListCommandExecutionsInput { + + static func write(value: ListCommandExecutionsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["commandArn"].write(value.commandArn) + try writer["completedTimeFilter"].write(value.completedTimeFilter, with: IoTClientTypes.TimeFilter.write(value:to:)) + try writer["namespace"].write(value.namespace) + try writer["sortOrder"].write(value.sortOrder) + try writer["startedTimeFilter"].write(value.startedTimeFilter, with: IoTClientTypes.TimeFilter.write(value:to:)) + try writer["status"].write(value.status) + try writer["targetArn"].write(value.targetArn) + } +} + extension PutVerificationStateOnViolationInput { static func write(value: PutVerificationStateOnViolationInput?, to writer: SmithyJSON.Writer) throws { @@ -24776,6 +25704,16 @@ extension UpdateCertificateProviderInput { } } +extension UpdateCommandInput { + + static func write(value: UpdateCommandInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["deprecated"].write(value.deprecated) + try writer["description"].write(value.description) + try writer["displayName"].write(value.displayName) + } +} + extension UpdateCustomMetricInput { static func write(value: UpdateCustomMetricInput?, to writer: SmithyJSON.Writer) throws { @@ -25222,6 +26160,19 @@ extension CreateCertificateProviderOutput { } } +extension CreateCommandOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateCommandOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateCommandOutput() + value.commandArn = try reader["commandArn"].readIfPresent() + value.commandId = try reader["commandId"].readIfPresent() + return value + } +} + extension CreateCustomMetricOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateCustomMetricOutput { @@ -25631,6 +26582,22 @@ extension DeleteCertificateProviderOutput { } } +extension DeleteCommandOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteCommandOutput { + var value = DeleteCommandOutput() + value.statusCode = httpResponse.statusCode.rawValue + return value + } +} + +extension DeleteCommandExecutionOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteCommandExecutionOutput { + return DeleteCommandExecutionOutput() + } +} + extension DeleteCustomMetricOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteCustomMetricOutput { @@ -26474,6 +27441,53 @@ extension GetCardinalityOutput { } } +extension GetCommandOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetCommandOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetCommandOutput() + value.commandArn = try reader["commandArn"].readIfPresent() + value.commandId = try reader["commandId"].readIfPresent() + value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.deprecated = try reader["deprecated"].readIfPresent() + value.description = try reader["description"].readIfPresent() + value.displayName = try reader["displayName"].readIfPresent() + value.lastUpdatedAt = try reader["lastUpdatedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.mandatoryParameters = try reader["mandatoryParameters"].readListIfPresent(memberReadingClosure: IoTClientTypes.CommandParameter.read(from:), memberNodeInfo: "member", isFlattened: false) + value.namespace = try reader["namespace"].readIfPresent() + value.payload = try reader["payload"].readIfPresent(with: IoTClientTypes.CommandPayload.read(from:)) + value.pendingDeletion = try reader["pendingDeletion"].readIfPresent() + value.roleArn = try reader["roleArn"].readIfPresent() + return value + } +} + +extension GetCommandExecutionOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetCommandExecutionOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetCommandExecutionOutput() + value.commandArn = try reader["commandArn"].readIfPresent() + value.completedAt = try reader["completedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.executionId = try reader["executionId"].readIfPresent() + value.executionTimeoutSeconds = try reader["executionTimeoutSeconds"].readIfPresent() + value.lastUpdatedAt = try reader["lastUpdatedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.parameters = try reader["parameters"].readMapIfPresent(valueReadingClosure: IoTClientTypes.CommandParameterValue.read(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.result = try reader["result"].readMapIfPresent(valueReadingClosure: IoTClientTypes.CommandExecutionResult.read(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.startedAt = try reader["startedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.status = try reader["status"].readIfPresent() + value.statusReason = try reader["statusReason"].readIfPresent(with: IoTClientTypes.StatusReason.read(from:)) + value.targetArn = try reader["targetArn"].readIfPresent() + value.timeToLive = try reader["timeToLive"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + return value + } +} + extension GetEffectivePoliciesOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetEffectivePoliciesOutput { @@ -26870,6 +27884,32 @@ extension ListCertificatesByCAOutput { } } +extension ListCommandExecutionsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListCommandExecutionsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListCommandExecutionsOutput() + value.commandExecutions = try reader["commandExecutions"].readListIfPresent(memberReadingClosure: IoTClientTypes.CommandExecutionSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value + } +} + +extension ListCommandsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListCommandsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListCommandsOutput() + value.commands = try reader["commands"].readListIfPresent(memberReadingClosure: IoTClientTypes.CommandSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["nextToken"].readIfPresent() + return value + } +} + extension ListCustomMetricsOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListCustomMetricsOutput { @@ -27837,6 +28877,22 @@ extension UpdateCertificateProviderOutput { } } +extension UpdateCommandOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateCommandOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateCommandOutput() + value.commandId = try reader["commandId"].readIfPresent() + value.deprecated = try reader["deprecated"].readIfPresent() + value.description = try reader["description"].readIfPresent() + value.displayName = try reader["displayName"].readIfPresent() + value.lastUpdatedAt = try reader["lastUpdatedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + return value + } +} + extension UpdateCustomMetricOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateCustomMetricOutput { @@ -28487,6 +29543,24 @@ enum CreateCertificateProviderOutputError { } } +enum CreateCommandOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum CreateCustomMetricOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -29118,6 +30192,40 @@ enum DeleteCertificateProviderOutputError { } } +enum DeleteCommandOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteCommandExecutionOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum DeleteCustomMetricOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -30416,6 +31524,40 @@ enum GetCardinalityOutputError { } } +enum GetCommandOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetCommandExecutionOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum GetEffectivePoliciesOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -30929,6 +32071,39 @@ enum ListCertificatesByCAOutputError { } } +enum ListCommandExecutionsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListCommandsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListCustomMetricsOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -32394,6 +33569,24 @@ enum UpdateCertificateProviderOutputError { } } +enum UpdateCommandOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum UpdateCustomMetricOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -34669,6 +35862,94 @@ extension IoTClientTypes.Bucket { } } +extension IoTClientTypes.CommandParameter { + + static func write(value: IoTClientTypes.CommandParameter?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["defaultValue"].write(value.defaultValue, with: IoTClientTypes.CommandParameterValue.write(value:to:)) + try writer["description"].write(value.description) + try writer["name"].write(value.name) + try writer["value"].write(value.value, with: IoTClientTypes.CommandParameterValue.write(value:to:)) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTClientTypes.CommandParameter { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTClientTypes.CommandParameter() + value.name = try reader["name"].readIfPresent() ?? "" + value.value = try reader["value"].readIfPresent(with: IoTClientTypes.CommandParameterValue.read(from:)) + value.defaultValue = try reader["defaultValue"].readIfPresent(with: IoTClientTypes.CommandParameterValue.read(from:)) + value.description = try reader["description"].readIfPresent() + return value + } +} + +extension IoTClientTypes.CommandParameterValue { + + static func write(value: IoTClientTypes.CommandParameterValue?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["B"].write(value.b) + try writer["BIN"].write(value.bin) + try writer["D"].write(value.d) + try writer["I"].write(value.i) + try writer["L"].write(value.l) + try writer["S"].write(value.s) + try writer["UL"].write(value.ul) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTClientTypes.CommandParameterValue { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTClientTypes.CommandParameterValue() + value.s = try reader["S"].readIfPresent() + value.b = try reader["B"].readIfPresent() + value.i = try reader["I"].readIfPresent() + value.l = try reader["L"].readIfPresent() + value.d = try reader["D"].readIfPresent() + value.bin = try reader["BIN"].readIfPresent() + value.ul = try reader["UL"].readIfPresent() + return value + } +} + +extension IoTClientTypes.CommandPayload { + + static func write(value: IoTClientTypes.CommandPayload?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["content"].write(value.content) + try writer["contentType"].write(value.contentType) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTClientTypes.CommandPayload { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTClientTypes.CommandPayload() + value.content = try reader["content"].readIfPresent() + value.contentType = try reader["contentType"].readIfPresent() + return value + } +} + +extension IoTClientTypes.StatusReason { + + static func read(from reader: SmithyJSON.Reader) throws -> IoTClientTypes.StatusReason { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTClientTypes.StatusReason() + value.reasonCode = try reader["reasonCode"].readIfPresent() ?? "" + value.reasonDescription = try reader["reasonDescription"].readIfPresent() + return value + } +} + +extension IoTClientTypes.CommandExecutionResult { + + static func read(from reader: SmithyJSON.Reader) throws -> IoTClientTypes.CommandExecutionResult { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTClientTypes.CommandExecutionResult() + value.s = try reader["S"].readIfPresent() + value.b = try reader["B"].readIfPresent() + value.bin = try reader["BIN"].readIfPresent() + return value + } +} + extension IoTClientTypes.EffectivePolicy { static func read(from reader: SmithyJSON.Reader) throws -> IoTClientTypes.EffectivePolicy { @@ -36120,6 +37401,38 @@ extension IoTClientTypes.Certificate { } } +extension IoTClientTypes.CommandExecutionSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> IoTClientTypes.CommandExecutionSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTClientTypes.CommandExecutionSummary() + value.commandArn = try reader["commandArn"].readIfPresent() + value.executionId = try reader["executionId"].readIfPresent() + value.targetArn = try reader["targetArn"].readIfPresent() + value.status = try reader["status"].readIfPresent() + value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.startedAt = try reader["startedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.completedAt = try reader["completedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + return value + } +} + +extension IoTClientTypes.CommandSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> IoTClientTypes.CommandSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTClientTypes.CommandSummary() + value.commandArn = try reader["commandArn"].readIfPresent() + value.commandId = try reader["commandId"].readIfPresent() + value.displayName = try reader["displayName"].readIfPresent() + value.deprecated = try reader["deprecated"].readIfPresent() + value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.lastUpdatedAt = try reader["lastUpdatedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.pendingDeletion = try reader["pendingDeletion"].readIfPresent() + return value + } +} + extension IoTClientTypes.DetectMitigationActionExecution { static func read(from reader: SmithyJSON.Reader) throws -> IoTClientTypes.DetectMitigationActionExecution { @@ -36807,6 +38120,15 @@ extension IoTClientTypes.TermsAggregation { } } +extension IoTClientTypes.TimeFilter { + + static func write(value: IoTClientTypes.TimeFilter?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["after"].write(value.after) + try writer["before"].write(value.before) + } +} + extension IoTClientTypes.LoggingOptionsPayload { static func write(value: IoTClientTypes.LoggingOptionsPayload?, to writer: SmithyJSON.Writer) throws { diff --git a/Sources/Services/AWSIoT/Sources/AWSIoT/Paginators.swift b/Sources/Services/AWSIoT/Sources/AWSIoT/Paginators.swift index 6cb455dda01..11c7d180905 100644 --- a/Sources/Services/AWSIoT/Sources/AWSIoT/Paginators.swift +++ b/Sources/Services/AWSIoT/Sources/AWSIoT/Paginators.swift @@ -438,6 +438,76 @@ extension PaginatorSequence where OperationStackInput == ListCertificatesByCAInp return try await self.asyncCompactMap { item in item.certificates } } } +extension IoTClient { + /// Paginate over `[ListCommandExecutionsOutput]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCommandExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCommandExecutionsOutput` + public func listCommandExecutionsPaginated(input: ListCommandExecutionsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listCommandExecutions(input:)) + } +} + +extension ListCommandExecutionsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListCommandExecutionsInput { + return ListCommandExecutionsInput( + commandArn: self.commandArn, + completedTimeFilter: self.completedTimeFilter, + maxResults: self.maxResults, + namespace: self.namespace, + nextToken: token, + sortOrder: self.sortOrder, + startedTimeFilter: self.startedTimeFilter, + status: self.status, + targetArn: self.targetArn + )} +} + +extension PaginatorSequence where OperationStackInput == ListCommandExecutionsInput, OperationStackOutput == ListCommandExecutionsOutput { + /// This paginator transforms the `AsyncSequence` returned by `listCommandExecutionsPaginated` + /// to access the nested member `[IoTClientTypes.CommandExecutionSummary]` + /// - Returns: `[IoTClientTypes.CommandExecutionSummary]` + public func commandExecutions() async throws -> [IoTClientTypes.CommandExecutionSummary] { + return try await self.asyncCompactMap { item in item.commandExecutions } + } +} +extension IoTClient { + /// Paginate over `[ListCommandsOutput]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCommandsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCommandsOutput` + public func listCommandsPaginated(input: ListCommandsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listCommands(input:)) + } +} + +extension ListCommandsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListCommandsInput { + return ListCommandsInput( + commandParameterName: self.commandParameterName, + maxResults: self.maxResults, + namespace: self.namespace, + nextToken: token, + sortOrder: self.sortOrder + )} +} + +extension PaginatorSequence where OperationStackInput == ListCommandsInput, OperationStackOutput == ListCommandsOutput { + /// This paginator transforms the `AsyncSequence` returned by `listCommandsPaginated` + /// to access the nested member `[IoTClientTypes.CommandSummary]` + /// - Returns: `[IoTClientTypes.CommandSummary]` + public func commands() async throws -> [IoTClientTypes.CommandSummary] { + return try await self.asyncCompactMap { item in item.commands } + } +} extension IoTClient { /// Paginate over `[ListCustomMetricsOutput]` results. /// diff --git a/Sources/Services/AWSIoT1ClickDevicesService/Sources/AWSIoT1ClickDevicesService/IoT1ClickDevicesClient.swift b/Sources/Services/AWSIoT1ClickDevicesService/Sources/AWSIoT1ClickDevicesService/IoT1ClickDevicesClient.swift index d716272b892..839807bfe12 100644 --- a/Sources/Services/AWSIoT1ClickDevicesService/Sources/AWSIoT1ClickDevicesService/IoT1ClickDevicesClient.swift +++ b/Sources/Services/AWSIoT1ClickDevicesService/Sources/AWSIoT1ClickDevicesService/IoT1ClickDevicesClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoT1ClickDevicesClient: ClientRuntime.Client { public static let clientName = "IoT1ClickDevicesClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoT1ClickDevicesClient.IoT1ClickDevicesClientConfiguration let serviceName = "IoT 1Click Devices" diff --git a/Sources/Services/AWSIoT1ClickProjects/Sources/AWSIoT1ClickProjects/IoT1ClickProjectsClient.swift b/Sources/Services/AWSIoT1ClickProjects/Sources/AWSIoT1ClickProjects/IoT1ClickProjectsClient.swift index bb7bcc902d2..44c79e4cc2b 100644 --- a/Sources/Services/AWSIoT1ClickProjects/Sources/AWSIoT1ClickProjects/IoT1ClickProjectsClient.swift +++ b/Sources/Services/AWSIoT1ClickProjects/Sources/AWSIoT1ClickProjects/IoT1ClickProjectsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoT1ClickProjectsClient: ClientRuntime.Client { public static let clientName = "IoT1ClickProjectsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoT1ClickProjectsClient.IoT1ClickProjectsClientConfiguration let serviceName = "IoT 1Click Projects" diff --git a/Sources/Services/AWSIoTAnalytics/Sources/AWSIoTAnalytics/IoTAnalyticsClient.swift b/Sources/Services/AWSIoTAnalytics/Sources/AWSIoTAnalytics/IoTAnalyticsClient.swift index c49543f565b..48101a71e0e 100644 --- a/Sources/Services/AWSIoTAnalytics/Sources/AWSIoTAnalytics/IoTAnalyticsClient.swift +++ b/Sources/Services/AWSIoTAnalytics/Sources/AWSIoTAnalytics/IoTAnalyticsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTAnalyticsClient: ClientRuntime.Client { public static let clientName = "IoTAnalyticsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTAnalyticsClient.IoTAnalyticsClientConfiguration let serviceName = "IoTAnalytics" diff --git a/Sources/Services/AWSIoTDataPlane/Sources/AWSIoTDataPlane/IoTDataPlaneClient.swift b/Sources/Services/AWSIoTDataPlane/Sources/AWSIoTDataPlane/IoTDataPlaneClient.swift index 613d4a6ca87..21f473f4384 100644 --- a/Sources/Services/AWSIoTDataPlane/Sources/AWSIoTDataPlane/IoTDataPlaneClient.swift +++ b/Sources/Services/AWSIoTDataPlane/Sources/AWSIoTDataPlane/IoTDataPlaneClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTDataPlaneClient: ClientRuntime.Client { public static let clientName = "IoTDataPlaneClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTDataPlaneClient.IoTDataPlaneClientConfiguration let serviceName = "IoT Data Plane" diff --git a/Sources/Services/AWSIoTEvents/Sources/AWSIoTEvents/IoTEventsClient.swift b/Sources/Services/AWSIoTEvents/Sources/AWSIoTEvents/IoTEventsClient.swift index 7ef52e49fd0..203c142cb43 100644 --- a/Sources/Services/AWSIoTEvents/Sources/AWSIoTEvents/IoTEventsClient.swift +++ b/Sources/Services/AWSIoTEvents/Sources/AWSIoTEvents/IoTEventsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTEventsClient: ClientRuntime.Client { public static let clientName = "IoTEventsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTEventsClient.IoTEventsClientConfiguration let serviceName = "IoT Events" diff --git a/Sources/Services/AWSIoTEventsData/Sources/AWSIoTEventsData/IoTEventsDataClient.swift b/Sources/Services/AWSIoTEventsData/Sources/AWSIoTEventsData/IoTEventsDataClient.swift index 01ec8cc5c54..c08e6b8b570 100644 --- a/Sources/Services/AWSIoTEventsData/Sources/AWSIoTEventsData/IoTEventsDataClient.swift +++ b/Sources/Services/AWSIoTEventsData/Sources/AWSIoTEventsData/IoTEventsDataClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTEventsDataClient: ClientRuntime.Client { public static let clientName = "IoTEventsDataClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTEventsDataClient.IoTEventsDataClientConfiguration let serviceName = "IoT Events Data" diff --git a/Sources/Services/AWSIoTFleetHub/Sources/AWSIoTFleetHub/IoTFleetHubClient.swift b/Sources/Services/AWSIoTFleetHub/Sources/AWSIoTFleetHub/IoTFleetHubClient.swift index 376af4fc8d3..707fdc9328d 100644 --- a/Sources/Services/AWSIoTFleetHub/Sources/AWSIoTFleetHub/IoTFleetHubClient.swift +++ b/Sources/Services/AWSIoTFleetHub/Sources/AWSIoTFleetHub/IoTFleetHubClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTFleetHubClient: ClientRuntime.Client { public static let clientName = "IoTFleetHubClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTFleetHubClient.IoTFleetHubClientConfiguration let serviceName = "IoTFleetHub" diff --git a/Sources/Services/AWSIoTFleetWise/Sources/AWSIoTFleetWise/IoTFleetWiseClient.swift b/Sources/Services/AWSIoTFleetWise/Sources/AWSIoTFleetWise/IoTFleetWiseClient.swift index a297d6b9f45..a583b1906f0 100644 --- a/Sources/Services/AWSIoTFleetWise/Sources/AWSIoTFleetWise/IoTFleetWiseClient.swift +++ b/Sources/Services/AWSIoTFleetWise/Sources/AWSIoTFleetWise/IoTFleetWiseClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTFleetWiseClient: ClientRuntime.Client { public static let clientName = "IoTFleetWiseClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTFleetWiseClient.IoTFleetWiseClientConfiguration let serviceName = "IoTFleetWise" @@ -421,7 +421,7 @@ extension IoTFleetWiseClient { /// Performs the `CreateCampaign` operation on the `IoTAutobahnControlPlane` service. /// - /// Creates an orchestration of data collection rules. The Amazon Web Services IoT FleetWise Edge Agent software running in vehicles uses campaigns to decide how to collect and transfer data to the cloud. You create campaigns in the cloud. After you or your team approve campaigns, Amazon Web Services IoT FleetWise automatically deploys them to vehicles. For more information, see [Collect and transfer data with campaigns](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/campaigns.html) in the Amazon Web Services IoT FleetWise Developer Guide. + /// Creates an orchestration of data collection rules. The Amazon Web Services IoT FleetWise Edge Agent software running in vehicles uses campaigns to decide how to collect and transfer data to the cloud. You create campaigns in the cloud. After you or your team approve campaigns, Amazon Web Services IoT FleetWise automatically deploys them to vehicles. For more information, see [Collect and transfer data with campaigns](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/campaigns.html) in the Amazon Web Services IoT FleetWise Developer Guide. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. /// /// - Parameter CreateCampaignInput : [no documentation found] /// @@ -810,6 +810,83 @@ extension IoTFleetWiseClient { return try await op.execute(input: input) } + /// Performs the `CreateStateTemplate` operation on the `IoTAutobahnControlPlane` service. + /// + /// Creates a state template. State templates contain state properties, which are signals that belong to a signal catalog that is synchronized between the Amazon Web Services IoT FleetWise Edge and the Amazon Web Services Cloud. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + /// + /// - Parameter CreateStateTemplateInput : [no documentation found] + /// + /// - Returns: `CreateStateTemplateOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You don't have sufficient permission to perform this action. + /// - `ConflictException` : The request has conflicting operations. This can occur if you're trying to perform more than one operation on the same resource at the same time. + /// - `InternalServerException` : The request couldn't be completed because the server temporarily failed. + /// - `InvalidSignalsException` : The request couldn't be completed because it contains signals that aren't valid. + /// - `LimitExceededException` : A service quota was exceeded. + /// - `ResourceNotFoundException` : The resource wasn't found. + /// - `ThrottlingException` : The request couldn't be completed due to throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an Amazon Web Services service. + public func createStateTemplate(input: CreateStateTemplateInput) async throws -> CreateStateTemplateOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createStateTemplate") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iotfleetwise") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateStateTemplateInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateStateTemplateOutput.httpOutput(from:), CreateStateTemplateOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTFleetWiseClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "IoTAutobahnControlPlane.CreateStateTemplate")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateStateTemplateInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoTFleetWise") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateStateTemplate") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `CreateVehicle` operation on the `IoTAutobahnControlPlane` service. /// /// Creates a vehicle, which is an instance of a vehicle model (model manifest). Vehicles created from the same vehicle model consist of the same signals inherited from the vehicle model. If you have an existing Amazon Web Services IoT thing, you can use Amazon Web Services IoT FleetWise to create a vehicle and collect data from your thing. For more information, see [Create a vehicle (AWS CLI)](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/create-vehicle-cli.html) in the Amazon Web Services IoT FleetWise Developer Guide. @@ -962,7 +1039,7 @@ extension IoTFleetWiseClient { /// Performs the `DeleteDecoderManifest` operation on the `IoTAutobahnControlPlane` service. /// - /// Deletes a decoder manifest. You can't delete a decoder manifest if it has vehicles associated with it. If the decoder manifest is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body. + /// Deletes a decoder manifest. You can't delete a decoder manifest if it has vehicles associated with it. /// /// - Parameter DeleteDecoderManifestInput : [no documentation found] /// @@ -1036,7 +1113,7 @@ extension IoTFleetWiseClient { /// Performs the `DeleteFleet` operation on the `IoTAutobahnControlPlane` service. /// - /// Deletes a fleet. Before you delete a fleet, all vehicles must be dissociated from the fleet. For more information, see [Delete a fleet (AWS CLI)](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/delete-fleet-cli.html) in the Amazon Web Services IoT FleetWise Developer Guide. If the fleet is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body. + /// Deletes a fleet. Before you delete a fleet, all vehicles must be dissociated from the fleet. For more information, see [Delete a fleet (AWS CLI)](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/delete-fleet-cli.html) in the Amazon Web Services IoT FleetWise Developer Guide. /// /// - Parameter DeleteFleetInput : [no documentation found] /// @@ -1109,7 +1186,7 @@ extension IoTFleetWiseClient { /// Performs the `DeleteModelManifest` operation on the `IoTAutobahnControlPlane` service. /// - /// Deletes a vehicle model (model manifest). If the vehicle model is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body. + /// Deletes a vehicle model (model manifest). /// /// - Parameter DeleteModelManifestInput : [no documentation found] /// @@ -1183,7 +1260,7 @@ extension IoTFleetWiseClient { /// Performs the `DeleteSignalCatalog` operation on the `IoTAutobahnControlPlane` service. /// - /// Deletes a signal catalog. If the signal catalog is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body. + /// Deletes a signal catalog. /// /// - Parameter DeleteSignalCatalogInput : [no documentation found] /// @@ -1255,9 +1332,82 @@ extension IoTFleetWiseClient { return try await op.execute(input: input) } + /// Performs the `DeleteStateTemplate` operation on the `IoTAutobahnControlPlane` service. + /// + /// Deletes a state template. + /// + /// - Parameter DeleteStateTemplateInput : [no documentation found] + /// + /// - Returns: `DeleteStateTemplateOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You don't have sufficient permission to perform this action. + /// - `InternalServerException` : The request couldn't be completed because the server temporarily failed. + /// - `ThrottlingException` : The request couldn't be completed due to throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an Amazon Web Services service. + public func deleteStateTemplate(input: DeleteStateTemplateInput) async throws -> DeleteStateTemplateOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteStateTemplate") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iotfleetwise") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteStateTemplateInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteStateTemplateOutput.httpOutput(from:), DeleteStateTemplateOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTFleetWiseClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "IoTAutobahnControlPlane.DeleteStateTemplate")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteStateTemplateInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoTFleetWise") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteStateTemplate") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DeleteVehicle` operation on the `IoTAutobahnControlPlane` service. /// - /// Deletes a vehicle and removes it from any campaigns. If the vehicle is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body. + /// Deletes a vehicle and removes it from any campaigns. /// /// - Parameter DeleteVehicleInput : [no documentation found] /// @@ -1330,7 +1480,7 @@ extension IoTFleetWiseClient { /// Performs the `DisassociateVehicleFleet` operation on the `IoTAutobahnControlPlane` service. /// - /// Removes, or disassociates, a vehicle from a fleet. Disassociating a vehicle from a fleet doesn't delete the vehicle. If the vehicle is successfully dissociated from a fleet, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body. + /// Removes, or disassociates, a vehicle from a fleet. Disassociating a vehicle from a fleet doesn't delete the vehicle. /// /// - Parameter DisassociateVehicleFleetInput : [no documentation found] /// @@ -1404,7 +1554,7 @@ extension IoTFleetWiseClient { /// Performs the `GetCampaign` operation on the `IoTAutobahnControlPlane` service. /// - /// Retrieves information about a campaign. + /// Retrieves information about a campaign. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. /// /// - Parameter GetCampaignInput : [no documentation found] /// @@ -1992,6 +2142,80 @@ extension IoTFleetWiseClient { return try await op.execute(input: input) } + /// Performs the `GetStateTemplate` operation on the `IoTAutobahnControlPlane` service. + /// + /// Retrieves information about a state template. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + /// + /// - Parameter GetStateTemplateInput : [no documentation found] + /// + /// - Returns: `GetStateTemplateOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You don't have sufficient permission to perform this action. + /// - `InternalServerException` : The request couldn't be completed because the server temporarily failed. + /// - `ResourceNotFoundException` : The resource wasn't found. + /// - `ThrottlingException` : The request couldn't be completed due to throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an Amazon Web Services service. + public func getStateTemplate(input: GetStateTemplateInput) async throws -> GetStateTemplateOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getStateTemplate") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iotfleetwise") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetStateTemplateInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetStateTemplateOutput.httpOutput(from:), GetStateTemplateOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTFleetWiseClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "IoTAutobahnControlPlane.GetStateTemplate")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetStateTemplateInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoTFleetWise") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetStateTemplate") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `GetVehicle` operation on the `IoTAutobahnControlPlane` service. /// /// Retrieves information about a vehicle. @@ -2068,7 +2292,7 @@ extension IoTFleetWiseClient { /// Performs the `GetVehicleStatus` operation on the `IoTAutobahnControlPlane` service. /// - /// Retrieves information about the status of a vehicle with any associated campaigns. + /// Retrieves information about the status of campaigns, decoder manifests, or state templates associated with a vehicle. /// /// - Parameter GetVehicleStatusInput : [no documentation found] /// @@ -2143,7 +2367,7 @@ extension IoTFleetWiseClient { /// Performs the `ImportDecoderManifest` operation on the `IoTAutobahnControlPlane` service. /// - /// Creates a decoder manifest using your existing CAN DBC file from your local device. + /// Creates a decoder manifest using your existing CAN DBC file from your local device. The CAN signal name must be unique and not repeated across CAN message definitions in a .dbc file. /// /// - Parameter ImportDecoderManifestInput : [no documentation found] /// @@ -3043,6 +3267,80 @@ extension IoTFleetWiseClient { return try await op.execute(input: input) } + /// Performs the `ListStateTemplates` operation on the `IoTAutobahnControlPlane` service. + /// + /// Lists information about created state templates. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + /// + /// - Parameter ListStateTemplatesInput : [no documentation found] + /// + /// - Returns: `ListStateTemplatesOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You don't have sufficient permission to perform this action. + /// - `InternalServerException` : The request couldn't be completed because the server temporarily failed. + /// - `ThrottlingException` : The request couldn't be completed due to throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an Amazon Web Services service. + public func listStateTemplates(input: ListStateTemplatesInput) async throws -> ListStateTemplatesOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listStateTemplates") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iotfleetwise") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListStateTemplatesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListStateTemplatesInput.queryItemProvider(_:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListStateTemplatesOutput.httpOutput(from:), ListStateTemplatesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTFleetWiseClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "IoTAutobahnControlPlane.ListStateTemplates")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListStateTemplatesInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoTFleetWise") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListStateTemplates") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListTagsForResource` operation on the `IoTAutobahnControlPlane` service. /// /// Lists the tags (metadata) you have assigned to the resource. @@ -3796,7 +4094,7 @@ extension IoTFleetWiseClient { /// Performs the `UpdateFleet` operation on the `IoTAutobahnControlPlane` service. /// - /// Updates the description of an existing fleet. If the fleet is successfully updated, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty HTTP body. + /// Updates the description of an existing fleet. /// /// - Parameter UpdateFleetInput : [no documentation found] /// @@ -4023,6 +4321,82 @@ extension IoTFleetWiseClient { return try await op.execute(input: input) } + /// Performs the `UpdateStateTemplate` operation on the `IoTAutobahnControlPlane` service. + /// + /// Updates a state template. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + /// + /// - Parameter UpdateStateTemplateInput : [no documentation found] + /// + /// - Returns: `UpdateStateTemplateOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You don't have sufficient permission to perform this action. + /// - `InternalServerException` : The request couldn't be completed because the server temporarily failed. + /// - `InvalidSignalsException` : The request couldn't be completed because it contains signals that aren't valid. + /// - `LimitExceededException` : A service quota was exceeded. + /// - `ResourceNotFoundException` : The resource wasn't found. + /// - `ThrottlingException` : The request couldn't be completed due to throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an Amazon Web Services service. + public func updateStateTemplate(input: UpdateStateTemplateInput) async throws -> UpdateStateTemplateOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "updateStateTemplate") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iotfleetwise") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateStateTemplateInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateStateTemplateOutput.httpOutput(from:), UpdateStateTemplateOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTFleetWiseClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "IoTAutobahnControlPlane.UpdateStateTemplate")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateStateTemplateInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoTFleetWise") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateStateTemplate") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `UpdateVehicle` operation on the `IoTAutobahnControlPlane` service. /// /// Updates a vehicle. diff --git a/Sources/Services/AWSIoTFleetWise/Sources/AWSIoTFleetWise/Models.swift b/Sources/Services/AWSIoTFleetWise/Sources/AWSIoTFleetWise/Models.swift index 0f181d0f41c..3722cc8aab1 100644 --- a/Sources/Services/AWSIoTFleetWise/Sources/AWSIoTFleetWise/Models.swift +++ b/Sources/Services/AWSIoTFleetWise/Sources/AWSIoTFleetWise/Models.swift @@ -558,6 +558,123 @@ extension IoTFleetWiseClientTypes { } } +extension IoTFleetWiseClientTypes { + + /// Vehicles associated with the state template will stream telemetry data when there is a change. + public struct OnChangeStateTemplateUpdateStrategy: Swift.Sendable { + + public init() { } + } +} + +extension IoTFleetWiseClientTypes { + + public enum TimeUnit: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case hour + case millisecond + case minute + case second + case sdkUnknown(Swift.String) + + public static var allCases: [TimeUnit] { + return [ + .hour, + .millisecond, + .minute, + .second + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .hour: return "HOUR" + case .millisecond: return "MILLISECOND" + case .minute: return "MINUTE" + case .second: return "SECOND" + case let .sdkUnknown(s): return s + } + } + } +} + +extension IoTFleetWiseClientTypes { + + /// The length of time between state template updates. + public struct TimePeriod: Swift.Sendable { + /// A unit of time. + /// This member is required. + public var unit: IoTFleetWiseClientTypes.TimeUnit? + /// A number of time units. + /// This member is required. + public var value: Swift.Int? + + public init( + unit: IoTFleetWiseClientTypes.TimeUnit? = nil, + value: Swift.Int? = nil + ) + { + self.unit = unit + self.value = value + } + } +} + +extension IoTFleetWiseClientTypes { + + /// Vehicles associated with the state template will stream telemetry data during a specified time period. + public struct PeriodicStateTemplateUpdateStrategy: Swift.Sendable { + /// The length of time between state template updates. + /// This member is required. + public var stateTemplateUpdateRate: IoTFleetWiseClientTypes.TimePeriod? + + public init( + stateTemplateUpdateRate: IoTFleetWiseClientTypes.TimePeriod? = nil + ) + { + self.stateTemplateUpdateRate = stateTemplateUpdateRate + } + } +} + +extension IoTFleetWiseClientTypes { + + /// The update strategy for the state template. Vehicles associated with the state template can stream telemetry data with either an onChange or periodic update strategy. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public enum StateTemplateUpdateStrategy: Swift.Sendable { + /// Vehicles associated with the state template will stream telemetry data during a specified time period. + case periodic(IoTFleetWiseClientTypes.PeriodicStateTemplateUpdateStrategy) + /// Vehicles associated with the state template will stream telemetry data when there is a change. + case onchange(IoTFleetWiseClientTypes.OnChangeStateTemplateUpdateStrategy) + case sdkUnknown(Swift.String) + } +} + +extension IoTFleetWiseClientTypes { + + /// The state template associated with a vehicle. State templates contain state properties, which are signals that belong to a signal catalog that is synchronized between the Amazon Web Services IoT FleetWise Edge and the Amazon Web Services Cloud. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public struct StateTemplateAssociation: Swift.Sendable { + /// A unique, service-generated identifier. + /// This member is required. + public var identifier: Swift.String? + /// The update strategy for the state template. Vehicles associated with the state template can stream telemetry data with either an onChange or periodic update strategy. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + /// This member is required. + public var stateTemplateUpdateStrategy: IoTFleetWiseClientTypes.StateTemplateUpdateStrategy? + + public init( + identifier: Swift.String? = nil, + stateTemplateUpdateStrategy: IoTFleetWiseClientTypes.StateTemplateUpdateStrategy? = nil + ) + { + self.identifier = identifier + self.stateTemplateUpdateStrategy = stateTemplateUpdateStrategy + } + } +} + extension IoTFleetWiseClientTypes { /// A set of key/value pairs that are used to manage the resource. @@ -594,6 +711,8 @@ extension IoTFleetWiseClientTypes { /// The ARN of the vehicle model (model manifest) to create the vehicle from. /// This member is required. public var modelManifestArn: Swift.String? + /// Associate state templates to track the state of the vehicle. State templates determine which signal updates the vehicle sends to the cloud. + public var stateTemplates: [IoTFleetWiseClientTypes.StateTemplateAssociation]? /// Metadata which can be used to manage the vehicle. public var tags: [IoTFleetWiseClientTypes.Tag]? /// The unique ID of the vehicle to create. @@ -605,6 +724,7 @@ extension IoTFleetWiseClientTypes { attributes: [Swift.String: Swift.String]? = nil, decoderManifestArn: Swift.String? = nil, modelManifestArn: Swift.String? = nil, + stateTemplates: [IoTFleetWiseClientTypes.StateTemplateAssociation]? = nil, tags: [IoTFleetWiseClientTypes.Tag]? = nil, vehicleName: Swift.String? = nil ) @@ -613,6 +733,7 @@ extension IoTFleetWiseClientTypes { self.attributes = attributes self.decoderManifestArn = decoderManifestArn self.modelManifestArn = modelManifestArn + self.stateTemplates = stateTemplates self.tags = tags self.vehicleName = vehicleName } @@ -737,6 +858,10 @@ extension IoTFleetWiseClientTypes { public var decoderManifestArn: Swift.String? /// The ARN of the vehicle model (model manifest) associated with the vehicle to update. public var modelManifestArn: Swift.String? + /// Associate additional state templates to track the state of the vehicle. State templates determine which signal updates the vehicle sends to the cloud. + public var stateTemplatesToAdd: [IoTFleetWiseClientTypes.StateTemplateAssociation]? + /// Remove existing state template associations from the vehicle. + public var stateTemplatesToRemove: [Swift.String]? /// The unique ID of the vehicle to update. /// This member is required. public var vehicleName: Swift.String? @@ -746,6 +871,8 @@ extension IoTFleetWiseClientTypes { attributes: [Swift.String: Swift.String]? = nil, decoderManifestArn: Swift.String? = nil, modelManifestArn: Swift.String? = nil, + stateTemplatesToAdd: [IoTFleetWiseClientTypes.StateTemplateAssociation]? = nil, + stateTemplatesToRemove: [Swift.String]? = nil, vehicleName: Swift.String? = nil ) { @@ -753,6 +880,8 @@ extension IoTFleetWiseClientTypes { self.attributes = attributes self.decoderManifestArn = decoderManifestArn self.modelManifestArn = modelManifestArn + self.stateTemplatesToAdd = stateTemplatesToAdd + self.stateTemplatesToRemove = stateTemplatesToRemove self.vehicleName = vehicleName } } @@ -1016,6 +1145,28 @@ extension IoTFleetWiseClientTypes { } } +extension IoTFleetWiseClientTypes { + + /// The MQTT topic to which the Amazon Web Services IoT FleetWise campaign routes data. For more information, see [Device communication protocols](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html) in the Amazon Web Services IoT Core Developer Guide. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public struct MqttTopicConfig: Swift.Sendable { + /// The ARN of the role that grants Amazon Web Services IoT FleetWise permission to access and act on messages sent to the MQTT topic. + /// This member is required. + public var executionRoleArn: Swift.String? + /// The ARN of the MQTT topic. + /// This member is required. + public var mqttTopicArn: Swift.String? + + public init( + executionRoleArn: Swift.String? = nil, + mqttTopicArn: Swift.String? = nil + ) + { + self.executionRoleArn = executionRoleArn + self.mqttTopicArn = mqttTopicArn + } + } +} + extension IoTFleetWiseClientTypes { public enum DataFormat: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -1087,7 +1238,7 @@ extension IoTFleetWiseClientTypes { /// /// * JSON - Store data in a standard text-based JSON file format. public var dataFormat: IoTFleetWiseClientTypes.DataFormat? - /// (Optional) Enter an S3 bucket prefix. The prefix is the string of characters after the bucket name and before the object name. You can use the prefix to organize data stored in Amazon S3 buckets. For more information, see [Organizing objects using prefixes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) in the Amazon Simple Storage Service User Guide. By default, Amazon Web Services IoT FleetWise sets the prefix processed-data/year=YY/month=MM/date=DD/hour=HH/ (in UTC) to data it delivers to Amazon S3. You can enter a prefix to append it to this default prefix. For example, if you enter the prefix vehicles, the prefix will be vehicles/processed-data/year=YY/month=MM/date=DD/hour=HH/. + /// Enter an S3 bucket prefix. The prefix is the string of characters after the bucket name and before the object name. You can use the prefix to organize data stored in Amazon S3 buckets. For more information, see [Organizing objects using prefixes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) in the Amazon Simple Storage Service User Guide. By default, Amazon Web Services IoT FleetWise sets the prefix processed-data/year=YY/month=MM/date=DD/hour=HH/ (in UTC) to data it delivers to Amazon S3. You can enter a prefix to append it to this default prefix. For example, if you enter the prefix vehicles, the prefix will be vehicles/processed-data/year=YY/month=MM/date=DD/hour=HH/. public var `prefix`: Swift.String? /// By default, stored data is compressed as a .gzip file. Compressed files have a reduced file size, which can optimize the cost of data storage. public var storageCompressionFormat: IoTFleetWiseClientTypes.StorageCompressionFormat? @@ -1131,13 +1282,213 @@ extension IoTFleetWiseClientTypes { extension IoTFleetWiseClientTypes { - /// The destination where the Amazon Web Services IoT FleetWise campaign sends data. You can send data to be stored in Amazon S3 or Amazon Timestream. + /// The destination where the campaign sends data. You can send data to an MQTT topic, or store it in Amazon S3 or Amazon Timestream. public enum DataDestinationConfig: Swift.Sendable { /// The Amazon S3 bucket where the Amazon Web Services IoT FleetWise campaign sends data. case s3config(IoTFleetWiseClientTypes.S3Config) /// The Amazon Timestream table where the campaign sends data. case timestreamconfig(IoTFleetWiseClientTypes.TimestreamConfig) + /// The MQTT topic to which the Amazon Web Services IoT FleetWise campaign routes data. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + case mqtttopicconfig(IoTFleetWiseClientTypes.MqttTopicConfig) + case sdkUnknown(Swift.String) + } +} + +extension IoTFleetWiseClientTypes { + + public enum StorageMaximumSizeUnit: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case gb + case mb + case tb + case sdkUnknown(Swift.String) + + public static var allCases: [StorageMaximumSizeUnit] { + return [ + .gb, + .mb, + .tb + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .gb: return "GB" + case .mb: return "MB" + case .tb: return "TB" + case let .sdkUnknown(s): return s + } + } + } +} + +extension IoTFleetWiseClientTypes { + + /// The maximum storage size for the data partition. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public struct StorageMaximumSize: Swift.Sendable { + /// The data type of the data to store. + /// This member is required. + public var unit: IoTFleetWiseClientTypes.StorageMaximumSizeUnit? + /// The maximum amount of time to store data. + /// This member is required. + public var value: Swift.Int? + + public init( + unit: IoTFleetWiseClientTypes.StorageMaximumSizeUnit? = nil, + value: Swift.Int? = nil + ) + { + self.unit = unit + self.value = value + } + } +} + +extension IoTFleetWiseClientTypes { + + public enum StorageMinimumTimeToLiveUnit: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case days + case hours + case weeks case sdkUnknown(Swift.String) + + public static var allCases: [StorageMinimumTimeToLiveUnit] { + return [ + .days, + .hours, + .weeks + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .days: return "DAYS" + case .hours: return "HOURS" + case .weeks: return "WEEKS" + case let .sdkUnknown(s): return s + } + } + } +} + +extension IoTFleetWiseClientTypes { + + /// Information about the minimum amount of time that data will be kept. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public struct StorageMinimumTimeToLive: Swift.Sendable { + /// The time increment type. + /// This member is required. + public var unit: IoTFleetWiseClientTypes.StorageMinimumTimeToLiveUnit? + /// The minimum amount of time to store the data. + /// This member is required. + public var value: Swift.Int? + + public init( + unit: IoTFleetWiseClientTypes.StorageMinimumTimeToLiveUnit? = nil, + value: Swift.Int? = nil + ) + { + self.unit = unit + self.value = value + } + } +} + +extension IoTFleetWiseClientTypes { + + /// Size, time, and location options for the data partition. + public struct DataPartitionStorageOptions: Swift.Sendable { + /// The maximum storage size of the data stored in the data partition. Newer data overwrites older data when the partition reaches the maximum size. + /// This member is required. + public var maximumSize: IoTFleetWiseClientTypes.StorageMaximumSize? + /// The amount of time that data in this partition will be kept on disk. + /// + /// * After the designated amount of time passes, the data can be removed, but it's not guaranteed to be removed. + /// + /// * Before the time expires, data in this partition can still be deleted if the partition reaches its configured maximum size. + /// + /// * Newer data will overwrite older data when the partition reaches the maximum size. + /// This member is required. + public var minimumTimeToLive: IoTFleetWiseClientTypes.StorageMinimumTimeToLive? + /// The folder name for the data partition under the campaign storage folder. + /// This member is required. + public var storageLocation: Swift.String? + + public init( + maximumSize: IoTFleetWiseClientTypes.StorageMaximumSize? = nil, + minimumTimeToLive: IoTFleetWiseClientTypes.StorageMinimumTimeToLive? = nil, + storageLocation: Swift.String? = nil + ) + { + self.maximumSize = maximumSize + self.minimumTimeToLive = minimumTimeToLive + self.storageLocation = storageLocation + } + } +} + +extension IoTFleetWiseClientTypes.DataPartitionStorageOptions: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "DataPartitionStorageOptions(maximumSize: \(Swift.String(describing: maximumSize)), minimumTimeToLive: \(Swift.String(describing: minimumTimeToLive)), storageLocation: \"CONTENT_REDACTED\")"} +} + +extension IoTFleetWiseClientTypes { + + /// The upload options for the data partition. If upload options are specified, you must also specify storage options. See [DataPartitionStorageOptions](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_DataPartitionStorageOptions.html). Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public struct DataPartitionUploadOptions: Swift.Sendable { + /// The version of the condition language. Defaults to the most recent condition language version. + public var conditionLanguageVersion: Swift.Int? + /// The logical expression used to recognize what data to collect. For example, $variable.`Vehicle.OutsideAirTemperature` >= 105.0. + /// This member is required. + public var expression: Swift.String? + + public init( + conditionLanguageVersion: Swift.Int? = nil, + expression: Swift.String? = nil + ) + { + self.conditionLanguageVersion = conditionLanguageVersion + self.expression = expression + } + } +} + +extension IoTFleetWiseClientTypes.DataPartitionUploadOptions: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "DataPartitionUploadOptions(conditionLanguageVersion: \(Swift.String(describing: conditionLanguageVersion)), expression: \"CONTENT_REDACTED\")"} +} + +extension IoTFleetWiseClientTypes { + + /// The configuration for signal data storage and upload options. You can only specify these options when the campaign's spooling mode is TO_DISK. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public struct DataPartition: Swift.Sendable { + /// The ID of the data partition. The data partition ID must be unique within a campaign. You can establish a data partition as the default partition for a campaign by using default as the ID. + /// This member is required. + public var id: Swift.String? + /// The storage options for a data partition. + /// This member is required. + public var storageOptions: IoTFleetWiseClientTypes.DataPartitionStorageOptions? + /// The upload options for the data partition. + public var uploadOptions: IoTFleetWiseClientTypes.DataPartitionUploadOptions? + + public init( + id: Swift.String? = nil, + storageOptions: IoTFleetWiseClientTypes.DataPartitionStorageOptions? = nil, + uploadOptions: IoTFleetWiseClientTypes.DataPartitionUploadOptions? = nil + ) + { + self.id = id + self.storageOptions = storageOptions + self.uploadOptions = uploadOptions + } } } @@ -1174,6 +1525,8 @@ extension IoTFleetWiseClientTypes { /// Information about a signal. public struct SignalInformation: Swift.Sendable { + /// The ID of the data partition this signal is associated with. The ID must match one of the IDs provided in dataPartitions. This is accomplished either by specifying a particular data partition ID or by using default for an established default partition. You can establish a default partition in the DataPartition data type. If you upload a signal as a condition for a campaign's data partition, the same signal must be included in signalsToCollect. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public var dataPartitionId: Swift.String? /// The maximum number of samples to collect. public var maxSampleCount: Swift.Int? /// The minimum duration of time (in milliseconds) between two triggering events to collect data. If a signal changes often, you might want to collect data at a slower rate. @@ -1183,11 +1536,13 @@ extension IoTFleetWiseClientTypes { public var name: Swift.String? public init( + dataPartitionId: Swift.String? = nil, maxSampleCount: Swift.Int? = nil, minimumSamplingIntervalMs: Swift.Int? = nil, name: Swift.String? = nil ) { + self.dataPartitionId = dataPartitionId self.maxSampleCount = maxSampleCount self.minimumSamplingIntervalMs = minimumSamplingIntervalMs self.name = name @@ -1195,6 +1550,98 @@ extension IoTFleetWiseClientTypes { } } +extension IoTFleetWiseClientTypes { + + /// Specifies the condition under which a signal fetch occurs. + public struct ConditionBasedSignalFetchConfig: Swift.Sendable { + /// The condition that must be satisfied to trigger a signal fetch. + /// This member is required. + public var conditionExpression: Swift.String? + /// Indicates the mode in which the signal fetch is triggered. + /// This member is required. + public var triggerMode: IoTFleetWiseClientTypes.TriggerMode? + + public init( + conditionExpression: Swift.String? = nil, + triggerMode: IoTFleetWiseClientTypes.TriggerMode? = nil + ) + { + self.conditionExpression = conditionExpression + self.triggerMode = triggerMode + } + } +} + +extension IoTFleetWiseClientTypes.ConditionBasedSignalFetchConfig: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "ConditionBasedSignalFetchConfig(triggerMode: \(Swift.String(describing: triggerMode)), conditionExpression: \"CONTENT_REDACTED\")"} +} + +extension IoTFleetWiseClientTypes { + + /// Used to configure a frequency-based vehicle signal fetch. + public struct TimeBasedSignalFetchConfig: Swift.Sendable { + /// The frequency with which the signal fetch will be executed. + /// This member is required. + public var executionFrequencyMs: Swift.Int? + + public init( + executionFrequencyMs: Swift.Int? = nil + ) + { + self.executionFrequencyMs = executionFrequencyMs + } + } +} + +extension IoTFleetWiseClientTypes { + + /// The configuration of the signal fetch operation. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public enum SignalFetchConfig: Swift.Sendable { + /// The configuration of a time-based signal fetch operation. + case timebased(IoTFleetWiseClientTypes.TimeBasedSignalFetchConfig) + /// The configuration of a condition-based signal fetch operation. + case conditionbased(IoTFleetWiseClientTypes.ConditionBasedSignalFetchConfig) + case sdkUnknown(Swift.String) + } +} + +extension IoTFleetWiseClientTypes { + + /// Information about the signal to be fetched. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public struct SignalFetchInformation: Swift.Sendable { + /// The actions to be performed by the signal fetch. + /// This member is required. + public var actions: [Swift.String]? + /// The version of the condition language used. + public var conditionLanguageVersion: Swift.Int? + /// The fully qualified name of the signal to be fetched. + /// This member is required. + public var fullyQualifiedName: Swift.String? + /// The configuration of the signal fetch operation. + /// This member is required. + public var signalFetchConfig: IoTFleetWiseClientTypes.SignalFetchConfig? + + public init( + actions: [Swift.String]? = nil, + conditionLanguageVersion: Swift.Int? = nil, + fullyQualifiedName: Swift.String? = nil, + signalFetchConfig: IoTFleetWiseClientTypes.SignalFetchConfig? = nil + ) + { + self.actions = actions + self.conditionLanguageVersion = conditionLanguageVersion + self.fullyQualifiedName = fullyQualifiedName + self.signalFetchConfig = signalFetchConfig + } + } +} + +extension IoTFleetWiseClientTypes.SignalFetchInformation: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "SignalFetchInformation(conditionLanguageVersion: \(Swift.String(describing: conditionLanguageVersion)), fullyQualifiedName: \(Swift.String(describing: fullyQualifiedName)), signalFetchConfig: \(Swift.String(describing: signalFetchConfig)), actions: \"CONTENT_REDACTED\")"} +} + extension IoTFleetWiseClientTypes { public enum SpoolingMode: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -1228,34 +1675,38 @@ public struct CreateCampaignInput: Swift.Sendable { /// The data collection scheme associated with the campaign. You can specify a scheme that collects data based on time or an event. /// This member is required. public var collectionScheme: IoTFleetWiseClientTypes.CollectionScheme? - /// (Optional) Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If you don't want to compress the signals, use OFF. If it's not specified, SNAPPY is used. Default: SNAPPY + /// Determines whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If you don't want to compress the signals, use OFF. If it's not specified, SNAPPY is used. Default: SNAPPY public var compression: IoTFleetWiseClientTypes.Compression? - /// The destination where the campaign sends data. You can choose to send data to be stored in Amazon S3 or Amazon Timestream. Amazon S3 optimizes the cost of data storage and provides additional mechanisms to use vehicle data, such as data lakes, centralized data storage, data processing pipelines, and analytics. Amazon Web Services IoT FleetWise supports at-least-once file delivery to S3. Your vehicle data is stored on multiple Amazon Web Services IoT FleetWise servers for redundancy and high availability. You can use Amazon Timestream to access and analyze time series data, and Timestream to query vehicle data so that you can identify trends and patterns. + /// The destination where the campaign sends data. You can send data to an MQTT topic, or store it in Amazon S3 or Amazon Timestream. MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with your devices. Amazon S3 optimizes the cost of data storage and provides additional mechanisms to use vehicle data, such as data lakes, centralized data storage, data processing pipelines, and analytics. Amazon Web Services IoT FleetWise supports at-least-once file delivery to S3. Your vehicle data is stored on multiple Amazon Web Services IoT FleetWise servers for redundancy and high availability. You can use Amazon Timestream to access and analyze time series data, and Timestream to query vehicle data so that you can identify trends and patterns. public var dataDestinationConfigs: [IoTFleetWiseClientTypes.DataDestinationConfig]? - /// (Optional) A list of vehicle attributes to associate with a campaign. Enrich the data with specified vehicle attributes. For example, add make and model to the campaign, and Amazon Web Services IoT FleetWise will associate the data with those attributes as dimensions in Amazon Timestream. You can then query the data against make and model. Default: An empty array + /// A list of vehicle attributes to associate with a campaign. Enrich the data with specified vehicle attributes. For example, add make and model to the campaign, and Amazon Web Services IoT FleetWise will associate the data with those attributes as dimensions in Amazon Timestream. You can then query the data against make and model. Default: An empty array public var dataExtraDimensions: [Swift.String]? + /// The data partitions associated with the signals collected from the vehicle. + public var dataPartitions: [IoTFleetWiseClientTypes.DataPartition]? /// An optional description of the campaign to help identify its purpose. public var description: Swift.String? - /// (Optional) Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. If you want to send diagnostic trouble codes, use SEND_ACTIVE_DTCS. If it's not specified, OFF is used. Default: OFF + /// Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. If you want to send diagnostic trouble codes, use SEND_ACTIVE_DTCS. If it's not specified, OFF is used. Default: OFF public var diagnosticsMode: IoTFleetWiseClientTypes.DiagnosticsMode? - /// (Optional) The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data isn't collected after the campaign expires. Default: 253402214400 (December 31, 9999, 00:00:00 UTC) + /// The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data isn't collected after the campaign expires. Default: 253402214400 (December 31, 9999, 00:00:00 UTC) public var expiryTime: Foundation.Date? /// The name of the campaign to create. /// This member is required. public var name: Swift.String? - /// (Optional) How long (in milliseconds) to collect raw data after a triggering event initiates the collection. If it's not specified, 0 is used. Default: 0 + /// How long (in milliseconds) to collect raw data after a triggering event initiates the collection. If it's not specified, 0 is used. Default: 0 public var postTriggerCollectionDuration: Swift.Int? - /// (Optional) A number indicating the priority of one campaign over another campaign for a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles before any other campaigns. If it's not specified, 0 is used. Default: 0 + /// A number indicating the priority of one campaign over another campaign for a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles before any other campaigns. If it's not specified, 0 is used. Default: 0 @available(*, deprecated, message: "priority is no longer used or needed as input") public var priority: Swift.Int? /// The Amazon Resource Name (ARN) of the signal catalog to associate with the campaign. /// This member is required. public var signalCatalogArn: Swift.String? - /// (Optional) A list of information about signals to collect. + /// A list of information about signals to collect. If you upload a signal as a condition in a data partition for a campaign, then those same signals must be included in signalsToCollect. public var signalsToCollect: [IoTFleetWiseClientTypes.SignalInformation]? - /// (Optional) Whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise. If you want to store collected data when a vehicle loses connection with the cloud, use TO_DISK. If it's not specified, OFF is used. Default: OFF + /// A list of information about signals to fetch. + public var signalsToFetch: [IoTFleetWiseClientTypes.SignalFetchInformation]? + /// Determines whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise. If you want to store collected data when a vehicle loses connection with the cloud, use TO_DISK. If it's not specified, OFF is used. Default: OFF public var spoolingMode: IoTFleetWiseClientTypes.SpoolingMode? - /// (Optional) The time, in milliseconds, to deliver a campaign after it was approved. If it's not specified, 0 is used. Default: 0 + /// The time, in milliseconds, to deliver a campaign after it was approved. If it's not specified, 0 is used. Default: 0 public var startTime: Foundation.Date? /// Metadata that can be used to manage the campaign. public var tags: [IoTFleetWiseClientTypes.Tag]? @@ -1268,6 +1719,7 @@ public struct CreateCampaignInput: Swift.Sendable { compression: IoTFleetWiseClientTypes.Compression? = nil, dataDestinationConfigs: [IoTFleetWiseClientTypes.DataDestinationConfig]? = nil, dataExtraDimensions: [Swift.String]? = nil, + dataPartitions: [IoTFleetWiseClientTypes.DataPartition]? = nil, description: Swift.String? = nil, diagnosticsMode: IoTFleetWiseClientTypes.DiagnosticsMode? = nil, expiryTime: Foundation.Date? = nil, @@ -1276,6 +1728,7 @@ public struct CreateCampaignInput: Swift.Sendable { priority: Swift.Int? = nil, signalCatalogArn: Swift.String? = nil, signalsToCollect: [IoTFleetWiseClientTypes.SignalInformation]? = nil, + signalsToFetch: [IoTFleetWiseClientTypes.SignalFetchInformation]? = nil, spoolingMode: IoTFleetWiseClientTypes.SpoolingMode? = nil, startTime: Foundation.Date? = nil, tags: [IoTFleetWiseClientTypes.Tag]? = nil, @@ -1286,6 +1739,7 @@ public struct CreateCampaignInput: Swift.Sendable { self.compression = compression self.dataDestinationConfigs = dataDestinationConfigs self.dataExtraDimensions = dataExtraDimensions + self.dataPartitions = dataPartitions self.description = description self.diagnosticsMode = diagnosticsMode self.expiryTime = expiryTime @@ -1294,6 +1748,7 @@ public struct CreateCampaignInput: Swift.Sendable { self.priority = priority self.signalCatalogArn = signalCatalogArn self.signalsToCollect = signalsToCollect + self.signalsToFetch = signalsToFetch self.spoolingMode = spoolingMode self.startTime = startTime self.tags = tags @@ -1303,7 +1758,7 @@ public struct CreateCampaignInput: Swift.Sendable { extension CreateCampaignInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CreateCampaignInput(collectionScheme: \(Swift.String(describing: collectionScheme)), compression: \(Swift.String(describing: compression)), dataDestinationConfigs: \(Swift.String(describing: dataDestinationConfigs)), description: \(Swift.String(describing: description)), diagnosticsMode: \(Swift.String(describing: diagnosticsMode)), expiryTime: \(Swift.String(describing: expiryTime)), name: \(Swift.String(describing: name)), postTriggerCollectionDuration: \(Swift.String(describing: postTriggerCollectionDuration)), priority: \(Swift.String(describing: priority)), signalCatalogArn: \(Swift.String(describing: signalCatalogArn)), spoolingMode: \(Swift.String(describing: spoolingMode)), startTime: \(Swift.String(describing: startTime)), tags: \(Swift.String(describing: tags)), targetArn: \(Swift.String(describing: targetArn)), dataExtraDimensions: \"CONTENT_REDACTED\", signalsToCollect: \"CONTENT_REDACTED\")"} + "CreateCampaignInput(collectionScheme: \(Swift.String(describing: collectionScheme)), compression: \(Swift.String(describing: compression)), dataDestinationConfigs: \(Swift.String(describing: dataDestinationConfigs)), dataPartitions: \(Swift.String(describing: dataPartitions)), description: \(Swift.String(describing: description)), diagnosticsMode: \(Swift.String(describing: diagnosticsMode)), expiryTime: \(Swift.String(describing: expiryTime)), name: \(Swift.String(describing: name)), postTriggerCollectionDuration: \(Swift.String(describing: postTriggerCollectionDuration)), priority: \(Swift.String(describing: priority)), signalCatalogArn: \(Swift.String(describing: signalCatalogArn)), signalsToFetch: \(Swift.String(describing: signalsToFetch)), spoolingMode: \(Swift.String(describing: spoolingMode)), startTime: \(Swift.String(describing: startTime)), tags: \(Swift.String(describing: tags)), targetArn: \(Swift.String(describing: targetArn)), dataExtraDimensions: \"CONTENT_REDACTED\", signalsToCollect: \"CONTENT_REDACTED\")"} } public struct CreateCampaignOutput: Swift.Sendable { @@ -1408,10 +1863,12 @@ public struct GetCampaignOutput: Swift.Sendable { public var compression: IoTFleetWiseClientTypes.Compression? /// The time the campaign was created in seconds since epoch (January 1, 1970 at midnight UTC time). public var creationTime: Foundation.Date? - /// The destination where the campaign sends data. You can choose to send data to be stored in Amazon S3 or Amazon Timestream. Amazon S3 optimizes the cost of data storage and provides additional mechanisms to use vehicle data, such as data lakes, centralized data storage, data processing pipelines, and analytics. You can use Amazon Timestream to access and analyze time series data, and Timestream to query vehicle data so that you can identify trends and patterns. + /// The destination where the campaign sends data. You can send data to an MQTT topic, or store it in Amazon S3 or Amazon Timestream. MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with your devices. Amazon S3 optimizes the cost of data storage and provides additional mechanisms to use vehicle data, such as data lakes, centralized data storage, data processing pipelines, and analytics. You can use Amazon Timestream to access and analyze time series data, and Timestream to query vehicle data so that you can identify trends and patterns. public var dataDestinationConfigs: [IoTFleetWiseClientTypes.DataDestinationConfig]? /// A list of vehicle attributes associated with the campaign. public var dataExtraDimensions: [Swift.String]? + /// The data partitions associated with the signals collected from the vehicle. + public var dataPartitions: [IoTFleetWiseClientTypes.DataPartition]? /// The description of the campaign. public var description: Swift.String? /// Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. @@ -1430,6 +1887,8 @@ public struct GetCampaignOutput: Swift.Sendable { public var signalCatalogArn: Swift.String? /// Information about a list of signals to collect data on. public var signalsToCollect: [IoTFleetWiseClientTypes.SignalInformation]? + /// Information about a list of signals to fetch data from. + public var signalsToFetch: [IoTFleetWiseClientTypes.SignalFetchInformation]? /// Whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise. public var spoolingMode: IoTFleetWiseClientTypes.SpoolingMode? /// The time, in milliseconds, to deliver a campaign after it was approved. @@ -1446,6 +1905,7 @@ public struct GetCampaignOutput: Swift.Sendable { creationTime: Foundation.Date? = nil, dataDestinationConfigs: [IoTFleetWiseClientTypes.DataDestinationConfig]? = nil, dataExtraDimensions: [Swift.String]? = nil, + dataPartitions: [IoTFleetWiseClientTypes.DataPartition]? = nil, description: Swift.String? = nil, diagnosticsMode: IoTFleetWiseClientTypes.DiagnosticsMode? = nil, expiryTime: Foundation.Date? = nil, @@ -1455,6 +1915,7 @@ public struct GetCampaignOutput: Swift.Sendable { priority: Swift.Int? = nil, signalCatalogArn: Swift.String? = nil, signalsToCollect: [IoTFleetWiseClientTypes.SignalInformation]? = nil, + signalsToFetch: [IoTFleetWiseClientTypes.SignalFetchInformation]? = nil, spoolingMode: IoTFleetWiseClientTypes.SpoolingMode? = nil, startTime: Foundation.Date? = nil, status: IoTFleetWiseClientTypes.CampaignStatus? = nil, @@ -1467,6 +1928,7 @@ public struct GetCampaignOutput: Swift.Sendable { self.creationTime = creationTime self.dataDestinationConfigs = dataDestinationConfigs self.dataExtraDimensions = dataExtraDimensions + self.dataPartitions = dataPartitions self.description = description self.diagnosticsMode = diagnosticsMode self.expiryTime = expiryTime @@ -1476,6 +1938,7 @@ public struct GetCampaignOutput: Swift.Sendable { self.priority = priority self.signalCatalogArn = signalCatalogArn self.signalsToCollect = signalsToCollect + self.signalsToFetch = signalsToFetch self.spoolingMode = spoolingMode self.startTime = startTime self.status = status @@ -1485,7 +1948,7 @@ public struct GetCampaignOutput: Swift.Sendable { extension GetCampaignOutput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "GetCampaignOutput(arn: \(Swift.String(describing: arn)), collectionScheme: \(Swift.String(describing: collectionScheme)), compression: \(Swift.String(describing: compression)), creationTime: \(Swift.String(describing: creationTime)), dataDestinationConfigs: \(Swift.String(describing: dataDestinationConfigs)), description: \(Swift.String(describing: description)), diagnosticsMode: \(Swift.String(describing: diagnosticsMode)), expiryTime: \(Swift.String(describing: expiryTime)), lastModificationTime: \(Swift.String(describing: lastModificationTime)), name: \(Swift.String(describing: name)), postTriggerCollectionDuration: \(Swift.String(describing: postTriggerCollectionDuration)), priority: \(Swift.String(describing: priority)), signalCatalogArn: \(Swift.String(describing: signalCatalogArn)), spoolingMode: \(Swift.String(describing: spoolingMode)), startTime: \(Swift.String(describing: startTime)), status: \(Swift.String(describing: status)), targetArn: \(Swift.String(describing: targetArn)), dataExtraDimensions: \"CONTENT_REDACTED\", signalsToCollect: \"CONTENT_REDACTED\")"} + "GetCampaignOutput(arn: \(Swift.String(describing: arn)), collectionScheme: \(Swift.String(describing: collectionScheme)), compression: \(Swift.String(describing: compression)), creationTime: \(Swift.String(describing: creationTime)), dataDestinationConfigs: \(Swift.String(describing: dataDestinationConfigs)), dataPartitions: \(Swift.String(describing: dataPartitions)), description: \(Swift.String(describing: description)), diagnosticsMode: \(Swift.String(describing: diagnosticsMode)), expiryTime: \(Swift.String(describing: expiryTime)), lastModificationTime: \(Swift.String(describing: lastModificationTime)), name: \(Swift.String(describing: name)), postTriggerCollectionDuration: \(Swift.String(describing: postTriggerCollectionDuration)), priority: \(Swift.String(describing: priority)), signalCatalogArn: \(Swift.String(describing: signalCatalogArn)), signalsToFetch: \(Swift.String(describing: signalsToFetch)), spoolingMode: \(Swift.String(describing: spoolingMode)), startTime: \(Swift.String(describing: startTime)), status: \(Swift.String(describing: status)), targetArn: \(Swift.String(describing: targetArn)), dataExtraDimensions: \"CONTENT_REDACTED\", signalsToCollect: \"CONTENT_REDACTED\")"} } public struct ListCampaignsInput: Swift.Sendable { @@ -1493,7 +1956,7 @@ public struct ListCampaignsInput: Swift.Sendable { public var maxResults: Swift.Int? /// A pagination token for the next set of results. If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value. public var nextToken: Swift.String? - /// Optional parameter to filter the results by the status of each created campaign in your account. The status can be one of: CREATING, WAITING_FOR_APPROVAL, RUNNING, or SUSPENDED. + /// An optional parameter to filter the results by the status of each created campaign in your account. The status can be one of: CREATING, WAITING_FOR_APPROVAL, RUNNING, or SUSPENDED. public var status: Swift.String? public init( @@ -1837,6 +2300,7 @@ extension IoTFleetWiseClientTypes { public enum NetworkInterfaceFailureReason: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case canNetworkInterfaceInfoIsNull case conflictingNetworkInterface + case customDecodingSignalNetworkInterfaceInfoIsNull case duplicateInterface case networkInterfaceToAddAlreadyExists case networkInterfaceToRemoveAssociatedWithSignals @@ -1848,6 +2312,7 @@ extension IoTFleetWiseClientTypes { return [ .canNetworkInterfaceInfoIsNull, .conflictingNetworkInterface, + .customDecodingSignalNetworkInterfaceInfoIsNull, .duplicateInterface, .networkInterfaceToAddAlreadyExists, .networkInterfaceToRemoveAssociatedWithSignals, @@ -1865,6 +2330,7 @@ extension IoTFleetWiseClientTypes { switch self { case .canNetworkInterfaceInfoIsNull: return "CAN_NETWORK_INTERFACE_INFO_IS_NULL" case .conflictingNetworkInterface: return "CONFLICTING_NETWORK_INTERFACE" + case .customDecodingSignalNetworkInterfaceInfoIsNull: return "CUSTOM_DECODING_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL" case .duplicateInterface: return "DUPLICATE_NETWORK_INTERFACE" case .networkInterfaceToAddAlreadyExists: return "NETWORK_INTERFACE_TO_ADD_ALREADY_EXISTS" case .networkInterfaceToRemoveAssociatedWithSignals: return "NETWORK_INTERFACE_TO_REMOVE_ASSOCIATED_WITH_SIGNALS" @@ -1901,6 +2367,7 @@ extension IoTFleetWiseClientTypes { public enum SignalDecoderFailureReason: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case canSignalInfoIsNull case conflictingSignal + case customDecodingSignalInfoIsNull case duplicateSignal case emptyMessageSignal case messageSignalInfoIsNull @@ -1920,6 +2387,7 @@ extension IoTFleetWiseClientTypes { return [ .canSignalInfoIsNull, .conflictingSignal, + .customDecodingSignalInfoIsNull, .duplicateSignal, .emptyMessageSignal, .messageSignalInfoIsNull, @@ -1945,6 +2413,7 @@ extension IoTFleetWiseClientTypes { switch self { case .canSignalInfoIsNull: return "CAN_SIGNAL_INFO_IS_NULL" case .conflictingSignal: return "CONFLICTING_SIGNAL" + case .customDecodingSignalInfoIsNull: return "CUSTOM_DECODING_SIGNAL_INFO_IS_NULL" case .duplicateSignal: return "DUPLICATE_SIGNAL" case .emptyMessageSignal: return "EMPTY_MESSAGE_SIGNAL" case .messageSignalInfoIsNull: return "MESSAGE_SIGNAL_INFO_IS_NULL" @@ -2022,7 +2491,50 @@ public struct DecoderManifestValidationException: ClientRuntime.ModeledError, AW extension IoTFleetWiseClientTypes { - /// A network interface that specifies the On-board diagnostic (OBD) II network protocol. + public enum DefaultForUnmappedSignalsType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case customDecoding + case sdkUnknown(Swift.String) + + public static var allCases: [DefaultForUnmappedSignalsType] { + return [ + .customDecoding + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .customDecoding: return "CUSTOM_DECODING" + case let .sdkUnknown(s): return s + } + } + } +} + +extension IoTFleetWiseClientTypes { + + /// Represents a custom network interface as defined by the customer. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public struct CustomDecodingInterface: Swift.Sendable { + /// The name of the interface. + /// This member is required. + public var name: Swift.String? + + public init( + name: Swift.String? = nil + ) + { + self.name = name + } + } +} + +extension IoTFleetWiseClientTypes { + + /// A network interface that specifies the on-board diagnostic (OBD) II network protocol. public struct ObdInterface: Swift.Sendable { /// The maximum number message requests per diagnostic trouble code per second. public var dtcRequestIntervalSeconds: Swift.Int @@ -2066,6 +2578,7 @@ extension IoTFleetWiseClientTypes { public enum NetworkInterfaceType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case canInterface + case customDecodingInterface case obdInterface case vehicleMiddleware case sdkUnknown(Swift.String) @@ -2073,6 +2586,7 @@ extension IoTFleetWiseClientTypes { public static var allCases: [NetworkInterfaceType] { return [ .canInterface, + .customDecodingInterface, .obdInterface, .vehicleMiddleware ] @@ -2086,6 +2600,7 @@ extension IoTFleetWiseClientTypes { public var rawValue: Swift.String { switch self { case .canInterface: return "CAN_INTERFACE" + case .customDecodingInterface: return "CUSTOM_DECODING_INTERFACE" case .obdInterface: return "OBD_INTERFACE" case .vehicleMiddleware: return "VEHICLE_MIDDLEWARE" case let .sdkUnknown(s): return s @@ -2148,10 +2663,12 @@ extension IoTFleetWiseClientTypes { public struct NetworkInterface: Swift.Sendable { /// Information about a network interface specified by the Controller Area Network (CAN) protocol. public var canInterface: IoTFleetWiseClientTypes.CanInterface? + /// Information about a [custom network interface](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CustomDecodingInterface.html). + public var customDecodingInterface: IoTFleetWiseClientTypes.CustomDecodingInterface? /// The ID of the network interface. /// This member is required. public var interfaceId: Swift.String? - /// Information about a network interface specified by the On-board diagnostic (OBD) II protocol. + /// Information about a network interface specified by the on-board diagnostic (OBD) II protocol. public var obdInterface: IoTFleetWiseClientTypes.ObdInterface? /// The network protocol for the vehicle. For example, CAN_SIGNAL specifies a protocol that defines how data is communicated between electronic control units (ECUs). OBD_SIGNAL specifies a protocol that defines how self-diagnostic data is communicated between ECUs. /// This member is required. @@ -2161,6 +2678,7 @@ extension IoTFleetWiseClientTypes { public init( canInterface: IoTFleetWiseClientTypes.CanInterface? = nil, + customDecodingInterface: IoTFleetWiseClientTypes.CustomDecodingInterface? = nil, interfaceId: Swift.String? = nil, obdInterface: IoTFleetWiseClientTypes.ObdInterface? = nil, type: IoTFleetWiseClientTypes.NetworkInterfaceType? = nil, @@ -2168,6 +2686,7 @@ extension IoTFleetWiseClientTypes { ) { self.canInterface = canInterface + self.customDecodingInterface = customDecodingInterface self.interfaceId = interfaceId self.obdInterface = obdInterface self.type = type @@ -2176,6 +2695,23 @@ extension IoTFleetWiseClientTypes { } } +extension IoTFleetWiseClientTypes { + + /// Information about signals using a custom decoding protocol as defined by the customer. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public struct CustomDecodingSignal: Swift.Sendable { + /// The ID of the signal. + /// This member is required. + public var id: Swift.String? + + public init( + id: Swift.String? = nil + ) + { + self.id = id + } + } +} + extension IoTFleetWiseClientTypes { public enum ROS2PrimitiveType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -2374,6 +2910,7 @@ extension IoTFleetWiseClientTypes { public enum SignalDecoderType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case canSignal + case customDecodingSignal case messageSignal case obdSignal case sdkUnknown(Swift.String) @@ -2381,6 +2918,7 @@ extension IoTFleetWiseClientTypes { public static var allCases: [SignalDecoderType] { return [ .canSignal, + .customDecodingSignal, .messageSignal, .obdSignal ] @@ -2394,6 +2932,7 @@ extension IoTFleetWiseClientTypes { public var rawValue: Swift.String { switch self { case .canSignal: return "CAN_SIGNAL" + case .customDecodingSignal: return "CUSTOM_DECODING_SIGNAL" case .messageSignal: return "MESSAGE_SIGNAL" case .obdSignal: return "OBD_SIGNAL" case let .sdkUnknown(s): return s @@ -2810,10 +3349,69 @@ public struct CreateSignalCatalogOutput: Swift.Sendable { } } +public struct CreateStateTemplateInput: Swift.Sendable { + /// A list of vehicle attributes to associate with the payload published on the state template's MQTT topic. (See [ Processing last known state vehicle data using MQTT messaging](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data)). For example, if you add Vehicle.Attributes.Make and Vehicle.Attributes.Model attributes, Amazon Web Services IoT FleetWise will enrich the protobuf encoded payload with those attributes in the extraDimensions field. + public var dataExtraDimensions: [Swift.String]? + /// A brief description of the state template. + public var description: Swift.String? + /// A list of vehicle attributes to associate with user properties of the messages published on the state template's MQTT topic. (See [ Processing last known state vehicle data using MQTT messaging](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data)). For example, if you add Vehicle.Attributes.Make and Vehicle.Attributes.Model attributes, Amazon Web Services IoT FleetWise will include these attributes as User Properties with the MQTT message. Default: An empty array + public var metadataExtraDimensions: [Swift.String]? + /// The name of the state template. + /// This member is required. + public var name: Swift.String? + /// The ARN of the signal catalog associated with the state template. + /// This member is required. + public var signalCatalogArn: Swift.String? + /// A list of signals from which data is collected. The state template properties contain the fully qualified names of the signals. + /// This member is required. + public var stateTemplateProperties: [Swift.String]? + /// Metadata that can be used to manage the state template. + public var tags: [IoTFleetWiseClientTypes.Tag]? + + public init( + dataExtraDimensions: [Swift.String]? = nil, + description: Swift.String? = nil, + metadataExtraDimensions: [Swift.String]? = nil, + name: Swift.String? = nil, + signalCatalogArn: Swift.String? = nil, + stateTemplateProperties: [Swift.String]? = nil, + tags: [IoTFleetWiseClientTypes.Tag]? = nil + ) + { + self.dataExtraDimensions = dataExtraDimensions + self.description = description + self.metadataExtraDimensions = metadataExtraDimensions + self.name = name + self.signalCatalogArn = signalCatalogArn + self.stateTemplateProperties = stateTemplateProperties + self.tags = tags + } +} + +public struct CreateStateTemplateOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the state template. + public var arn: Swift.String? + /// The unique ID of the state template. + public var id: Swift.String? + /// The name of the state template. + public var name: Swift.String? + + public init( + arn: Swift.String? = nil, + id: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.arn = arn + self.id = id + self.name = name + } +} + public struct CreateVehicleInput: Swift.Sendable { /// An option to create a new Amazon Web Services IoT thing when creating a vehicle, or to validate an existing Amazon Web Services IoT thing as a vehicle. Default: public var associationBehavior: IoTFleetWiseClientTypes.VehicleAssociationBehavior? - /// Static information about a vehicle in a key-value pair. For example: "engineType" : "1.3 L R2" A campaign must include the keys (attribute names) in dataExtraDimensions for them to display in Amazon Timestream. + /// Static information about a vehicle in a key-value pair. For example: "engineType" : "1.3 L R2" To use attributes with Campaigns or State Templates, you must include them using the request parameters dataExtraDimensions and/or metadataExtraDimensions (for state templates only) when creating your campaign/state template. public var attributes: [Swift.String: Swift.String]? /// The ARN of a decoder manifest. /// This member is required. @@ -2821,6 +3419,8 @@ public struct CreateVehicleInput: Swift.Sendable { /// The Amazon Resource Name ARN of a vehicle model. /// This member is required. public var modelManifestArn: Swift.String? + /// Associate state templates with the vehicle. You can monitor the last known state of the vehicle in near real time. + public var stateTemplates: [IoTFleetWiseClientTypes.StateTemplateAssociation]? /// Metadata that can be used to manage the vehicle. public var tags: [IoTFleetWiseClientTypes.Tag]? /// The unique ID of the vehicle to create. @@ -2832,6 +3432,7 @@ public struct CreateVehicleInput: Swift.Sendable { attributes: [Swift.String: Swift.String]? = nil, decoderManifestArn: Swift.String? = nil, modelManifestArn: Swift.String? = nil, + stateTemplates: [IoTFleetWiseClientTypes.StateTemplateAssociation]? = nil, tags: [IoTFleetWiseClientTypes.Tag]? = nil, vehicleName: Swift.String? = nil ) @@ -2840,6 +3441,7 @@ public struct CreateVehicleInput: Swift.Sendable { self.attributes = attributes self.decoderManifestArn = decoderManifestArn self.modelManifestArn = modelManifestArn + self.stateTemplates = stateTemplates self.tags = tags self.vehicleName = vehicleName } @@ -3283,6 +3885,39 @@ public struct DeleteSignalCatalogOutput: Swift.Sendable { } } +public struct DeleteStateTemplateInput: Swift.Sendable { + /// A unique, service-generated identifier. + /// This member is required. + public var identifier: Swift.String? + + public init( + identifier: Swift.String? = nil + ) + { + self.identifier = identifier + } +} + +public struct DeleteStateTemplateOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the state template. + public var arn: Swift.String? + /// The unique ID of the state template. + public var id: Swift.String? + /// The name of the state template. + public var name: Swift.String? + + public init( + arn: Swift.String? = nil, + id: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.arn = arn + self.id = id + self.name = name + } +} + public struct DeleteVehicleInput: Swift.Sendable { /// The ID of the vehicle to delete. /// This member is required. @@ -3977,7 +4612,68 @@ public struct GetSignalCatalogOutput: Swift.Sendable { self.description = description self.lastModificationTime = lastModificationTime self.name = name - self.nodeCounts = nodeCounts + self.nodeCounts = nodeCounts + } +} + +public struct GetStateTemplateInput: Swift.Sendable { + /// A unique, service-generated identifier. + /// This member is required. + public var identifier: Swift.String? + + public init( + identifier: Swift.String? = nil + ) + { + self.identifier = identifier + } +} + +public struct GetStateTemplateOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the state template. + public var arn: Swift.String? + /// The time the state template was created in seconds since epoch (January 1, 1970 at midnight UTC time). + public var creationTime: Foundation.Date? + /// A list of vehicle attributes associated with the payload published on the state template's MQTT topic. Default: An empty array + public var dataExtraDimensions: [Swift.String]? + /// A brief description of the state template. + public var description: Swift.String? + /// The unique ID of the state template. + public var id: Swift.String? + /// The time the state template was last updated in seconds since epoch (January 1, 1970 at midnight UTC time). + public var lastModificationTime: Foundation.Date? + /// A list of vehicle attributes to associate with user properties of the messages published on the state template's MQTT topic. Default: An empty array + public var metadataExtraDimensions: [Swift.String]? + /// The name of the state template. + public var name: Swift.String? + /// The ARN of the signal catalog associated with the state template. + public var signalCatalogArn: Swift.String? + /// A list of signals from which data is collected. The state template properties contain the fully qualified names of the signals. + public var stateTemplateProperties: [Swift.String]? + + public init( + arn: Swift.String? = nil, + creationTime: Foundation.Date? = nil, + dataExtraDimensions: [Swift.String]? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + lastModificationTime: Foundation.Date? = nil, + metadataExtraDimensions: [Swift.String]? = nil, + name: Swift.String? = nil, + signalCatalogArn: Swift.String? = nil, + stateTemplateProperties: [Swift.String]? = nil + ) + { + self.arn = arn + self.creationTime = creationTime + self.dataExtraDimensions = dataExtraDimensions + self.description = description + self.id = id + self.lastModificationTime = lastModificationTime + self.metadataExtraDimensions = metadataExtraDimensions + self.name = name + self.signalCatalogArn = signalCatalogArn + self.stateTemplateProperties = stateTemplateProperties } } @@ -4007,6 +4703,8 @@ public struct GetVehicleOutput: Swift.Sendable { public var lastModificationTime: Foundation.Date? /// The ARN of a vehicle model (model manifest) associated with the vehicle. public var modelManifestArn: Swift.String? + /// State templates associated with the vehicle. + public var stateTemplates: [IoTFleetWiseClientTypes.StateTemplateAssociation]? /// The ID of the vehicle. public var vehicleName: Swift.String? @@ -4017,6 +4715,7 @@ public struct GetVehicleOutput: Swift.Sendable { decoderManifestArn: Swift.String? = nil, lastModificationTime: Foundation.Date? = nil, modelManifestArn: Swift.String? = nil, + stateTemplates: [IoTFleetWiseClientTypes.StateTemplateAssociation]? = nil, vehicleName: Swift.String? = nil ) { @@ -4026,14 +4725,15 @@ public struct GetVehicleOutput: Swift.Sendable { self.decoderManifestArn = decoderManifestArn self.lastModificationTime = lastModificationTime self.modelManifestArn = modelManifestArn + self.stateTemplates = stateTemplates self.vehicleName = vehicleName } } public struct GetVehicleStatusInput: Swift.Sendable { - /// The maximum number of items to return, between 1 and 100, inclusive. + /// The maximum number of items to return, between 1 and 100, inclusive. This parameter is only supported for resources of type CAMPAIGN. public var maxResults: Swift.Int? - /// A pagination token for the next set of results. If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value. + /// A pagination token for the next set of results. If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value. This parameter is only supported for resources of type CAMPAIGN. public var nextToken: Swift.String? /// The ID of the vehicle to retrieve information about. /// This member is required. @@ -4091,21 +4791,21 @@ extension IoTFleetWiseClientTypes { extension IoTFleetWiseClientTypes { - /// Information about the state of a vehicle and how it relates to the status of a campaign. + /// Information about a campaign associated with a vehicle. public struct VehicleStatus: Swift.Sendable { /// The name of a campaign. public var campaignName: Swift.String? - /// The state of a vehicle, which can be one of the following: + /// The status of a campaign, which can be one of the following: /// - /// * CREATED - Amazon Web Services IoT FleetWise sucessfully created the vehicle. + /// * CREATED - The campaign has been created successfully but has not been approved. /// - /// * READY - The vehicle is ready to receive a campaign deployment. + /// * READY - The campaign has been approved but has not been deployed to the vehicle. /// - /// * HEALTHY - A campaign deployment was delivered to the vehicle. + /// * HEALTHY - The campaign has been deployed to the vehicle. /// - /// * SUSPENDED - A campaign associated with the vehicle was suspended and data collection was paused. + /// * SUSPENDED - The campaign has been suspended and data collection is paused. /// - /// * DELETING - Amazon Web Services IoT FleetWise is removing a campaign from the vehicle. + /// * DELETING - The campaign is being removed from the vehicle. public var status: IoTFleetWiseClientTypes.VehicleState? /// The unique ID of the vehicle. public var vehicleName: Swift.String? @@ -4704,6 +5404,131 @@ public struct UpdateSignalCatalogOutput: Swift.Sendable { } } +public struct ListStateTemplatesInput: Swift.Sendable { + /// The maximum number of items to return, between 1 and 100, inclusive. + public var maxResults: Swift.Int? + /// The token to retrieve the next set of results, or null if there are no more results. + public var nextToken: Swift.String? + + public init( + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +extension IoTFleetWiseClientTypes { + + /// Information about a state template. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public struct StateTemplateSummary: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the state template. + public var arn: Swift.String? + /// The time the state template was created, in seconds since epoch (January 1, 1970 at midnight UTC time). + public var creationTime: Foundation.Date? + /// A brief description of the state template. + public var description: Swift.String? + /// The unique ID of the state template. + public var id: Swift.String? + /// The time the state template was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). + public var lastModificationTime: Foundation.Date? + /// The name of the state template. + public var name: Swift.String? + /// The Amazon Resource Name (ARN) of the signal catalog associated with the state template. + public var signalCatalogArn: Swift.String? + + public init( + arn: Swift.String? = nil, + creationTime: Foundation.Date? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + lastModificationTime: Foundation.Date? = nil, + name: Swift.String? = nil, + signalCatalogArn: Swift.String? = nil + ) + { + self.arn = arn + self.creationTime = creationTime + self.description = description + self.id = id + self.lastModificationTime = lastModificationTime + self.name = name + self.signalCatalogArn = signalCatalogArn + } + } +} + +public struct ListStateTemplatesOutput: Swift.Sendable { + /// The token to retrieve the next set of results, or null if there are no more results. + public var nextToken: Swift.String? + /// A list of information about each state template. + public var summaries: [IoTFleetWiseClientTypes.StateTemplateSummary]? + + public init( + nextToken: Swift.String? = nil, + summaries: [IoTFleetWiseClientTypes.StateTemplateSummary]? = nil + ) + { + self.nextToken = nextToken + self.summaries = summaries + } +} + +public struct UpdateStateTemplateInput: Swift.Sendable { + /// A list of vehicle attributes to associate with the payload published on the state template's MQTT topic. (See [ Processing last known state vehicle data using MQTT messaging](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data)). For example, if you add Vehicle.Attributes.Make and Vehicle.Attributes.Model attributes, Amazon Web Services IoT FleetWise will enrich the protobuf encoded payload with those attributes in the extraDimensions field. Default: An empty array + public var dataExtraDimensions: [Swift.String]? + /// A brief description of the state template. + public var description: Swift.String? + /// A unique, service-generated identifier. + /// This member is required. + public var identifier: Swift.String? + /// A list of vehicle attributes to associate with user properties of the messages published on the state template's MQTT topic. (See [ Processing last known state vehicle data using MQTT messaging](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data)). For example, if you add Vehicle.Attributes.Make and Vehicle.Attributes.Model attributes, Amazon Web Services IoT FleetWise will include these attributes as User Properties with the MQTT message. + public var metadataExtraDimensions: [Swift.String]? + /// Add signals from which data is collected as part of the state template. + public var stateTemplatePropertiesToAdd: [Swift.String]? + /// Remove signals from which data is collected as part of the state template. + public var stateTemplatePropertiesToRemove: [Swift.String]? + + public init( + dataExtraDimensions: [Swift.String]? = nil, + description: Swift.String? = nil, + identifier: Swift.String? = nil, + metadataExtraDimensions: [Swift.String]? = nil, + stateTemplatePropertiesToAdd: [Swift.String]? = nil, + stateTemplatePropertiesToRemove: [Swift.String]? = nil + ) + { + self.dataExtraDimensions = dataExtraDimensions + self.description = description + self.identifier = identifier + self.metadataExtraDimensions = metadataExtraDimensions + self.stateTemplatePropertiesToAdd = stateTemplatePropertiesToAdd + self.stateTemplatePropertiesToRemove = stateTemplatePropertiesToRemove + } +} + +public struct UpdateStateTemplateOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the state template. + public var arn: Swift.String? + /// The unique ID of the state template. + public var id: Swift.String? + /// The name of the state template. + public var name: Swift.String? + + public init( + arn: Swift.String? = nil, + id: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.arn = arn + self.id = id + self.name = name + } +} + public struct TagResourceInput: Swift.Sendable { /// The ARN of the resource. /// This member is required. @@ -4751,9 +5576,9 @@ public struct UntagResourceOutput: Swift.Sendable { } public struct ListVehiclesInput: Swift.Sendable { - /// The fully qualified names of the attributes. For example, the fully qualified name of an attribute might be Vehicle.Body.Engine.Type. + /// The fully qualified names of the attributes. You can use this optional parameter to list the vehicles containing all the attributes in the request. For example, attributeNames could be "Vehicle.Body.Engine.Type, Vehicle.Color" and the corresponding attributeValues could be "1.3 L R2, Blue" . In this case, the API will filter vehicles with an attribute name Vehicle.Body.Engine.Type that contains a value of 1.3 L R2 AND an attribute name Vehicle.Color that contains a value of "Blue". A request must contain unique values for the attributeNames filter and the matching number of attributeValues filters to return the subset of vehicles that match the attributes filter condition. public var attributeNames: [Swift.String]? - /// Static information about a vehicle attribute value in string format. For example: "1.3 L R2" + /// Static information about a vehicle attribute value in string format. You can use this optional parameter in conjunction with attributeNames to list the vehicles containing all the attributeValues corresponding to the attributeNames filter. For example, attributeValues could be "1.3 L R2, Blue" and the corresponding attributeNames filter could be "Vehicle.Body.Engine.Type, Vehicle.Color". In this case, the API will filter vehicles with attribute name Vehicle.Body.Engine.Type that contains a value of 1.3 L R2 AND an attribute name Vehicle.Color that contains a value of "Blue". A request must contain unique values for the attributeNames filter and the matching number of attributeValues filter to return the subset of vehicles that match the attributes filter condition. public var attributeValues: [Swift.String]? /// The maximum number of items to return, between 1 and 100, inclusive. public var maxResults: Swift.Int? @@ -4849,6 +5674,10 @@ public struct UpdateVehicleInput: Swift.Sendable { public var decoderManifestArn: Swift.String? /// The ARN of a vehicle model (model manifest) associated with the vehicle. public var modelManifestArn: Swift.String? + /// Associate state templates with the vehicle. + public var stateTemplatesToAdd: [IoTFleetWiseClientTypes.StateTemplateAssociation]? + /// Remove state templates from the vehicle. + public var stateTemplatesToRemove: [Swift.String]? /// The unique ID of the vehicle to update. /// This member is required. public var vehicleName: Swift.String? @@ -4858,6 +5687,8 @@ public struct UpdateVehicleInput: Swift.Sendable { attributes: [Swift.String: Swift.String]? = nil, decoderManifestArn: Swift.String? = nil, modelManifestArn: Swift.String? = nil, + stateTemplatesToAdd: [IoTFleetWiseClientTypes.StateTemplateAssociation]? = nil, + stateTemplatesToRemove: [Swift.String]? = nil, vehicleName: Swift.String? = nil ) { @@ -4865,6 +5696,8 @@ public struct UpdateVehicleInput: Swift.Sendable { self.attributes = attributes self.decoderManifestArn = decoderManifestArn self.modelManifestArn = modelManifestArn + self.stateTemplatesToAdd = stateTemplatesToAdd + self.stateTemplatesToRemove = stateTemplatesToRemove self.vehicleName = vehicleName } } @@ -4980,6 +5813,8 @@ extension IoTFleetWiseClientTypes { public struct SignalDecoder: Swift.Sendable { /// Information about signal decoder using the Controller Area Network (CAN) protocol. public var canSignal: IoTFleetWiseClientTypes.CanSignal? + /// Information about a [custom signal decoder](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CustomDecodingSignal.html). Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public var customDecodingSignal: IoTFleetWiseClientTypes.CustomDecodingSignal? /// The fully qualified name of a signal decoder as defined in a vehicle model. /// This member is required. public var fullyQualifiedName: Swift.String? @@ -4988,7 +5823,7 @@ extension IoTFleetWiseClientTypes { public var interfaceId: Swift.String? /// The decoding information for a specific message which supports higher order data types. public var messageSignal: IoTFleetWiseClientTypes.MessageSignal? - /// Information about signal decoder using the On-board diagnostic (OBD) II protocol. + /// Information about signal decoder using the on-board diagnostic (OBD) II protocol. public var obdSignal: IoTFleetWiseClientTypes.ObdSignal? /// The network protocol for the vehicle. For example, CAN_SIGNAL specifies a protocol that defines how data is communicated between electronic control units (ECUs). OBD_SIGNAL specifies a protocol that defines how self-diagnostic data is communicated between ECUs. /// This member is required. @@ -4996,6 +5831,7 @@ extension IoTFleetWiseClientTypes { public init( canSignal: IoTFleetWiseClientTypes.CanSignal? = nil, + customDecodingSignal: IoTFleetWiseClientTypes.CustomDecodingSignal? = nil, fullyQualifiedName: Swift.String? = nil, interfaceId: Swift.String? = nil, messageSignal: IoTFleetWiseClientTypes.MessageSignal? = nil, @@ -5004,6 +5840,7 @@ extension IoTFleetWiseClientTypes { ) { self.canSignal = canSignal + self.customDecodingSignal = customDecodingSignal self.fullyQualifiedName = fullyQualifiedName self.interfaceId = interfaceId self.messageSignal = messageSignal @@ -5014,6 +5851,8 @@ extension IoTFleetWiseClientTypes { } public struct CreateDecoderManifestInput: Swift.Sendable { + /// Use default decoders for all unmapped signals in the model. You don't need to provide any detailed decoding information. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public var defaultForUnmappedSignals: IoTFleetWiseClientTypes.DefaultForUnmappedSignalsType? /// A brief description of the decoder manifest. public var description: Swift.String? /// The Amazon Resource Name (ARN) of the vehicle model (model manifest). @@ -5030,6 +5869,7 @@ public struct CreateDecoderManifestInput: Swift.Sendable { public var tags: [IoTFleetWiseClientTypes.Tag]? public init( + defaultForUnmappedSignals: IoTFleetWiseClientTypes.DefaultForUnmappedSignalsType? = nil, description: Swift.String? = nil, modelManifestArn: Swift.String? = nil, name: Swift.String? = nil, @@ -5038,6 +5878,7 @@ public struct CreateDecoderManifestInput: Swift.Sendable { tags: [IoTFleetWiseClientTypes.Tag]? = nil ) { + self.defaultForUnmappedSignals = defaultForUnmappedSignals self.description = description self.modelManifestArn = modelManifestArn self.name = name @@ -5064,6 +5905,8 @@ public struct ListDecoderManifestSignalsOutput: Swift.Sendable { } public struct UpdateDecoderManifestInput: Swift.Sendable { + /// Use default decoders for all unmapped signals in the model. You don't need to provide any detailed decoding information. Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see [Amazon Web Services Region and feature availability](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html) in the Amazon Web Services IoT FleetWise Developer Guide. + public var defaultForUnmappedSignals: IoTFleetWiseClientTypes.DefaultForUnmappedSignalsType? /// A brief description of the decoder manifest to update. public var description: Swift.String? /// The name of the decoder manifest to update. @@ -5085,6 +5928,7 @@ public struct UpdateDecoderManifestInput: Swift.Sendable { public var status: IoTFleetWiseClientTypes.ManifestStatus? public init( + defaultForUnmappedSignals: IoTFleetWiseClientTypes.DefaultForUnmappedSignalsType? = nil, description: Swift.String? = nil, name: Swift.String? = nil, networkInterfacesToAdd: [IoTFleetWiseClientTypes.NetworkInterface]? = nil, @@ -5096,6 +5940,7 @@ public struct UpdateDecoderManifestInput: Swift.Sendable { status: IoTFleetWiseClientTypes.ManifestStatus? = nil ) { + self.defaultForUnmappedSignals = defaultForUnmappedSignals self.description = description self.name = name self.networkInterfacesToAdd = networkInterfacesToAdd @@ -5164,6 +6009,13 @@ extension CreateSignalCatalogInput { } } +extension CreateStateTemplateInput { + + static func urlPathProvider(_ value: CreateStateTemplateInput) -> Swift.String? { + return "/" + } +} + extension CreateVehicleInput { static func urlPathProvider(_ value: CreateVehicleInput) -> Swift.String? { @@ -5206,6 +6058,13 @@ extension DeleteSignalCatalogInput { } } +extension DeleteStateTemplateInput { + + static func urlPathProvider(_ value: DeleteStateTemplateInput) -> Swift.String? { + return "/" + } +} + extension DeleteVehicleInput { static func urlPathProvider(_ value: DeleteVehicleInput) -> Swift.String? { @@ -5276,6 +6135,13 @@ extension GetSignalCatalogInput { } } +extension GetStateTemplateInput { + + static func urlPathProvider(_ value: GetStateTemplateInput) -> Swift.String? { + return "/" + } +} + extension GetVehicleInput { static func urlPathProvider(_ value: GetVehicleInput) -> Swift.String? { @@ -5451,6 +6317,20 @@ extension ListSignalCatalogsInput { } } +extension ListStateTemplatesInput { + + static func urlPathProvider(_ value: ListStateTemplatesInput) -> Swift.String? { + return "/" + } +} + +extension ListStateTemplatesInput { + + static func queryItemProvider(_ value: ListStateTemplatesInput) throws -> [Smithy.URIQueryItem] { + return [] + } +} + extension ListTagsForResourceInput { static func urlPathProvider(_ value: ListTagsForResourceInput) -> Swift.String? { @@ -5577,6 +6457,13 @@ extension UpdateSignalCatalogInput { } } +extension UpdateStateTemplateInput { + + static func urlPathProvider(_ value: UpdateStateTemplateInput) -> Swift.String? { + return "/" + } +} + extension UpdateVehicleInput { static func urlPathProvider(_ value: UpdateVehicleInput) -> Swift.String? { @@ -5616,6 +6503,7 @@ extension CreateCampaignInput { try writer["compression"].write(value.compression) try writer["dataDestinationConfigs"].writeList(value.dataDestinationConfigs, memberWritingClosure: IoTFleetWiseClientTypes.DataDestinationConfig.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["dataExtraDimensions"].writeList(value.dataExtraDimensions, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["dataPartitions"].writeList(value.dataPartitions, memberWritingClosure: IoTFleetWiseClientTypes.DataPartition.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["description"].write(value.description) try writer["diagnosticsMode"].write(value.diagnosticsMode) try writer["expiryTime"].writeTimestamp(value.expiryTime, format: SmithyTimestamps.TimestampFormat.epochSeconds) @@ -5623,6 +6511,7 @@ extension CreateCampaignInput { try writer["priority"].write(value.priority) try writer["signalCatalogArn"].write(value.signalCatalogArn) try writer["signalsToCollect"].writeList(value.signalsToCollect, memberWritingClosure: IoTFleetWiseClientTypes.SignalInformation.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["signalsToFetch"].writeList(value.signalsToFetch, memberWritingClosure: IoTFleetWiseClientTypes.SignalFetchInformation.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["spoolingMode"].write(value.spoolingMode) try writer["startTime"].writeTimestamp(value.startTime, format: SmithyTimestamps.TimestampFormat.epochSeconds) try writer["tags"].writeList(value.tags, memberWritingClosure: IoTFleetWiseClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) @@ -5634,6 +6523,7 @@ extension CreateDecoderManifestInput { static func write(value: CreateDecoderManifestInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["defaultForUnmappedSignals"].write(value.defaultForUnmappedSignals) try writer["description"].write(value.description) try writer["modelManifestArn"].write(value.modelManifestArn) try writer["networkInterfaces"].writeList(value.networkInterfaces, memberWritingClosure: IoTFleetWiseClientTypes.NetworkInterface.write(value:to:), memberNodeInfo: "member", isFlattened: false) @@ -5673,6 +6563,19 @@ extension CreateSignalCatalogInput { } } +extension CreateStateTemplateInput { + + static func write(value: CreateStateTemplateInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["dataExtraDimensions"].writeList(value.dataExtraDimensions, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["description"].write(value.description) + try writer["metadataExtraDimensions"].writeList(value.metadataExtraDimensions, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["signalCatalogArn"].write(value.signalCatalogArn) + try writer["stateTemplateProperties"].writeList(value.stateTemplateProperties, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["tags"].writeList(value.tags, memberWritingClosure: IoTFleetWiseClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + extension CreateVehicleInput { static func write(value: CreateVehicleInput?, to writer: SmithyJSON.Writer) throws { @@ -5681,6 +6584,7 @@ extension CreateVehicleInput { try writer["attributes"].writeMap(value.attributes, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) try writer["decoderManifestArn"].write(value.decoderManifestArn) try writer["modelManifestArn"].write(value.modelManifestArn) + try writer["stateTemplates"].writeList(value.stateTemplates, memberWritingClosure: IoTFleetWiseClientTypes.StateTemplateAssociation.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["tags"].writeList(value.tags, memberWritingClosure: IoTFleetWiseClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) } } @@ -5725,6 +6629,14 @@ extension DeleteSignalCatalogInput { } } +extension DeleteStateTemplateInput { + + static func write(value: DeleteStateTemplateInput?, to writer: SmithyJSON.Writer) throws { + guard value != nil else { return } + _ = writer[""] // create an empty structure + } +} + extension DeleteVehicleInput { static func write(value: DeleteVehicleInput?, to writer: SmithyJSON.Writer) throws { @@ -5805,6 +6717,14 @@ extension GetSignalCatalogInput { } } +extension GetStateTemplateInput { + + static func write(value: GetStateTemplateInput?, to writer: SmithyJSON.Writer) throws { + guard value != nil else { return } + _ = writer[""] // create an empty structure + } +} + extension GetVehicleInput { static func write(value: GetVehicleInput?, to writer: SmithyJSON.Writer) throws { @@ -5919,6 +6839,14 @@ extension ListSignalCatalogsInput { } } +extension ListStateTemplatesInput { + + static func write(value: ListStateTemplatesInput?, to writer: SmithyJSON.Writer) throws { + guard value != nil else { return } + _ = writer[""] // create an empty structure + } +} + extension ListTagsForResourceInput { static func write(value: ListTagsForResourceInput?, to writer: SmithyJSON.Writer) throws { @@ -5999,6 +6927,7 @@ extension UpdateDecoderManifestInput { static func write(value: UpdateDecoderManifestInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["defaultForUnmappedSignals"].write(value.defaultForUnmappedSignals) try writer["description"].write(value.description) try writer["networkInterfacesToAdd"].writeList(value.networkInterfacesToAdd, memberWritingClosure: IoTFleetWiseClientTypes.NetworkInterface.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["networkInterfacesToRemove"].writeList(value.networkInterfacesToRemove, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) @@ -6040,6 +6969,18 @@ extension UpdateSignalCatalogInput { } } +extension UpdateStateTemplateInput { + + static func write(value: UpdateStateTemplateInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["dataExtraDimensions"].writeList(value.dataExtraDimensions, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["description"].write(value.description) + try writer["metadataExtraDimensions"].writeList(value.metadataExtraDimensions, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["stateTemplatePropertiesToAdd"].writeList(value.stateTemplatePropertiesToAdd, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["stateTemplatePropertiesToRemove"].writeList(value.stateTemplatePropertiesToRemove, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + extension UpdateVehicleInput { static func write(value: UpdateVehicleInput?, to writer: SmithyJSON.Writer) throws { @@ -6048,6 +6989,8 @@ extension UpdateVehicleInput { try writer["attributes"].writeMap(value.attributes, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) try writer["decoderManifestArn"].write(value.decoderManifestArn) try writer["modelManifestArn"].write(value.modelManifestArn) + try writer["stateTemplatesToAdd"].writeList(value.stateTemplatesToAdd, memberWritingClosure: IoTFleetWiseClientTypes.StateTemplateAssociation.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["stateTemplatesToRemove"].writeList(value.stateTemplatesToRemove, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) } } @@ -6149,6 +7092,20 @@ extension CreateSignalCatalogOutput { } } +extension CreateStateTemplateOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateStateTemplateOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateStateTemplateOutput() + value.arn = try reader["arn"].readIfPresent() + value.id = try reader["id"].readIfPresent() + value.name = try reader["name"].readIfPresent() + return value + } +} + extension CreateVehicleOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateVehicleOutput { @@ -6228,6 +7185,20 @@ extension DeleteSignalCatalogOutput { } } +extension DeleteStateTemplateOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteStateTemplateOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = DeleteStateTemplateOutput() + value.arn = try reader["arn"].readIfPresent() + value.id = try reader["id"].readIfPresent() + value.name = try reader["name"].readIfPresent() + return value + } +} + extension DeleteVehicleOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteVehicleOutput { @@ -6261,6 +7232,7 @@ extension GetCampaignOutput { value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.dataDestinationConfigs = try reader["dataDestinationConfigs"].readListIfPresent(memberReadingClosure: IoTFleetWiseClientTypes.DataDestinationConfig.read(from:), memberNodeInfo: "member", isFlattened: false) value.dataExtraDimensions = try reader["dataExtraDimensions"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.dataPartitions = try reader["dataPartitions"].readListIfPresent(memberReadingClosure: IoTFleetWiseClientTypes.DataPartition.read(from:), memberNodeInfo: "member", isFlattened: false) value.description = try reader["description"].readIfPresent() value.diagnosticsMode = try reader["diagnosticsMode"].readIfPresent() value.expiryTime = try reader["expiryTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) @@ -6270,6 +7242,7 @@ extension GetCampaignOutput { value.priority = try reader["priority"].readIfPresent() value.signalCatalogArn = try reader["signalCatalogArn"].readIfPresent() value.signalsToCollect = try reader["signalsToCollect"].readListIfPresent(memberReadingClosure: IoTFleetWiseClientTypes.SignalInformation.read(from:), memberNodeInfo: "member", isFlattened: false) + value.signalsToFetch = try reader["signalsToFetch"].readListIfPresent(memberReadingClosure: IoTFleetWiseClientTypes.SignalFetchInformation.read(from:), memberNodeInfo: "member", isFlattened: false) value.spoolingMode = try reader["spoolingMode"].readIfPresent() value.startTime = try reader["startTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.status = try reader["status"].readIfPresent() @@ -6395,6 +7368,27 @@ extension GetSignalCatalogOutput { } } +extension GetStateTemplateOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetStateTemplateOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetStateTemplateOutput() + value.arn = try reader["arn"].readIfPresent() + value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.dataExtraDimensions = try reader["dataExtraDimensions"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.description = try reader["description"].readIfPresent() + value.id = try reader["id"].readIfPresent() + value.lastModificationTime = try reader["lastModificationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.metadataExtraDimensions = try reader["metadataExtraDimensions"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.name = try reader["name"].readIfPresent() + value.signalCatalogArn = try reader["signalCatalogArn"].readIfPresent() + value.stateTemplateProperties = try reader["stateTemplateProperties"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension GetVehicleOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetVehicleOutput { @@ -6408,6 +7402,7 @@ extension GetVehicleOutput { value.decoderManifestArn = try reader["decoderManifestArn"].readIfPresent() value.lastModificationTime = try reader["lastModificationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.modelManifestArn = try reader["modelManifestArn"].readIfPresent() + value.stateTemplates = try reader["stateTemplates"].readListIfPresent(memberReadingClosure: IoTFleetWiseClientTypes.StateTemplateAssociation.read(from:), memberNodeInfo: "member", isFlattened: false) value.vehicleName = try reader["vehicleName"].readIfPresent() return value } @@ -6582,6 +7577,19 @@ extension ListSignalCatalogsOutput { } } +extension ListStateTemplatesOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListStateTemplatesOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListStateTemplatesOutput() + value.nextToken = try reader["nextToken"].readIfPresent() + value.summaries = try reader["summaries"].readListIfPresent(memberReadingClosure: IoTFleetWiseClientTypes.StateTemplateSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension ListTagsForResourceOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTagsForResourceOutput { @@ -6737,6 +7745,20 @@ extension UpdateSignalCatalogOutput { } } +extension UpdateStateTemplateOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateStateTemplateOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateStateTemplateOutput() + value.arn = try reader["arn"].readIfPresent() + value.id = try reader["id"].readIfPresent() + value.name = try reader["name"].readIfPresent() + return value + } +} + extension UpdateVehicleOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateVehicleOutput { @@ -6919,6 +7941,28 @@ enum CreateSignalCatalogOutputError { } } +enum CreateStateTemplateOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + if let error = try httpServiceError(baseError: baseError) { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidSignalsException": return try InvalidSignalsException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum CreateVehicleOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -7024,7 +8068,25 @@ enum DeleteSignalCatalogOutputError { if let error = try httpServiceError(baseError: baseError) { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) - case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteStateTemplateOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + if let error = try httpServiceError(baseError: baseError) { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) @@ -7215,6 +8277,25 @@ enum GetSignalCatalogOutputError { } } +enum GetStateTemplateOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + if let error = try httpServiceError(baseError: baseError) { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum GetVehicleOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -7482,6 +8563,24 @@ enum ListSignalCatalogsOutputError { } } +enum ListStateTemplatesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + if let error = try httpServiceError(baseError: baseError) { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListTagsForResourceOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -7739,6 +8838,27 @@ enum UpdateSignalCatalogOutputError { } } +enum UpdateStateTemplateOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + if let error = try httpServiceError(baseError: baseError) { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidSignalsException": return try InvalidSignalsException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum UpdateVehicleOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -7964,6 +9084,7 @@ extension IoTFleetWiseClientTypes.SignalInformation { static func write(value: IoTFleetWiseClientTypes.SignalInformation?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["dataPartitionId"].write(value.dataPartitionId) try writer["maxSampleCount"].write(value.maxSampleCount) try writer["minimumSamplingIntervalMs"].write(value.minimumSamplingIntervalMs) try writer["name"].write(value.name) @@ -7975,6 +9096,7 @@ extension IoTFleetWiseClientTypes.SignalInformation { value.name = try reader["name"].readIfPresent() ?? "" value.maxSampleCount = try reader["maxSampleCount"].readIfPresent() value.minimumSamplingIntervalMs = try reader["minimumSamplingIntervalMs"].readIfPresent() + value.dataPartitionId = try reader["dataPartitionId"].readIfPresent() return value } } @@ -8048,6 +9170,8 @@ extension IoTFleetWiseClientTypes.DataDestinationConfig { static func write(value: IoTFleetWiseClientTypes.DataDestinationConfig?, to writer: SmithyJSON.Writer) throws { guard let value else { return } switch value { + case let .mqtttopicconfig(mqtttopicconfig): + try writer["mqttTopicConfig"].write(mqtttopicconfig, with: IoTFleetWiseClientTypes.MqttTopicConfig.write(value:to:)) case let .s3config(s3config): try writer["s3Config"].write(s3config, with: IoTFleetWiseClientTypes.S3Config.write(value:to:)) case let .timestreamconfig(timestreamconfig): @@ -8065,12 +9189,31 @@ extension IoTFleetWiseClientTypes.DataDestinationConfig { return .s3config(try reader["s3Config"].read(with: IoTFleetWiseClientTypes.S3Config.read(from:))) case "timestreamConfig": return .timestreamconfig(try reader["timestreamConfig"].read(with: IoTFleetWiseClientTypes.TimestreamConfig.read(from:))) + case "mqttTopicConfig": + return .mqtttopicconfig(try reader["mqttTopicConfig"].read(with: IoTFleetWiseClientTypes.MqttTopicConfig.read(from:))) default: return .sdkUnknown(name ?? "") } } } +extension IoTFleetWiseClientTypes.MqttTopicConfig { + + static func write(value: IoTFleetWiseClientTypes.MqttTopicConfig?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["executionRoleArn"].write(value.executionRoleArn) + try writer["mqttTopicArn"].write(value.mqttTopicArn) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.MqttTopicConfig { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.MqttTopicConfig() + value.mqttTopicArn = try reader["mqttTopicArn"].readIfPresent() ?? "" + value.executionRoleArn = try reader["executionRoleArn"].readIfPresent() ?? "" + return value + } +} + extension IoTFleetWiseClientTypes.TimestreamConfig { static func write(value: IoTFleetWiseClientTypes.TimestreamConfig?, to writer: SmithyJSON.Writer) throws { @@ -8109,6 +9252,176 @@ extension IoTFleetWiseClientTypes.S3Config { } } +extension IoTFleetWiseClientTypes.DataPartition { + + static func write(value: IoTFleetWiseClientTypes.DataPartition?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["id"].write(value.id) + try writer["storageOptions"].write(value.storageOptions, with: IoTFleetWiseClientTypes.DataPartitionStorageOptions.write(value:to:)) + try writer["uploadOptions"].write(value.uploadOptions, with: IoTFleetWiseClientTypes.DataPartitionUploadOptions.write(value:to:)) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.DataPartition { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.DataPartition() + value.id = try reader["id"].readIfPresent() ?? "" + value.storageOptions = try reader["storageOptions"].readIfPresent(with: IoTFleetWiseClientTypes.DataPartitionStorageOptions.read(from:)) + value.uploadOptions = try reader["uploadOptions"].readIfPresent(with: IoTFleetWiseClientTypes.DataPartitionUploadOptions.read(from:)) + return value + } +} + +extension IoTFleetWiseClientTypes.DataPartitionUploadOptions { + + static func write(value: IoTFleetWiseClientTypes.DataPartitionUploadOptions?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["conditionLanguageVersion"].write(value.conditionLanguageVersion) + try writer["expression"].write(value.expression) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.DataPartitionUploadOptions { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.DataPartitionUploadOptions() + value.expression = try reader["expression"].readIfPresent() ?? "" + value.conditionLanguageVersion = try reader["conditionLanguageVersion"].readIfPresent() + return value + } +} + +extension IoTFleetWiseClientTypes.DataPartitionStorageOptions { + + static func write(value: IoTFleetWiseClientTypes.DataPartitionStorageOptions?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["maximumSize"].write(value.maximumSize, with: IoTFleetWiseClientTypes.StorageMaximumSize.write(value:to:)) + try writer["minimumTimeToLive"].write(value.minimumTimeToLive, with: IoTFleetWiseClientTypes.StorageMinimumTimeToLive.write(value:to:)) + try writer["storageLocation"].write(value.storageLocation) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.DataPartitionStorageOptions { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.DataPartitionStorageOptions() + value.maximumSize = try reader["maximumSize"].readIfPresent(with: IoTFleetWiseClientTypes.StorageMaximumSize.read(from:)) + value.storageLocation = try reader["storageLocation"].readIfPresent() ?? "" + value.minimumTimeToLive = try reader["minimumTimeToLive"].readIfPresent(with: IoTFleetWiseClientTypes.StorageMinimumTimeToLive.read(from:)) + return value + } +} + +extension IoTFleetWiseClientTypes.StorageMinimumTimeToLive { + + static func write(value: IoTFleetWiseClientTypes.StorageMinimumTimeToLive?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["unit"].write(value.unit) + try writer["value"].write(value.value) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.StorageMinimumTimeToLive { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.StorageMinimumTimeToLive() + value.unit = try reader["unit"].readIfPresent() ?? .sdkUnknown("") + value.value = try reader["value"].readIfPresent() ?? 0 + return value + } +} + +extension IoTFleetWiseClientTypes.StorageMaximumSize { + + static func write(value: IoTFleetWiseClientTypes.StorageMaximumSize?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["unit"].write(value.unit) + try writer["value"].write(value.value) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.StorageMaximumSize { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.StorageMaximumSize() + value.unit = try reader["unit"].readIfPresent() ?? .sdkUnknown("") + value.value = try reader["value"].readIfPresent() ?? 0 + return value + } +} + +extension IoTFleetWiseClientTypes.SignalFetchInformation { + + static func write(value: IoTFleetWiseClientTypes.SignalFetchInformation?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["actions"].writeList(value.actions, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["conditionLanguageVersion"].write(value.conditionLanguageVersion) + try writer["fullyQualifiedName"].write(value.fullyQualifiedName) + try writer["signalFetchConfig"].write(value.signalFetchConfig, with: IoTFleetWiseClientTypes.SignalFetchConfig.write(value:to:)) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.SignalFetchInformation { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.SignalFetchInformation() + value.fullyQualifiedName = try reader["fullyQualifiedName"].readIfPresent() ?? "" + value.signalFetchConfig = try reader["signalFetchConfig"].readIfPresent(with: IoTFleetWiseClientTypes.SignalFetchConfig.read(from:)) + value.conditionLanguageVersion = try reader["conditionLanguageVersion"].readIfPresent() + value.actions = try reader["actions"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension IoTFleetWiseClientTypes.SignalFetchConfig { + + static func write(value: IoTFleetWiseClientTypes.SignalFetchConfig?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .conditionbased(conditionbased): + try writer["conditionBased"].write(conditionbased, with: IoTFleetWiseClientTypes.ConditionBasedSignalFetchConfig.write(value:to:)) + case let .timebased(timebased): + try writer["timeBased"].write(timebased, with: IoTFleetWiseClientTypes.TimeBasedSignalFetchConfig.write(value:to:)) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.SignalFetchConfig { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + let name = reader.children.filter { $0.hasContent && $0.nodeInfo.name != "__type" }.first?.nodeInfo.name + switch name { + case "timeBased": + return .timebased(try reader["timeBased"].read(with: IoTFleetWiseClientTypes.TimeBasedSignalFetchConfig.read(from:))) + case "conditionBased": + return .conditionbased(try reader["conditionBased"].read(with: IoTFleetWiseClientTypes.ConditionBasedSignalFetchConfig.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension IoTFleetWiseClientTypes.ConditionBasedSignalFetchConfig { + + static func write(value: IoTFleetWiseClientTypes.ConditionBasedSignalFetchConfig?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["conditionExpression"].write(value.conditionExpression) + try writer["triggerMode"].write(value.triggerMode) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.ConditionBasedSignalFetchConfig { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.ConditionBasedSignalFetchConfig() + value.conditionExpression = try reader["conditionExpression"].readIfPresent() ?? "" + value.triggerMode = try reader["triggerMode"].readIfPresent() ?? .sdkUnknown("") + return value + } +} + +extension IoTFleetWiseClientTypes.TimeBasedSignalFetchConfig { + + static func write(value: IoTFleetWiseClientTypes.TimeBasedSignalFetchConfig?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["executionFrequencyMs"].write(value.executionFrequencyMs) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.TimeBasedSignalFetchConfig { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.TimeBasedSignalFetchConfig() + value.executionFrequencyMs = try reader["executionFrequencyMs"].readIfPresent() ?? 0 + return value + } +} + extension IoTFleetWiseClientTypes.CloudWatchLogDeliveryOptions { static func write(value: IoTFleetWiseClientTypes.CloudWatchLogDeliveryOptions?, to writer: SmithyJSON.Writer) throws { @@ -8169,6 +9482,96 @@ extension IoTFleetWiseClientTypes.NodeCounts { } } +extension IoTFleetWiseClientTypes.StateTemplateAssociation { + + static func write(value: IoTFleetWiseClientTypes.StateTemplateAssociation?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["identifier"].write(value.identifier) + try writer["stateTemplateUpdateStrategy"].write(value.stateTemplateUpdateStrategy, with: IoTFleetWiseClientTypes.StateTemplateUpdateStrategy.write(value:to:)) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.StateTemplateAssociation { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.StateTemplateAssociation() + value.identifier = try reader["identifier"].readIfPresent() ?? "" + value.stateTemplateUpdateStrategy = try reader["stateTemplateUpdateStrategy"].readIfPresent(with: IoTFleetWiseClientTypes.StateTemplateUpdateStrategy.read(from:)) + return value + } +} + +extension IoTFleetWiseClientTypes.StateTemplateUpdateStrategy { + + static func write(value: IoTFleetWiseClientTypes.StateTemplateUpdateStrategy?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .onchange(onchange): + try writer["onChange"].write(onchange, with: IoTFleetWiseClientTypes.OnChangeStateTemplateUpdateStrategy.write(value:to:)) + case let .periodic(periodic): + try writer["periodic"].write(periodic, with: IoTFleetWiseClientTypes.PeriodicStateTemplateUpdateStrategy.write(value:to:)) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.StateTemplateUpdateStrategy { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + let name = reader.children.filter { $0.hasContent && $0.nodeInfo.name != "__type" }.first?.nodeInfo.name + switch name { + case "periodic": + return .periodic(try reader["periodic"].read(with: IoTFleetWiseClientTypes.PeriodicStateTemplateUpdateStrategy.read(from:))) + case "onChange": + return .onchange(try reader["onChange"].read(with: IoTFleetWiseClientTypes.OnChangeStateTemplateUpdateStrategy.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension IoTFleetWiseClientTypes.OnChangeStateTemplateUpdateStrategy { + + static func write(value: IoTFleetWiseClientTypes.OnChangeStateTemplateUpdateStrategy?, to writer: SmithyJSON.Writer) throws { + guard value != nil else { return } + _ = writer[""] // create an empty structure + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.OnChangeStateTemplateUpdateStrategy { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + return IoTFleetWiseClientTypes.OnChangeStateTemplateUpdateStrategy() + } +} + +extension IoTFleetWiseClientTypes.PeriodicStateTemplateUpdateStrategy { + + static func write(value: IoTFleetWiseClientTypes.PeriodicStateTemplateUpdateStrategy?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["stateTemplateUpdateRate"].write(value.stateTemplateUpdateRate, with: IoTFleetWiseClientTypes.TimePeriod.write(value:to:)) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.PeriodicStateTemplateUpdateStrategy { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.PeriodicStateTemplateUpdateStrategy() + value.stateTemplateUpdateRate = try reader["stateTemplateUpdateRate"].readIfPresent(with: IoTFleetWiseClientTypes.TimePeriod.read(from:)) + return value + } +} + +extension IoTFleetWiseClientTypes.TimePeriod { + + static func write(value: IoTFleetWiseClientTypes.TimePeriod?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["unit"].write(value.unit) + try writer["value"].write(value.value) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.TimePeriod { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.TimePeriod() + value.unit = try reader["unit"].readIfPresent() ?? .sdkUnknown("") + value.value = try reader["value"].readIfPresent() ?? 0 + return value + } +} + extension IoTFleetWiseClientTypes.VehicleStatus { static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.VehicleStatus { @@ -8203,6 +9606,7 @@ extension IoTFleetWiseClientTypes.NetworkInterface { static func write(value: IoTFleetWiseClientTypes.NetworkInterface?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["canInterface"].write(value.canInterface, with: IoTFleetWiseClientTypes.CanInterface.write(value:to:)) + try writer["customDecodingInterface"].write(value.customDecodingInterface, with: IoTFleetWiseClientTypes.CustomDecodingInterface.write(value:to:)) try writer["interfaceId"].write(value.interfaceId) try writer["obdInterface"].write(value.obdInterface, with: IoTFleetWiseClientTypes.ObdInterface.write(value:to:)) try writer["type"].write(value.type) @@ -8217,6 +9621,22 @@ extension IoTFleetWiseClientTypes.NetworkInterface { value.canInterface = try reader["canInterface"].readIfPresent(with: IoTFleetWiseClientTypes.CanInterface.read(from:)) value.obdInterface = try reader["obdInterface"].readIfPresent(with: IoTFleetWiseClientTypes.ObdInterface.read(from:)) value.vehicleMiddleware = try reader["vehicleMiddleware"].readIfPresent(with: IoTFleetWiseClientTypes.VehicleMiddleware.read(from:)) + value.customDecodingInterface = try reader["customDecodingInterface"].readIfPresent(with: IoTFleetWiseClientTypes.CustomDecodingInterface.read(from:)) + return value + } +} + +extension IoTFleetWiseClientTypes.CustomDecodingInterface { + + static func write(value: IoTFleetWiseClientTypes.CustomDecodingInterface?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["name"].write(value.name) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.CustomDecodingInterface { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.CustomDecodingInterface() + value.name = try reader["name"].readIfPresent() ?? "" return value } } @@ -8306,6 +9726,7 @@ extension IoTFleetWiseClientTypes.SignalDecoder { static func write(value: IoTFleetWiseClientTypes.SignalDecoder?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["canSignal"].write(value.canSignal, with: IoTFleetWiseClientTypes.CanSignal.write(value:to:)) + try writer["customDecodingSignal"].write(value.customDecodingSignal, with: IoTFleetWiseClientTypes.CustomDecodingSignal.write(value:to:)) try writer["fullyQualifiedName"].write(value.fullyQualifiedName) try writer["interfaceId"].write(value.interfaceId) try writer["messageSignal"].write(value.messageSignal, with: IoTFleetWiseClientTypes.MessageSignal.write(value:to:)) @@ -8322,6 +9743,22 @@ extension IoTFleetWiseClientTypes.SignalDecoder { value.canSignal = try reader["canSignal"].readIfPresent(with: IoTFleetWiseClientTypes.CanSignal.read(from:)) value.obdSignal = try reader["obdSignal"].readIfPresent(with: IoTFleetWiseClientTypes.ObdSignal.read(from:)) value.messageSignal = try reader["messageSignal"].readIfPresent(with: IoTFleetWiseClientTypes.MessageSignal.read(from:)) + value.customDecodingSignal = try reader["customDecodingSignal"].readIfPresent(with: IoTFleetWiseClientTypes.CustomDecodingSignal.read(from:)) + return value + } +} + +extension IoTFleetWiseClientTypes.CustomDecodingSignal { + + static func write(value: IoTFleetWiseClientTypes.CustomDecodingSignal?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["id"].write(value.id) + } + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.CustomDecodingSignal { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.CustomDecodingSignal() + value.id = try reader["id"].readIfPresent() ?? "" return value } } @@ -8778,6 +10215,22 @@ extension IoTFleetWiseClientTypes.SignalCatalogSummary { } } +extension IoTFleetWiseClientTypes.StateTemplateSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> IoTFleetWiseClientTypes.StateTemplateSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = IoTFleetWiseClientTypes.StateTemplateSummary() + value.name = try reader["name"].readIfPresent() + value.arn = try reader["arn"].readIfPresent() + value.signalCatalogArn = try reader["signalCatalogArn"].readIfPresent() + value.description = try reader["description"].readIfPresent() + value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.lastModificationTime = try reader["lastModificationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.id = try reader["id"].readIfPresent() + return value + } +} + extension IoTFleetWiseClientTypes.Tag { static func write(value: IoTFleetWiseClientTypes.Tag?, to writer: SmithyJSON.Writer) throws { @@ -8896,6 +10349,7 @@ extension IoTFleetWiseClientTypes.CreateVehicleRequestItem { try writer["attributes"].writeMap(value.attributes, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) try writer["decoderManifestArn"].write(value.decoderManifestArn) try writer["modelManifestArn"].write(value.modelManifestArn) + try writer["stateTemplates"].writeList(value.stateTemplates, memberWritingClosure: IoTFleetWiseClientTypes.StateTemplateAssociation.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["tags"].writeList(value.tags, memberWritingClosure: IoTFleetWiseClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["vehicleName"].write(value.vehicleName) } @@ -8909,6 +10363,8 @@ extension IoTFleetWiseClientTypes.UpdateVehicleRequestItem { try writer["attributes"].writeMap(value.attributes, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) try writer["decoderManifestArn"].write(value.decoderManifestArn) try writer["modelManifestArn"].write(value.modelManifestArn) + try writer["stateTemplatesToAdd"].writeList(value.stateTemplatesToAdd, memberWritingClosure: IoTFleetWiseClientTypes.StateTemplateAssociation.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["stateTemplatesToRemove"].writeList(value.stateTemplatesToRemove, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["vehicleName"].write(value.vehicleName) } } diff --git a/Sources/Services/AWSIoTJobsDataPlane/Sources/AWSIoTJobsDataPlane/IoTJobsDataPlaneClient.swift b/Sources/Services/AWSIoTJobsDataPlane/Sources/AWSIoTJobsDataPlane/IoTJobsDataPlaneClient.swift index 6027142939a..26b0755b494 100644 --- a/Sources/Services/AWSIoTJobsDataPlane/Sources/AWSIoTJobsDataPlane/IoTJobsDataPlaneClient.swift +++ b/Sources/Services/AWSIoTJobsDataPlane/Sources/AWSIoTJobsDataPlane/IoTJobsDataPlaneClient.swift @@ -49,6 +49,7 @@ import struct ClientRuntime.AuthSchemeMiddleware import struct ClientRuntime.ContentLengthMiddleware import struct ClientRuntime.ContentTypeMiddleware @_spi(SmithyReadWrite) import struct ClientRuntime.DeserializeMiddleware +import struct ClientRuntime.IdempotencyTokenMiddleware import struct ClientRuntime.LoggerMiddleware import struct ClientRuntime.QueryItemMiddleware import struct ClientRuntime.SignerMiddleware @@ -63,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTJobsDataPlaneClient: ClientRuntime.Client { public static let clientName = "IoTJobsDataPlaneClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTJobsDataPlaneClient.IoTJobsDataPlaneClientConfiguration let serviceName = "IoT Jobs Data Plane" @@ -196,7 +197,7 @@ extension IoTJobsDataPlaneClient { extension IoTJobsDataPlaneClient { /// Performs the `DescribeJobExecution` operation on the `IotLaserThingJobManagerExternalService` service. /// - /// Gets details of a job execution. + /// Gets details of a job execution. Requires permission to access the [DescribeJobExecution](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) action. /// /// - Parameter DescribeJobExecutionInput : [no documentation found] /// @@ -206,7 +207,7 @@ extension IoTJobsDataPlaneClient { /// /// __Possible Exceptions:__ /// - `CertificateValidationException` : The certificate is invalid. - /// - `InvalidRequestException` : The contents of the request were invalid. For example, this code is returned when an UpdateJobExecution request contains invalid status details. The message contains details about the error. + /// - `InvalidRequestException` : The contents of the request were invalid. /// - `ResourceNotFoundException` : The specified resource does not exist. /// - `ServiceUnavailableException` : The service is temporarily unavailable. /// - `TerminalStateException` : The job is in a terminal state. @@ -268,7 +269,7 @@ extension IoTJobsDataPlaneClient { /// Performs the `GetPendingJobExecutions` operation on the `IotLaserThingJobManagerExternalService` service. /// - /// Gets the list of all jobs for a thing that are not in a terminal status. + /// Gets the list of all jobs for a thing that are not in a terminal status. Requires permission to access the [GetPendingJobExecutions](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) action. /// /// - Parameter GetPendingJobExecutionsInput : [no documentation found] /// @@ -278,7 +279,7 @@ extension IoTJobsDataPlaneClient { /// /// __Possible Exceptions:__ /// - `CertificateValidationException` : The certificate is invalid. - /// - `InvalidRequestException` : The contents of the request were invalid. For example, this code is returned when an UpdateJobExecution request contains invalid status details. The message contains details about the error. + /// - `InvalidRequestException` : The contents of the request were invalid. /// - `ResourceNotFoundException` : The specified resource does not exist. /// - `ServiceUnavailableException` : The service is temporarily unavailable. /// - `ThrottlingException` : The rate exceeds the limit. @@ -336,9 +337,84 @@ extension IoTJobsDataPlaneClient { return try await op.execute(input: input) } + /// Performs the `StartCommandExecution` operation on the `IotLaserThingJobManagerExternalService` service. + /// + /// Using the command created with the CreateCommand API, start a command execution on a specific device. + /// + /// - Parameter StartCommandExecutionInput : [no documentation found] + /// + /// - Returns: `StartCommandExecutionOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConflictException` : A conflict has occurred when performing the API request. + /// - `InternalServerException` : An internal server error occurred when performing the API request. + /// - `ResourceNotFoundException` : The specified resource does not exist. + /// - `ServiceQuotaExceededException` : The service quota has been exceeded for this request. + /// - `ThrottlingException` : The rate exceeds the limit. + /// - `ValidationException` : A validation error occurred when performing the API request. + public func startCommandExecution(input: StartCommandExecutionInput) async throws -> StartCommandExecutionOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "startCommandExecution") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "iot-jobs-data") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.IdempotencyTokenMiddleware(keyPath: \.clientToken)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(StartCommandExecutionInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: StartCommandExecutionInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(StartCommandExecutionOutput.httpOutput(from:), StartCommandExecutionOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: IoTJobsDataPlaneClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "IoTJobsDataPlane") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "StartCommandExecution") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `StartNextPendingJobExecution` operation on the `IotLaserThingJobManagerExternalService` service. /// - /// Gets and starts the next pending (status IN_PROGRESS or QUEUED) job execution for a thing. + /// Gets and starts the next pending (status IN_PROGRESS or QUEUED) job execution for a thing. Requires permission to access the [StartNextPendingJobExecution](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) action. /// /// - Parameter StartNextPendingJobExecutionInput : [no documentation found] /// @@ -348,7 +424,7 @@ extension IoTJobsDataPlaneClient { /// /// __Possible Exceptions:__ /// - `CertificateValidationException` : The certificate is invalid. - /// - `InvalidRequestException` : The contents of the request were invalid. For example, this code is returned when an UpdateJobExecution request contains invalid status details. The message contains details about the error. + /// - `InvalidRequestException` : The contents of the request were invalid. /// - `ResourceNotFoundException` : The specified resource does not exist. /// - `ServiceUnavailableException` : The service is temporarily unavailable. /// - `ThrottlingException` : The rate exceeds the limit. @@ -411,7 +487,7 @@ extension IoTJobsDataPlaneClient { /// Performs the `UpdateJobExecution` operation on the `IotLaserThingJobManagerExternalService` service. /// - /// Updates the status of a job execution. + /// Updates the status of a job execution. Requires permission to access the [UpdateJobExecution](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotjobsdataplane.html) action. /// /// - Parameter UpdateJobExecutionInput : [no documentation found] /// @@ -421,7 +497,7 @@ extension IoTJobsDataPlaneClient { /// /// __Possible Exceptions:__ /// - `CertificateValidationException` : The certificate is invalid. - /// - `InvalidRequestException` : The contents of the request were invalid. For example, this code is returned when an UpdateJobExecution request contains invalid status details. The message contains details about the error. + /// - `InvalidRequestException` : The contents of the request were invalid. /// - `InvalidStateTransitionException` : An update attempted to change the job execution to a state that is invalid because of the job execution's current state (for example, an attempt to change a request in state SUCCESS to state IN_PROGRESS). In this case, the body of the error message also contains the executionState field. /// - `ResourceNotFoundException` : The specified resource does not exist. /// - `ServiceUnavailableException` : The service is temporarily unavailable. diff --git a/Sources/Services/AWSIoTJobsDataPlane/Sources/AWSIoTJobsDataPlane/Models.swift b/Sources/Services/AWSIoTJobsDataPlane/Sources/AWSIoTJobsDataPlane/Models.swift index ff2480fcf35..2060acd5292 100644 --- a/Sources/Services/AWSIoTJobsDataPlane/Sources/AWSIoTJobsDataPlane/Models.swift +++ b/Sources/Services/AWSIoTJobsDataPlane/Sources/AWSIoTJobsDataPlane/Models.swift @@ -50,7 +50,75 @@ public struct CertificateValidationException: ClientRuntime.ModeledError, AWSCli } } -/// The contents of the request were invalid. For example, this code is returned when an UpdateJobExecution request contains invalid status details. The message contains details about the error. +extension IoTJobsDataPlaneClientTypes { + + /// The list of values used to describe a specific command parameter. + public struct CommandParameterValue: Swift.Sendable { + /// An attribute of type Boolean. For example: "BOOL": true + public var b: Swift.Bool? + /// An attribute of type Binary. + public var bin: Foundation.Data? + /// An attribute of type Double (Sixty-Four Bits). + public var d: Swift.Double? + /// An attribute of type Integer (Thirty-Two Bits). + public var i: Swift.Int? + /// An attribute of type Long. + public var l: Swift.Int? + /// An attribute of type String. For example: "S": "Hello" + public var s: Swift.String? + /// An attribute of type Unsigned Long. + public var ul: Swift.String? + + public init( + b: Swift.Bool? = nil, + bin: Foundation.Data? = nil, + d: Swift.Double? = nil, + i: Swift.Int? = nil, + l: Swift.Int? = nil, + s: Swift.String? = nil, + ul: Swift.String? = nil + ) + { + self.b = b + self.bin = bin + self.d = d + self.i = i + self.l = l + self.s = s + self.ul = ul + } + } +} + +/// A conflict has occurred when performing the API request. +public struct ConflictException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + public internal(set) var message: Swift.String? = nil + /// A conflict occurred while performing the API request on the resource ID. + public internal(set) var resourceId: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ConflictException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil, + resourceId: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.resourceId = resourceId + } +} + +/// The contents of the request were invalid. public struct InvalidRequestException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -181,7 +249,7 @@ public struct ThrottlingException: ClientRuntime.ModeledError, AWSClientRuntime. public struct DescribeJobExecutionInput: Swift.Sendable { /// Optional. A number that identifies a particular job execution on a particular device. If not specified, the latest job execution is returned. public var executionNumber: Swift.Int? - /// Optional. When set to true, the response contains the job document. The default is false. + /// Optional. Unless set to false, the response contains the job document. The default is true. public var includeJobDocument: Swift.Bool? /// The unique identifier assigned to this job when it was created. /// This member is required. @@ -255,7 +323,7 @@ extension IoTJobsDataPlaneClientTypes { /// Contains data about a job execution. public struct JobExecution: Swift.Sendable { - /// The estimated number of seconds that remain before the job execution status will be changed to TIMED_OUT. + /// The estimated number of seconds that remain before the job execution status will be changed to TIMED_OUT. The actual job execution timeout can occur up to 60 seconds later than the estimated duration. public var approximateSecondsBeforeTimedOut: Swift.Int? /// A number that identifies a particular job execution on a particular device. It can be used later in commands that return or update job execution information. public var executionNumber: Swift.Int? @@ -263,15 +331,15 @@ extension IoTJobsDataPlaneClientTypes { public var jobDocument: Swift.String? /// The unique identifier you assigned to this job when it was created. public var jobId: Swift.String? - /// The time, in milliseconds since the epoch, when the job execution was last updated. + /// The time, in seconds since the epoch, when the job execution was last updated. public var lastUpdatedAt: Swift.Int - /// The time, in milliseconds since the epoch, when the job execution was enqueued. + /// The time, in seconds since the epoch, when the job execution was enqueued. public var queuedAt: Swift.Int - /// The time, in milliseconds since the epoch, when the job execution was started. + /// The time, in seconds since the epoch, when the job execution was started. public var startedAt: Swift.Int? - /// The status of the job execution. Can be one of: "QUEUED", "IN_PROGRESS", "FAILED", "SUCCESS", "CANCELED", "REJECTED", or "REMOVED". + /// The status of the job execution. Can be one of: "QUEUED", "IN_PROGRESS", "FAILED", "SUCCESS", "CANCELED", "TIMED_OUT", "REJECTED", or "REMOVED". public var status: IoTJobsDataPlaneClientTypes.JobExecutionStatus? - /// A collection of name/value pairs that describe the status of the job execution. + /// A collection of name/value pairs that describe the status of the job execution. The maximum length of the value in the name/value pair is 1,024 characters. public var statusDetails: [Swift.String: Swift.String]? /// The name of the thing that is executing the job. public var thingName: Swift.String? @@ -340,13 +408,13 @@ extension IoTJobsDataPlaneClientTypes { public var executionNumber: Swift.Int? /// The unique identifier you assigned to this job when it was created. public var jobId: Swift.String? - /// The time, in milliseconds since the epoch, when the job execution was last updated. + /// The time, in seconds since the epoch, when the job execution was last updated. public var lastUpdatedAt: Swift.Int - /// The time, in milliseconds since the epoch, when the job execution was enqueued. + /// The time, in seconds since the epoch, when the job execution was enqueued. public var queuedAt: Swift.Int - /// The time, in milliseconds since the epoch, when the job execution started. + /// The time, in seconds since the epoch, when the job execution started. public var startedAt: Swift.Int? - /// The version of the job execution. Job execution versions are incremented each time AWS IoT Jobs receives an update from a device. + /// The version of the job execution. Job execution versions are incremented each time IoT Jobs receives an update from a device. public var versionNumber: Swift.Int public init( @@ -384,6 +452,30 @@ public struct GetPendingJobExecutionsOutput: Swift.Sendable { } } +/// An internal server error occurred when performing the API request. +public struct InternalServerException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "InternalServerException" } + public static var fault: ClientRuntime.ErrorFault { .server } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + /// An update attempted to change the job execution to a state that is invalid because of the job execution's current state (for example, an attempt to change a request in state SUCCESS to state IN_PROGRESS). In this case, the body of the error message also contains the executionState field. public struct InvalidStateTransitionException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -408,10 +500,100 @@ public struct InvalidStateTransitionException: ClientRuntime.ModeledError, AWSCl } } +/// The service quota has been exceeded for this request. +public struct ServiceQuotaExceededException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ServiceQuotaExceededException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + +/// A validation error occurred when performing the API request. +public struct ValidationException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ValidationException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + +public struct StartCommandExecutionInput: Swift.Sendable { + /// The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you retry the request using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, Amazon Web Services SDKs will automatically generate a unique client request. + public var clientToken: Swift.String? + /// The Amazon Resource Number (ARN) of the command. For example, arn:aws:iot:::command/ + /// This member is required. + public var commandArn: Swift.String? + /// Specifies the amount of time in second the device has to finish the command execution. A timer is started as soon as the command execution is created. If the command execution status is not set to another terminal state before the timer expires, it will automatically update to TIMED_OUT. + public var executionTimeoutSeconds: Swift.Int? + /// A list of parameters that are required by the StartCommandExecution API when performing the command on a device. + public var parameters: [Swift.String: IoTJobsDataPlaneClientTypes.CommandParameterValue]? + /// The Amazon Resource Number (ARN) of the device where the command execution is occurring. + /// This member is required. + public var targetArn: Swift.String? + + public init( + clientToken: Swift.String? = nil, + commandArn: Swift.String? = nil, + executionTimeoutSeconds: Swift.Int? = nil, + parameters: [Swift.String: IoTJobsDataPlaneClientTypes.CommandParameterValue]? = nil, + targetArn: Swift.String? = nil + ) + { + self.clientToken = clientToken + self.commandArn = commandArn + self.executionTimeoutSeconds = executionTimeoutSeconds + self.parameters = parameters + self.targetArn = targetArn + } +} + +public struct StartCommandExecutionOutput: Swift.Sendable { + /// A unique identifier for the command execution. + public var executionId: Swift.String? + + public init( + executionId: Swift.String? = nil + ) + { + self.executionId = executionId + } +} + public struct StartNextPendingJobExecutionInput: Swift.Sendable { - /// A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged. + /// A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged. The maximum length of the value in the name/value pair is 1,024 characters. public var statusDetails: [Swift.String: Swift.String]? - /// Specifies the amount of time this device has to finish execution of this job. If the job execution status is not set to a terminal state before this timer expires, or before the timer is reset (by calling UpdateJobExecution, setting the status to IN_PROGRESS and specifying a new timeout value in field stepTimeoutInMinutes) the job execution status will be automatically set to TIMED_OUT. Note that setting this timeout has no effect on that job execution timeout which may have been specified when the job was created (CreateJob using field timeoutConfig). + /// Specifies the amount of time this device has to finish execution of this job. If the job execution status is not set to a terminal state before this timer expires, or before the timer is reset (by calling UpdateJobExecution, setting the status to IN_PROGRESS, and specifying a new timeout value in field stepTimeoutInMinutes) the job execution status will be automatically set to TIMED_OUT. Note that setting the step timeout has no effect on the in progress timeout that may have been specified when the job was created (CreateJob using field timeoutConfig). Valid values for this parameter range from 1 to 10080 (1 minute to 7 days). public var stepTimeoutInMinutes: Swift.Int? /// The name of the thing associated with the device. /// This member is required. @@ -456,9 +638,9 @@ public struct UpdateJobExecutionInput: Swift.Sendable { /// The new status for the job execution (IN_PROGRESS, FAILED, SUCCESS, or REJECTED). This must be specified on every update. /// This member is required. public var status: IoTJobsDataPlaneClientTypes.JobExecutionStatus? - /// Optional. A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged. + /// Optional. A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged. The maximum length of the value in the name/value pair is 1,024 characters. public var statusDetails: [Swift.String: Swift.String]? - /// Specifies the amount of time this device has to finish execution of this job. If the job execution status is not set to a terminal state before this timer expires, or before the timer is reset (by again calling UpdateJobExecution, setting the status to IN_PROGRESS and specifying a new timeout value in this field) the job execution status will be automatically set to TIMED_OUT. Note that setting or resetting this timeout has no effect on that job execution timeout which may have been specified when the job was created (CreateJob using field timeoutConfig). + /// Specifies the amount of time this device has to finish execution of this job. If the job execution status is not set to a terminal state before this timer expires, or before the timer is reset (by again calling UpdateJobExecution, setting the status to IN_PROGRESS, and specifying a new timeout value in this field) the job execution status will be automatically set to TIMED_OUT. Note that setting or resetting the step timeout has no effect on the in progress timeout that may have been specified when the job was created (CreateJob using field timeoutConfig). Valid values for this parameter range from 1 to 10080 (1 minute to 7 days). A value of -1 is also valid and will cancel the current step timer (created by an earlier use of UpdateJobExecutionRequest). public var stepTimeoutInMinutes: Swift.Int? /// The name of the thing associated with the device. /// This member is required. @@ -492,9 +674,9 @@ extension IoTJobsDataPlaneClientTypes { /// Contains data about the state of a job execution. public struct JobExecutionState: Swift.Sendable { - /// The status of the job execution. Can be one of: "QUEUED", "IN_PROGRESS", "FAILED", "SUCCESS", "CANCELED", "REJECTED", or "REMOVED". + /// The status of the job execution. Can be one of: "QUEUED", "IN_PROGRESS", "FAILED", "SUCCESS", "CANCELED", "TIMED_OUT", "REJECTED", or "REMOVED". public var status: IoTJobsDataPlaneClientTypes.JobExecutionStatus? - /// A collection of name/value pairs that describe the status of the job execution. + /// A collection of name/value pairs that describe the status of the job execution. The maximum length of the value in the name/value pair is 1,024 characters. public var statusDetails: [Swift.String: Swift.String]? /// The version of the job execution. Job execution versions are incremented each time they are updated by a device. public var versionNumber: Swift.Int @@ -567,6 +749,13 @@ extension GetPendingJobExecutionsInput { } } +extension StartCommandExecutionInput { + + static func urlPathProvider(_ value: StartCommandExecutionInput) -> Swift.String? { + return "/command-executions" + } +} + extension StartNextPendingJobExecutionInput { static func urlPathProvider(_ value: StartNextPendingJobExecutionInput) -> Swift.String? { @@ -590,6 +779,18 @@ extension UpdateJobExecutionInput { } } +extension StartCommandExecutionInput { + + static func write(value: StartCommandExecutionInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["clientToken"].write(value.clientToken) + try writer["commandArn"].write(value.commandArn) + try writer["executionTimeoutSeconds"].write(value.executionTimeoutSeconds) + try writer["parameters"].writeMap(value.parameters, valueWritingClosure: IoTJobsDataPlaneClientTypes.CommandParameterValue.write(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + try writer["targetArn"].write(value.targetArn) + } +} + extension StartNextPendingJobExecutionInput { static func write(value: StartNextPendingJobExecutionInput?, to writer: SmithyJSON.Writer) throws { @@ -638,6 +839,18 @@ extension GetPendingJobExecutionsOutput { } } +extension StartCommandExecutionOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartCommandExecutionOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = StartCommandExecutionOutput() + value.executionId = try reader["executionId"].readIfPresent() + return value + } +} + extension StartNextPendingJobExecutionOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartNextPendingJobExecutionOutput { @@ -700,6 +913,25 @@ enum GetPendingJobExecutionsOutputError { } } +enum StartCommandExecutionOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum StartNextPendingJobExecutionOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -816,6 +1048,59 @@ extension InvalidRequestException { } } +extension ServiceQuotaExceededException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ServiceQuotaExceededException { + let reader = baseError.errorBodyReader + var value = ServiceQuotaExceededException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ValidationException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ValidationException { + let reader = baseError.errorBodyReader + var value = ValidationException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ConflictException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ConflictException { + let reader = baseError.errorBodyReader + var value = ConflictException() + value.properties.message = try reader["message"].readIfPresent() + value.properties.resourceId = try reader["resourceId"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension InternalServerException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> InternalServerException { + let reader = baseError.errorBodyReader + var value = InternalServerException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + extension InvalidStateTransitionException { static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> InvalidStateTransitionException { @@ -876,4 +1161,18 @@ extension IoTJobsDataPlaneClientTypes.JobExecutionState { } } +extension IoTJobsDataPlaneClientTypes.CommandParameterValue { + + static func write(value: IoTJobsDataPlaneClientTypes.CommandParameterValue?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["B"].write(value.b) + try writer["BIN"].write(value.bin) + try writer["D"].write(value.d) + try writer["I"].write(value.i) + try writer["L"].write(value.l) + try writer["S"].write(value.s) + try writer["UL"].write(value.ul) + } +} + public enum IoTJobsDataPlaneClientTypes {} diff --git a/Sources/Services/AWSIoTSecureTunneling/Sources/AWSIoTSecureTunneling/IoTSecureTunnelingClient.swift b/Sources/Services/AWSIoTSecureTunneling/Sources/AWSIoTSecureTunneling/IoTSecureTunnelingClient.swift index 03a2413bfca..fba2b8ecab5 100644 --- a/Sources/Services/AWSIoTSecureTunneling/Sources/AWSIoTSecureTunneling/IoTSecureTunnelingClient.swift +++ b/Sources/Services/AWSIoTSecureTunneling/Sources/AWSIoTSecureTunneling/IoTSecureTunnelingClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTSecureTunnelingClient: ClientRuntime.Client { public static let clientName = "IoTSecureTunnelingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTSecureTunnelingClient.IoTSecureTunnelingClientConfiguration let serviceName = "IoTSecureTunneling" diff --git a/Sources/Services/AWSIoTSiteWise/Sources/AWSIoTSiteWise/IoTSiteWiseClient.swift b/Sources/Services/AWSIoTSiteWise/Sources/AWSIoTSiteWise/IoTSiteWiseClient.swift index a1bea89f85d..0126000c1b0 100644 --- a/Sources/Services/AWSIoTSiteWise/Sources/AWSIoTSiteWise/IoTSiteWiseClient.swift +++ b/Sources/Services/AWSIoTSiteWise/Sources/AWSIoTSiteWise/IoTSiteWiseClient.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTSiteWiseClient: ClientRuntime.Client { public static let clientName = "IoTSiteWiseClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTSiteWiseClient.IoTSiteWiseClientConfiguration let serviceName = "IoTSiteWise" diff --git a/Sources/Services/AWSIoTThingsGraph/Sources/AWSIoTThingsGraph/IoTThingsGraphClient.swift b/Sources/Services/AWSIoTThingsGraph/Sources/AWSIoTThingsGraph/IoTThingsGraphClient.swift index 8a60269947a..2a617b03f7a 100644 --- a/Sources/Services/AWSIoTThingsGraph/Sources/AWSIoTThingsGraph/IoTThingsGraphClient.swift +++ b/Sources/Services/AWSIoTThingsGraph/Sources/AWSIoTThingsGraph/IoTThingsGraphClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTThingsGraphClient: ClientRuntime.Client { public static let clientName = "IoTThingsGraphClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTThingsGraphClient.IoTThingsGraphClientConfiguration let serviceName = "IoTThingsGraph" diff --git a/Sources/Services/AWSIoTTwinMaker/Sources/AWSIoTTwinMaker/IoTTwinMakerClient.swift b/Sources/Services/AWSIoTTwinMaker/Sources/AWSIoTTwinMaker/IoTTwinMakerClient.swift index fbd96e22789..8ef80001c34 100644 --- a/Sources/Services/AWSIoTTwinMaker/Sources/AWSIoTTwinMaker/IoTTwinMakerClient.swift +++ b/Sources/Services/AWSIoTTwinMaker/Sources/AWSIoTTwinMaker/IoTTwinMakerClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTTwinMakerClient: ClientRuntime.Client { public static let clientName = "IoTTwinMakerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTTwinMakerClient.IoTTwinMakerClientConfiguration let serviceName = "IoTTwinMaker" diff --git a/Sources/Services/AWSIoTWireless/Sources/AWSIoTWireless/IoTWirelessClient.swift b/Sources/Services/AWSIoTWireless/Sources/AWSIoTWireless/IoTWirelessClient.swift index 4493717dc91..c0e37b33d13 100644 --- a/Sources/Services/AWSIoTWireless/Sources/AWSIoTWireless/IoTWirelessClient.swift +++ b/Sources/Services/AWSIoTWireless/Sources/AWSIoTWireless/IoTWirelessClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IoTWirelessClient: ClientRuntime.Client { public static let clientName = "IoTWirelessClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IoTWirelessClient.IoTWirelessClientConfiguration let serviceName = "IoT Wireless" diff --git a/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift b/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift index 9f478bf0ea3..e38fd13e664 100644 --- a/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift +++ b/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IotDeviceAdvisorClient: ClientRuntime.Client { public static let clientName = "IotDeviceAdvisorClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IotDeviceAdvisorClient.IotDeviceAdvisorClientConfiguration let serviceName = "IotDeviceAdvisor" diff --git a/Sources/Services/AWSIvs/Sources/AWSIvs/IvsClient.swift b/Sources/Services/AWSIvs/Sources/AWSIvs/IvsClient.swift index aa70f8aeb6b..319439f469d 100644 --- a/Sources/Services/AWSIvs/Sources/AWSIvs/IvsClient.swift +++ b/Sources/Services/AWSIvs/Sources/AWSIvs/IvsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IvsClient: ClientRuntime.Client { public static let clientName = "IvsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IvsClient.IvsClientConfiguration let serviceName = "ivs" diff --git a/Sources/Services/AWSIvschat/Sources/AWSIvschat/IvschatClient.swift b/Sources/Services/AWSIvschat/Sources/AWSIvschat/IvschatClient.swift index 29dffa0fc80..e6bfbbbc799 100644 --- a/Sources/Services/AWSIvschat/Sources/AWSIvschat/IvschatClient.swift +++ b/Sources/Services/AWSIvschat/Sources/AWSIvschat/IvschatClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class IvschatClient: ClientRuntime.Client { public static let clientName = "IvschatClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: IvschatClient.IvschatClientConfiguration let serviceName = "ivschat" diff --git a/Sources/Services/AWSKMS/Sources/AWSKMS/KMSClient.swift b/Sources/Services/AWSKMS/Sources/AWSKMS/KMSClient.swift index 2624bc91c5b..8c48f59b431 100644 --- a/Sources/Services/AWSKMS/Sources/AWSKMS/KMSClient.swift +++ b/Sources/Services/AWSKMS/Sources/AWSKMS/KMSClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KMSClient: ClientRuntime.Client { public static let clientName = "KMSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KMSClient.KMSClientConfiguration let serviceName = "KMS" diff --git a/Sources/Services/AWSKafka/Sources/AWSKafka/KafkaClient.swift b/Sources/Services/AWSKafka/Sources/AWSKafka/KafkaClient.swift index e16b7322007..c9787e65060 100644 --- a/Sources/Services/AWSKafka/Sources/AWSKafka/KafkaClient.swift +++ b/Sources/Services/AWSKafka/Sources/AWSKafka/KafkaClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KafkaClient: ClientRuntime.Client { public static let clientName = "KafkaClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KafkaClient.KafkaClientConfiguration let serviceName = "Kafka" diff --git a/Sources/Services/AWSKafkaConnect/Sources/AWSKafkaConnect/KafkaConnectClient.swift b/Sources/Services/AWSKafkaConnect/Sources/AWSKafkaConnect/KafkaConnectClient.swift index 1ae31687111..08b98926515 100644 --- a/Sources/Services/AWSKafkaConnect/Sources/AWSKafkaConnect/KafkaConnectClient.swift +++ b/Sources/Services/AWSKafkaConnect/Sources/AWSKafkaConnect/KafkaConnectClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KafkaConnectClient: ClientRuntime.Client { public static let clientName = "KafkaConnectClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KafkaConnectClient.KafkaConnectClientConfiguration let serviceName = "KafkaConnect" diff --git a/Sources/Services/AWSKendra/Sources/AWSKendra/KendraClient.swift b/Sources/Services/AWSKendra/Sources/AWSKendra/KendraClient.swift index 40e9ea838de..c973dd7de11 100644 --- a/Sources/Services/AWSKendra/Sources/AWSKendra/KendraClient.swift +++ b/Sources/Services/AWSKendra/Sources/AWSKendra/KendraClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KendraClient: ClientRuntime.Client { public static let clientName = "KendraClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KendraClient.KendraClientConfiguration let serviceName = "kendra" diff --git a/Sources/Services/AWSKendraRanking/Sources/AWSKendraRanking/KendraRankingClient.swift b/Sources/Services/AWSKendraRanking/Sources/AWSKendraRanking/KendraRankingClient.swift index e465e1740a2..944f79e696d 100644 --- a/Sources/Services/AWSKendraRanking/Sources/AWSKendraRanking/KendraRankingClient.swift +++ b/Sources/Services/AWSKendraRanking/Sources/AWSKendraRanking/KendraRankingClient.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KendraRankingClient: ClientRuntime.Client { public static let clientName = "KendraRankingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KendraRankingClient.KendraRankingClientConfiguration let serviceName = "Kendra Ranking" diff --git a/Sources/Services/AWSKeyspaces/Sources/AWSKeyspaces/KeyspacesClient.swift b/Sources/Services/AWSKeyspaces/Sources/AWSKeyspaces/KeyspacesClient.swift index 83a8c70d664..bb8f1dbac7b 100644 --- a/Sources/Services/AWSKeyspaces/Sources/AWSKeyspaces/KeyspacesClient.swift +++ b/Sources/Services/AWSKeyspaces/Sources/AWSKeyspaces/KeyspacesClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KeyspacesClient: ClientRuntime.Client { public static let clientName = "KeyspacesClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KeyspacesClient.KeyspacesClientConfiguration let serviceName = "Keyspaces" diff --git a/Sources/Services/AWSKinesis/Sources/AWSKinesis/KinesisClient.swift b/Sources/Services/AWSKinesis/Sources/AWSKinesis/KinesisClient.swift index e15db285648..1628b0885b3 100644 --- a/Sources/Services/AWSKinesis/Sources/AWSKinesis/KinesisClient.swift +++ b/Sources/Services/AWSKinesis/Sources/AWSKinesis/KinesisClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KinesisClient: ClientRuntime.Client { public static let clientName = "KinesisClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KinesisClient.KinesisClientConfiguration let serviceName = "Kinesis" diff --git a/Sources/Services/AWSKinesisAnalytics/Sources/AWSKinesisAnalytics/KinesisAnalyticsClient.swift b/Sources/Services/AWSKinesisAnalytics/Sources/AWSKinesisAnalytics/KinesisAnalyticsClient.swift index 0adcab594d6..6a45c2073fb 100644 --- a/Sources/Services/AWSKinesisAnalytics/Sources/AWSKinesisAnalytics/KinesisAnalyticsClient.swift +++ b/Sources/Services/AWSKinesisAnalytics/Sources/AWSKinesisAnalytics/KinesisAnalyticsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KinesisAnalyticsClient: ClientRuntime.Client { public static let clientName = "KinesisAnalyticsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KinesisAnalyticsClient.KinesisAnalyticsClientConfiguration let serviceName = "Kinesis Analytics" diff --git a/Sources/Services/AWSKinesisAnalyticsV2/Sources/AWSKinesisAnalyticsV2/KinesisAnalyticsV2Client.swift b/Sources/Services/AWSKinesisAnalyticsV2/Sources/AWSKinesisAnalyticsV2/KinesisAnalyticsV2Client.swift index 89857b1374a..616a677ae04 100644 --- a/Sources/Services/AWSKinesisAnalyticsV2/Sources/AWSKinesisAnalyticsV2/KinesisAnalyticsV2Client.swift +++ b/Sources/Services/AWSKinesisAnalyticsV2/Sources/AWSKinesisAnalyticsV2/KinesisAnalyticsV2Client.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KinesisAnalyticsV2Client: ClientRuntime.Client { public static let clientName = "KinesisAnalyticsV2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KinesisAnalyticsV2Client.KinesisAnalyticsV2ClientConfiguration let serviceName = "Kinesis Analytics V2" diff --git a/Sources/Services/AWSKinesisVideo/Sources/AWSKinesisVideo/KinesisVideoClient.swift b/Sources/Services/AWSKinesisVideo/Sources/AWSKinesisVideo/KinesisVideoClient.swift index 71acfef8dfb..c8e77469dce 100644 --- a/Sources/Services/AWSKinesisVideo/Sources/AWSKinesisVideo/KinesisVideoClient.swift +++ b/Sources/Services/AWSKinesisVideo/Sources/AWSKinesisVideo/KinesisVideoClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KinesisVideoClient: ClientRuntime.Client { public static let clientName = "KinesisVideoClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KinesisVideoClient.KinesisVideoClientConfiguration let serviceName = "Kinesis Video" diff --git a/Sources/Services/AWSKinesisVideoArchivedMedia/Sources/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.swift b/Sources/Services/AWSKinesisVideoArchivedMedia/Sources/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.swift index 044cd85263a..7802819840f 100644 --- a/Sources/Services/AWSKinesisVideoArchivedMedia/Sources/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.swift +++ b/Sources/Services/AWSKinesisVideoArchivedMedia/Sources/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KinesisVideoArchivedMediaClient: ClientRuntime.Client { public static let clientName = "KinesisVideoArchivedMediaClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KinesisVideoArchivedMediaClient.KinesisVideoArchivedMediaClientConfiguration let serviceName = "Kinesis Video Archived Media" diff --git a/Sources/Services/AWSKinesisVideoMedia/Sources/AWSKinesisVideoMedia/KinesisVideoMediaClient.swift b/Sources/Services/AWSKinesisVideoMedia/Sources/AWSKinesisVideoMedia/KinesisVideoMediaClient.swift index f00ff4292aa..f16d222c797 100644 --- a/Sources/Services/AWSKinesisVideoMedia/Sources/AWSKinesisVideoMedia/KinesisVideoMediaClient.swift +++ b/Sources/Services/AWSKinesisVideoMedia/Sources/AWSKinesisVideoMedia/KinesisVideoMediaClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KinesisVideoMediaClient: ClientRuntime.Client { public static let clientName = "KinesisVideoMediaClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KinesisVideoMediaClient.KinesisVideoMediaClientConfiguration let serviceName = "Kinesis Video Media" diff --git a/Sources/Services/AWSKinesisVideoSignaling/Sources/AWSKinesisVideoSignaling/KinesisVideoSignalingClient.swift b/Sources/Services/AWSKinesisVideoSignaling/Sources/AWSKinesisVideoSignaling/KinesisVideoSignalingClient.swift index 2c4ba837424..0bf06035699 100644 --- a/Sources/Services/AWSKinesisVideoSignaling/Sources/AWSKinesisVideoSignaling/KinesisVideoSignalingClient.swift +++ b/Sources/Services/AWSKinesisVideoSignaling/Sources/AWSKinesisVideoSignaling/KinesisVideoSignalingClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KinesisVideoSignalingClient: ClientRuntime.Client { public static let clientName = "KinesisVideoSignalingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KinesisVideoSignalingClient.KinesisVideoSignalingClientConfiguration let serviceName = "Kinesis Video Signaling" diff --git a/Sources/Services/AWSKinesisVideoWebRTCStorage/Sources/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClient.swift b/Sources/Services/AWSKinesisVideoWebRTCStorage/Sources/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClient.swift index 5fda02548c4..56310b5aee6 100644 --- a/Sources/Services/AWSKinesisVideoWebRTCStorage/Sources/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClient.swift +++ b/Sources/Services/AWSKinesisVideoWebRTCStorage/Sources/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class KinesisVideoWebRTCStorageClient: ClientRuntime.Client { public static let clientName = "KinesisVideoWebRTCStorageClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: KinesisVideoWebRTCStorageClient.KinesisVideoWebRTCStorageClientConfiguration let serviceName = "Kinesis Video WebRTC Storage" diff --git a/Sources/Services/AWSLakeFormation/Sources/AWSLakeFormation/LakeFormationClient.swift b/Sources/Services/AWSLakeFormation/Sources/AWSLakeFormation/LakeFormationClient.swift index 5dd48cf589a..0e941a106fb 100644 --- a/Sources/Services/AWSLakeFormation/Sources/AWSLakeFormation/LakeFormationClient.swift +++ b/Sources/Services/AWSLakeFormation/Sources/AWSLakeFormation/LakeFormationClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LakeFormationClient: ClientRuntime.Client { public static let clientName = "LakeFormationClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LakeFormationClient.LakeFormationClientConfiguration let serviceName = "LakeFormation" diff --git a/Sources/Services/AWSLambda/Sources/AWSLambda/LambdaClient.swift b/Sources/Services/AWSLambda/Sources/AWSLambda/LambdaClient.swift index b65a78ab610..78a5522e07f 100644 --- a/Sources/Services/AWSLambda/Sources/AWSLambda/LambdaClient.swift +++ b/Sources/Services/AWSLambda/Sources/AWSLambda/LambdaClient.swift @@ -69,7 +69,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LambdaClient: ClientRuntime.Client { public static let clientName = "LambdaClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LambdaClient.LambdaClientConfiguration let serviceName = "Lambda" @@ -522,12 +522,10 @@ extension LambdaClient { /// * [ Amazon DocumentDB](https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html) /// /// - /// The following error handling options are available only for stream sources (DynamoDB and Kinesis): + /// The following error handling options are available only for DynamoDB and Kinesis event sources: /// /// * BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry. /// - /// * DestinationConfig – Send discarded records to an Amazon SQS queue or Amazon SNS topic. - /// /// * MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires /// /// * MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. @@ -535,6 +533,11 @@ extension LambdaClient { /// * ParallelizationFactor – Process multiple batches from each shard concurrently. /// /// + /// For stream sources (DynamoDB, Kinesis, Amazon MSK, and self-managed Apache Kafka), the following option is also available: + /// + /// * DestinationConfig – Send discarded records to an Amazon SQS queue, Amazon SNS topic, or Amazon S3 bucket. + /// + /// /// For information about which configuration parameters apply to each event source, see the following topics. /// /// * [Amazon DynamoDB Streams](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-params) @@ -4059,7 +4062,7 @@ extension LambdaClient { /// Performs the `PutFunctionEventInvokeConfig` operation on the `AWSGirApiService` service. /// - /// Configures options for [asynchronous invocation](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html) on a function, version, or alias. If a configuration already exists for a function, version, or alias, this operation overwrites it. If you exclude any settings, they are removed. To set one option without affecting existing settings for other options, use [UpdateFunctionEventInvokeConfig]. By default, Lambda retries an asynchronous invocation twice if the function returns an error. It retains events in a queue for up to six hours. When an event fails all processing attempts or stays in the asynchronous invocation queue for too long, Lambda discards it. To retain discarded events, configure a dead-letter queue with [UpdateFunctionConfiguration]. To send an invocation record to a queue, topic, function, or event bus, specify a [destination](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations). You can configure separate destinations for successful invocations (on-success) and events that fail all processing attempts (on-failure). You can configure destinations in addition to or instead of a dead-letter queue. + /// Configures options for [asynchronous invocation](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html) on a function, version, or alias. If a configuration already exists for a function, version, or alias, this operation overwrites it. If you exclude any settings, they are removed. To set one option without affecting existing settings for other options, use [UpdateFunctionEventInvokeConfig]. By default, Lambda retries an asynchronous invocation twice if the function returns an error. It retains events in a queue for up to six hours. When an event fails all processing attempts or stays in the asynchronous invocation queue for too long, Lambda discards it. To retain discarded events, configure a dead-letter queue with [UpdateFunctionConfiguration]. To send an invocation record to a queue, topic, S3 bucket, function, or event bus, specify a [destination](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations). You can configure separate destinations for successful invocations (on-success) and events that fail all processing attempts (on-failure). You can configure destinations in addition to or instead of a dead-letter queue. S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. /// /// - Parameter PutFunctionEventInvokeConfigInput : [no documentation found] /// @@ -4814,12 +4817,10 @@ extension LambdaClient { /// * [ Amazon DocumentDB](https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html) /// /// - /// The following error handling options are available only for stream sources (DynamoDB and Kinesis): + /// The following error handling options are available only for DynamoDB and Kinesis event sources: /// /// * BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry. /// - /// * DestinationConfig – Send discarded records to an Amazon SQS queue or Amazon SNS topic. - /// /// * MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires /// /// * MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. @@ -4827,6 +4828,11 @@ extension LambdaClient { /// * ParallelizationFactor – Process multiple batches from each shard concurrently. /// /// + /// For stream sources (DynamoDB, Kinesis, Amazon MSK, and self-managed Apache Kafka), the following option is also available: + /// + /// * DestinationConfig – Send discarded records to an Amazon SQS queue, Amazon SNS topic, or Amazon S3 bucket. + /// + /// /// For information about which configuration parameters apply to each event source, see the following topics. /// /// * [Amazon DynamoDB Streams](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-params) diff --git a/Sources/Services/AWSLambda/Sources/AWSLambda/Models.swift b/Sources/Services/AWSLambda/Sources/AWSLambda/Models.swift index 4c50ad81452..70a55cacc81 100644 --- a/Sources/Services/AWSLambda/Sources/AWSLambda/Models.swift +++ b/Sources/Services/AWSLambda/Sources/AWSLambda/Models.swift @@ -918,7 +918,7 @@ extension LambdaClientTypes { /// A destination for events that failed processing. public struct OnFailure: Swift.Sendable { - /// The Amazon Resource Name (ARN) of the destination resource. To retain records of [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations), you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function, or Amazon EventBridge event bus as the destination. To retain records of failed invocations from [Kinesis and DynamoDB event sources](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#event-source-mapping-destinations), you can configure an Amazon SNS topic or Amazon SQS queue as the destination. To retain records of failed invocations from [self-managed Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination) or [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination), you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination. + /// The Amazon Resource Name (ARN) of the destination resource. To retain records of unsuccessful [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations), you can configure an Amazon SNS topic, Amazon SQS queue, Amazon S3 bucket, Lambda function, or Amazon EventBridge event bus as the destination. To retain records of failed invocations from [Kinesis](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html), [DynamoDB](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html), [self-managed Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination) or [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination), you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination. public var destination: Swift.String? public init( @@ -932,7 +932,7 @@ extension LambdaClientTypes { extension LambdaClientTypes { - /// A destination for events that were processed successfully. + /// A destination for events that were processed successfully. To retain records of successful [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations), you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function, or Amazon EventBridge event bus as the destination. public struct OnSuccess: Swift.Sendable { /// The Amazon Resource Name (ARN) of the destination resource. public var destination: Swift.String? @@ -1077,6 +1077,48 @@ extension LambdaClientTypes { } } +extension LambdaClientTypes { + + public enum EventSourceMappingMetric: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case eventcount + case sdkUnknown(Swift.String) + + public static var allCases: [EventSourceMappingMetric] { + return [ + .eventcount + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .eventcount: return "EventCount" + case let .sdkUnknown(s): return s + } + } + } +} + +extension LambdaClientTypes { + + /// The metrics configuration for your event source. Use this configuration object to define which metrics you want your event source mapping to produce. + public struct EventSourceMappingMetricsConfig: Swift.Sendable { + /// The metrics you want your event source mapping to produce. Include EventCount to receive event source mapping metrics related to the number of events processed by your event source mapping. For more information about these metrics, see [ Event source mapping metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics). + public var metrics: [LambdaClientTypes.EventSourceMappingMetric]? + + public init( + metrics: [LambdaClientTypes.EventSourceMappingMetric]? = nil + ) + { + self.metrics = metrics + } + } +} + extension LambdaClientTypes { /// (Amazon SQS only) The scaling configuration for the event source. To remove the configuration, pass an empty value. @@ -1335,6 +1377,8 @@ public struct CreateEventSourceMappingInput: Swift.Sendable { public var maximumRecordAgeInSeconds: Swift.Int? /// (Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. public var maximumRetryAttempts: Swift.Int? + /// The metrics configuration for your event source. For more information, see [Event source mapping metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics). + public var metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? /// (Kinesis and DynamoDB Streams only) The number of batches to process from each shard concurrently. public var parallelizationFactor: Swift.Int? /// (MQ) The name of the Amazon MQ broker destination queue to consume. @@ -1373,6 +1417,7 @@ public struct CreateEventSourceMappingInput: Swift.Sendable { maximumBatchingWindowInSeconds: Swift.Int? = nil, maximumRecordAgeInSeconds: Swift.Int? = nil, maximumRetryAttempts: Swift.Int? = nil, + metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, scalingConfig: LambdaClientTypes.ScalingConfig? = nil, @@ -1400,6 +1445,7 @@ public struct CreateEventSourceMappingInput: Swift.Sendable { self.maximumBatchingWindowInSeconds = maximumBatchingWindowInSeconds self.maximumRecordAgeInSeconds = maximumRecordAgeInSeconds self.maximumRetryAttempts = maximumRetryAttempts + self.metricsConfig = metricsConfig self.parallelizationFactor = parallelizationFactor self.queues = queues self.scalingConfig = scalingConfig @@ -1470,6 +1516,8 @@ public struct CreateEventSourceMappingOutput: Swift.Sendable { public var maximumRecordAgeInSeconds: Swift.Int? /// (Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source. public var maximumRetryAttempts: Swift.Int? + /// The metrics configuration for your event source. For more information, see [Event source mapping metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics). + public var metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? /// (Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1. public var parallelizationFactor: Swift.Int? /// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume. @@ -1515,6 +1563,7 @@ public struct CreateEventSourceMappingOutput: Swift.Sendable { maximumBatchingWindowInSeconds: Swift.Int? = nil, maximumRecordAgeInSeconds: Swift.Int? = nil, maximumRetryAttempts: Swift.Int? = nil, + metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, scalingConfig: LambdaClientTypes.ScalingConfig? = nil, @@ -1547,6 +1596,7 @@ public struct CreateEventSourceMappingOutput: Swift.Sendable { self.maximumBatchingWindowInSeconds = maximumBatchingWindowInSeconds self.maximumRecordAgeInSeconds = maximumRecordAgeInSeconds self.maximumRetryAttempts = maximumRetryAttempts + self.metricsConfig = metricsConfig self.parallelizationFactor = parallelizationFactor self.queues = queues self.scalingConfig = scalingConfig @@ -3257,6 +3307,8 @@ public struct DeleteEventSourceMappingOutput: Swift.Sendable { public var maximumRecordAgeInSeconds: Swift.Int? /// (Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source. public var maximumRetryAttempts: Swift.Int? + /// The metrics configuration for your event source. For more information, see [Event source mapping metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics). + public var metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? /// (Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1. public var parallelizationFactor: Swift.Int? /// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume. @@ -3302,6 +3354,7 @@ public struct DeleteEventSourceMappingOutput: Swift.Sendable { maximumBatchingWindowInSeconds: Swift.Int? = nil, maximumRecordAgeInSeconds: Swift.Int? = nil, maximumRetryAttempts: Swift.Int? = nil, + metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, scalingConfig: LambdaClientTypes.ScalingConfig? = nil, @@ -3334,6 +3387,7 @@ public struct DeleteEventSourceMappingOutput: Swift.Sendable { self.maximumBatchingWindowInSeconds = maximumBatchingWindowInSeconds self.maximumRecordAgeInSeconds = maximumRecordAgeInSeconds self.maximumRetryAttempts = maximumRetryAttempts + self.metricsConfig = metricsConfig self.parallelizationFactor = parallelizationFactor self.queues = queues self.scalingConfig = scalingConfig @@ -3673,6 +3727,8 @@ public struct GetEventSourceMappingOutput: Swift.Sendable { public var maximumRecordAgeInSeconds: Swift.Int? /// (Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source. public var maximumRetryAttempts: Swift.Int? + /// The metrics configuration for your event source. For more information, see [Event source mapping metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics). + public var metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? /// (Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1. public var parallelizationFactor: Swift.Int? /// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume. @@ -3718,6 +3774,7 @@ public struct GetEventSourceMappingOutput: Swift.Sendable { maximumBatchingWindowInSeconds: Swift.Int? = nil, maximumRecordAgeInSeconds: Swift.Int? = nil, maximumRetryAttempts: Swift.Int? = nil, + metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, scalingConfig: LambdaClientTypes.ScalingConfig? = nil, @@ -3750,6 +3807,7 @@ public struct GetEventSourceMappingOutput: Swift.Sendable { self.maximumBatchingWindowInSeconds = maximumBatchingWindowInSeconds self.maximumRecordAgeInSeconds = maximumRecordAgeInSeconds self.maximumRetryAttempts = maximumRetryAttempts + self.metricsConfig = metricsConfig self.parallelizationFactor = parallelizationFactor self.queues = queues self.scalingConfig = scalingConfig @@ -4362,9 +4420,14 @@ public struct GetFunctionEventInvokeConfigOutput: Swift.Sendable { /// /// * Queue - The ARN of a standard SQS queue. /// + /// * Bucket - The ARN of an Amazon S3 bucket. + /// /// * Topic - The ARN of a standard SNS topic. /// /// * Event Bus - The ARN of an Amazon EventBridge event bus. + /// + /// + /// S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. public var destinationConfig: LambdaClientTypes.DestinationConfig? /// The Amazon Resource Name (ARN) of the function. public var functionArn: Swift.String? @@ -6140,6 +6203,8 @@ extension LambdaClientTypes { public var maximumRecordAgeInSeconds: Swift.Int? /// (Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source. public var maximumRetryAttempts: Swift.Int? + /// The metrics configuration for your event source. For more information, see [Event source mapping metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics). + public var metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? /// (Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1. public var parallelizationFactor: Swift.Int? /// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume. @@ -6185,6 +6250,7 @@ extension LambdaClientTypes { maximumBatchingWindowInSeconds: Swift.Int? = nil, maximumRecordAgeInSeconds: Swift.Int? = nil, maximumRetryAttempts: Swift.Int? = nil, + metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, scalingConfig: LambdaClientTypes.ScalingConfig? = nil, @@ -6217,6 +6283,7 @@ extension LambdaClientTypes { self.maximumBatchingWindowInSeconds = maximumBatchingWindowInSeconds self.maximumRecordAgeInSeconds = maximumRecordAgeInSeconds self.maximumRetryAttempts = maximumRetryAttempts + self.metricsConfig = metricsConfig self.parallelizationFactor = parallelizationFactor self.queues = queues self.scalingConfig = scalingConfig @@ -6289,9 +6356,14 @@ extension LambdaClientTypes { /// /// * Queue - The ARN of a standard SQS queue. /// + /// * Bucket - The ARN of an Amazon S3 bucket. + /// /// * Topic - The ARN of a standard SNS topic. /// /// * Event Bus - The ARN of an Amazon EventBridge event bus. + /// + /// + /// S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. public var destinationConfig: LambdaClientTypes.DestinationConfig? /// The Amazon Resource Name (ARN) of the function. public var functionArn: Swift.String? @@ -7256,9 +7328,14 @@ public struct PutFunctionEventInvokeConfigInput: Swift.Sendable { /// /// * Queue - The ARN of a standard SQS queue. /// + /// * Bucket - The ARN of an Amazon S3 bucket. + /// /// * Topic - The ARN of a standard SNS topic. /// /// * Event Bus - The ARN of an Amazon EventBridge event bus. + /// + /// + /// S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. public var destinationConfig: LambdaClientTypes.DestinationConfig? /// The name or ARN of the Lambda function, version, or alias. Name formats /// @@ -7302,9 +7379,14 @@ public struct PutFunctionEventInvokeConfigOutput: Swift.Sendable { /// /// * Queue - The ARN of a standard SQS queue. /// + /// * Bucket - The ARN of an Amazon S3 bucket. + /// /// * Topic - The ARN of a standard SNS topic. /// /// * Event Bus - The ARN of an Amazon EventBridge event bus. + /// + /// + /// S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. public var destinationConfig: LambdaClientTypes.DestinationConfig? /// The Amazon Resource Name (ARN) of the function. public var functionArn: Swift.String? @@ -7759,6 +7841,8 @@ public struct UpdateEventSourceMappingInput: Swift.Sendable { public var maximumRecordAgeInSeconds: Swift.Int? /// (Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. public var maximumRetryAttempts: Swift.Int? + /// The metrics configuration for your event source. For more information, see [Event source mapping metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics). + public var metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? /// (Kinesis and DynamoDB Streams only) The number of batches to process from each shard concurrently. public var parallelizationFactor: Swift.Int? /// (Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency). @@ -7784,6 +7868,7 @@ public struct UpdateEventSourceMappingInput: Swift.Sendable { maximumBatchingWindowInSeconds: Swift.Int? = nil, maximumRecordAgeInSeconds: Swift.Int? = nil, maximumRetryAttempts: Swift.Int? = nil, + metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? = nil, parallelizationFactor: Swift.Int? = nil, scalingConfig: LambdaClientTypes.ScalingConfig? = nil, sourceAccessConfigurations: [LambdaClientTypes.SourceAccessConfiguration]? = nil, @@ -7803,6 +7888,7 @@ public struct UpdateEventSourceMappingInput: Swift.Sendable { self.maximumBatchingWindowInSeconds = maximumBatchingWindowInSeconds self.maximumRecordAgeInSeconds = maximumRecordAgeInSeconds self.maximumRetryAttempts = maximumRetryAttempts + self.metricsConfig = metricsConfig self.parallelizationFactor = parallelizationFactor self.scalingConfig = scalingConfig self.sourceAccessConfigurations = sourceAccessConfigurations @@ -7847,6 +7933,8 @@ public struct UpdateEventSourceMappingOutput: Swift.Sendable { public var maximumRecordAgeInSeconds: Swift.Int? /// (Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source. public var maximumRetryAttempts: Swift.Int? + /// The metrics configuration for your event source. For more information, see [Event source mapping metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics). + public var metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? /// (Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1. public var parallelizationFactor: Swift.Int? /// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume. @@ -7892,6 +7980,7 @@ public struct UpdateEventSourceMappingOutput: Swift.Sendable { maximumBatchingWindowInSeconds: Swift.Int? = nil, maximumRecordAgeInSeconds: Swift.Int? = nil, maximumRetryAttempts: Swift.Int? = nil, + metricsConfig: LambdaClientTypes.EventSourceMappingMetricsConfig? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, scalingConfig: LambdaClientTypes.ScalingConfig? = nil, @@ -7924,6 +8013,7 @@ public struct UpdateEventSourceMappingOutput: Swift.Sendable { self.maximumBatchingWindowInSeconds = maximumBatchingWindowInSeconds self.maximumRecordAgeInSeconds = maximumRecordAgeInSeconds self.maximumRetryAttempts = maximumRetryAttempts + self.metricsConfig = metricsConfig self.parallelizationFactor = parallelizationFactor self.queues = queues self.scalingConfig = scalingConfig @@ -8447,9 +8537,14 @@ public struct UpdateFunctionEventInvokeConfigInput: Swift.Sendable { /// /// * Queue - The ARN of a standard SQS queue. /// + /// * Bucket - The ARN of an Amazon S3 bucket. + /// /// * Topic - The ARN of a standard SNS topic. /// /// * Event Bus - The ARN of an Amazon EventBridge event bus. + /// + /// + /// S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. public var destinationConfig: LambdaClientTypes.DestinationConfig? /// The name or ARN of the Lambda function, version, or alias. Name formats /// @@ -8493,9 +8588,14 @@ public struct UpdateFunctionEventInvokeConfigOutput: Swift.Sendable { /// /// * Queue - The ARN of a standard SQS queue. /// + /// * Bucket - The ARN of an Amazon S3 bucket. + /// /// * Topic - The ARN of a standard SNS topic. /// /// * Event Bus - The ARN of an Amazon EventBridge event bus. + /// + /// + /// S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. public var destinationConfig: LambdaClientTypes.DestinationConfig? /// The Amazon Resource Name (ARN) of the function. public var functionArn: Swift.String? @@ -9923,6 +10023,7 @@ extension CreateEventSourceMappingInput { try writer["MaximumBatchingWindowInSeconds"].write(value.maximumBatchingWindowInSeconds) try writer["MaximumRecordAgeInSeconds"].write(value.maximumRecordAgeInSeconds) try writer["MaximumRetryAttempts"].write(value.maximumRetryAttempts) + try writer["MetricsConfig"].write(value.metricsConfig, with: LambdaClientTypes.EventSourceMappingMetricsConfig.write(value:to:)) try writer["ParallelizationFactor"].write(value.parallelizationFactor) try writer["Queues"].writeList(value.queues, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["ScalingConfig"].write(value.scalingConfig, with: LambdaClientTypes.ScalingConfig.write(value:to:)) @@ -10120,6 +10221,7 @@ extension UpdateEventSourceMappingInput { try writer["MaximumBatchingWindowInSeconds"].write(value.maximumBatchingWindowInSeconds) try writer["MaximumRecordAgeInSeconds"].write(value.maximumRecordAgeInSeconds) try writer["MaximumRetryAttempts"].write(value.maximumRetryAttempts) + try writer["MetricsConfig"].write(value.metricsConfig, with: LambdaClientTypes.EventSourceMappingMetricsConfig.write(value:to:)) try writer["ParallelizationFactor"].write(value.parallelizationFactor) try writer["ScalingConfig"].write(value.scalingConfig, with: LambdaClientTypes.ScalingConfig.write(value:to:)) try writer["SourceAccessConfigurations"].writeList(value.sourceAccessConfigurations, memberWritingClosure: LambdaClientTypes.SourceAccessConfiguration.write(value:to:), memberNodeInfo: "member", isFlattened: false) @@ -10267,6 +10369,7 @@ extension CreateEventSourceMappingOutput { value.maximumBatchingWindowInSeconds = try reader["MaximumBatchingWindowInSeconds"].readIfPresent() value.maximumRecordAgeInSeconds = try reader["MaximumRecordAgeInSeconds"].readIfPresent() value.maximumRetryAttempts = try reader["MaximumRetryAttempts"].readIfPresent() + value.metricsConfig = try reader["MetricsConfig"].readIfPresent(with: LambdaClientTypes.EventSourceMappingMetricsConfig.read(from:)) value.parallelizationFactor = try reader["ParallelizationFactor"].readIfPresent() value.queues = try reader["Queues"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) value.scalingConfig = try reader["ScalingConfig"].readIfPresent(with: LambdaClientTypes.ScalingConfig.read(from:)) @@ -10386,6 +10489,7 @@ extension DeleteEventSourceMappingOutput { value.maximumBatchingWindowInSeconds = try reader["MaximumBatchingWindowInSeconds"].readIfPresent() value.maximumRecordAgeInSeconds = try reader["MaximumRecordAgeInSeconds"].readIfPresent() value.maximumRetryAttempts = try reader["MaximumRetryAttempts"].readIfPresent() + value.metricsConfig = try reader["MetricsConfig"].readIfPresent(with: LambdaClientTypes.EventSourceMappingMetricsConfig.read(from:)) value.parallelizationFactor = try reader["ParallelizationFactor"].readIfPresent() value.queues = try reader["Queues"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) value.scalingConfig = try reader["ScalingConfig"].readIfPresent(with: LambdaClientTypes.ScalingConfig.read(from:)) @@ -10518,6 +10622,7 @@ extension GetEventSourceMappingOutput { value.maximumBatchingWindowInSeconds = try reader["MaximumBatchingWindowInSeconds"].readIfPresent() value.maximumRecordAgeInSeconds = try reader["MaximumRecordAgeInSeconds"].readIfPresent() value.maximumRetryAttempts = try reader["MaximumRetryAttempts"].readIfPresent() + value.metricsConfig = try reader["MetricsConfig"].readIfPresent(with: LambdaClientTypes.EventSourceMappingMetricsConfig.read(from:)) value.parallelizationFactor = try reader["ParallelizationFactor"].readIfPresent() value.queues = try reader["Queues"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) value.scalingConfig = try reader["ScalingConfig"].readIfPresent(with: LambdaClientTypes.ScalingConfig.read(from:)) @@ -11208,6 +11313,7 @@ extension UpdateEventSourceMappingOutput { value.maximumBatchingWindowInSeconds = try reader["MaximumBatchingWindowInSeconds"].readIfPresent() value.maximumRecordAgeInSeconds = try reader["MaximumRecordAgeInSeconds"].readIfPresent() value.maximumRetryAttempts = try reader["MaximumRetryAttempts"].readIfPresent() + value.metricsConfig = try reader["MetricsConfig"].readIfPresent(with: LambdaClientTypes.EventSourceMappingMetricsConfig.read(from:)) value.parallelizationFactor = try reader["ParallelizationFactor"].readIfPresent() value.queues = try reader["Queues"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) value.scalingConfig = try reader["ScalingConfig"].readIfPresent(with: LambdaClientTypes.ScalingConfig.read(from:)) @@ -13422,6 +13528,21 @@ extension LambdaClientTypes.FilterCriteriaError { } } +extension LambdaClientTypes.EventSourceMappingMetricsConfig { + + static func write(value: LambdaClientTypes.EventSourceMappingMetricsConfig?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Metrics"].writeList(value.metrics, memberWritingClosure: SmithyReadWrite.WritingClosureBox().write(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> LambdaClientTypes.EventSourceMappingMetricsConfig { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = LambdaClientTypes.EventSourceMappingMetricsConfig() + value.metrics = try reader["Metrics"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension LambdaClientTypes.VpcConfigResponse { static func read(from reader: SmithyJSON.Reader) throws -> LambdaClientTypes.VpcConfigResponse { @@ -13838,6 +13959,7 @@ extension LambdaClientTypes.EventSourceMappingConfiguration { value.kmsKeyArn = try reader["KMSKeyArn"].readIfPresent() value.filterCriteriaError = try reader["FilterCriteriaError"].readIfPresent(with: LambdaClientTypes.FilterCriteriaError.read(from:)) value.eventSourceMappingArn = try reader["EventSourceMappingArn"].readIfPresent() + value.metricsConfig = try reader["MetricsConfig"].readIfPresent(with: LambdaClientTypes.EventSourceMappingMetricsConfig.read(from:)) return value } } diff --git a/Sources/Services/AWSLaunchWizard/Sources/AWSLaunchWizard/LaunchWizardClient.swift b/Sources/Services/AWSLaunchWizard/Sources/AWSLaunchWizard/LaunchWizardClient.swift index 3487f65e94b..fce1801ee61 100644 --- a/Sources/Services/AWSLaunchWizard/Sources/AWSLaunchWizard/LaunchWizardClient.swift +++ b/Sources/Services/AWSLaunchWizard/Sources/AWSLaunchWizard/LaunchWizardClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LaunchWizardClient: ClientRuntime.Client { public static let clientName = "LaunchWizardClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LaunchWizardClient.LaunchWizardClientConfiguration let serviceName = "Launch Wizard" diff --git a/Sources/Services/AWSLexModelBuildingService/Sources/AWSLexModelBuildingService/LexModelBuildingClient.swift b/Sources/Services/AWSLexModelBuildingService/Sources/AWSLexModelBuildingService/LexModelBuildingClient.swift index 007efeda254..f782ac2c330 100644 --- a/Sources/Services/AWSLexModelBuildingService/Sources/AWSLexModelBuildingService/LexModelBuildingClient.swift +++ b/Sources/Services/AWSLexModelBuildingService/Sources/AWSLexModelBuildingService/LexModelBuildingClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LexModelBuildingClient: ClientRuntime.Client { public static let clientName = "LexModelBuildingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LexModelBuildingClient.LexModelBuildingClientConfiguration let serviceName = "Lex Model Building" diff --git a/Sources/Services/AWSLexModelsV2/Sources/AWSLexModelsV2/LexModelsV2Client.swift b/Sources/Services/AWSLexModelsV2/Sources/AWSLexModelsV2/LexModelsV2Client.swift index 3995fa78560..fb98891d493 100644 --- a/Sources/Services/AWSLexModelsV2/Sources/AWSLexModelsV2/LexModelsV2Client.swift +++ b/Sources/Services/AWSLexModelsV2/Sources/AWSLexModelsV2/LexModelsV2Client.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LexModelsV2Client: ClientRuntime.Client { public static let clientName = "LexModelsV2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LexModelsV2Client.LexModelsV2ClientConfiguration let serviceName = "Lex Models V2" diff --git a/Sources/Services/AWSLexRuntimeService/Sources/AWSLexRuntimeService/LexRuntimeClient.swift b/Sources/Services/AWSLexRuntimeService/Sources/AWSLexRuntimeService/LexRuntimeClient.swift index c5d543b1df2..4ff220c0730 100644 --- a/Sources/Services/AWSLexRuntimeService/Sources/AWSLexRuntimeService/LexRuntimeClient.swift +++ b/Sources/Services/AWSLexRuntimeService/Sources/AWSLexRuntimeService/LexRuntimeClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LexRuntimeClient: ClientRuntime.Client { public static let clientName = "LexRuntimeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LexRuntimeClient.LexRuntimeClientConfiguration let serviceName = "Lex Runtime" diff --git a/Sources/Services/AWSLexRuntimeV2/Sources/AWSLexRuntimeV2/LexRuntimeV2Client.swift b/Sources/Services/AWSLexRuntimeV2/Sources/AWSLexRuntimeV2/LexRuntimeV2Client.swift index 2df8e4e0f76..5c0dafcfc22 100644 --- a/Sources/Services/AWSLexRuntimeV2/Sources/AWSLexRuntimeV2/LexRuntimeV2Client.swift +++ b/Sources/Services/AWSLexRuntimeV2/Sources/AWSLexRuntimeV2/LexRuntimeV2Client.swift @@ -68,7 +68,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LexRuntimeV2Client: ClientRuntime.Client { public static let clientName = "LexRuntimeV2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LexRuntimeV2Client.LexRuntimeV2ClientConfiguration let serviceName = "Lex Runtime V2" diff --git a/Sources/Services/AWSLicenseManager/Sources/AWSLicenseManager/LicenseManagerClient.swift b/Sources/Services/AWSLicenseManager/Sources/AWSLicenseManager/LicenseManagerClient.swift index b263c9c75e0..a2de2179236 100644 --- a/Sources/Services/AWSLicenseManager/Sources/AWSLicenseManager/LicenseManagerClient.swift +++ b/Sources/Services/AWSLicenseManager/Sources/AWSLicenseManager/LicenseManagerClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LicenseManagerClient: ClientRuntime.Client { public static let clientName = "LicenseManagerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LicenseManagerClient.LicenseManagerClientConfiguration let serviceName = "License Manager" diff --git a/Sources/Services/AWSLicenseManagerLinuxSubscriptions/Sources/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClient.swift b/Sources/Services/AWSLicenseManagerLinuxSubscriptions/Sources/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClient.swift index fbed7ab03e3..e298c92a04f 100644 --- a/Sources/Services/AWSLicenseManagerLinuxSubscriptions/Sources/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClient.swift +++ b/Sources/Services/AWSLicenseManagerLinuxSubscriptions/Sources/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LicenseManagerLinuxSubscriptionsClient: ClientRuntime.Client { public static let clientName = "LicenseManagerLinuxSubscriptionsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LicenseManagerLinuxSubscriptionsClient.LicenseManagerLinuxSubscriptionsClientConfiguration let serviceName = "License Manager Linux Subscriptions" diff --git a/Sources/Services/AWSLicenseManagerUserSubscriptions/Sources/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClient.swift b/Sources/Services/AWSLicenseManagerUserSubscriptions/Sources/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClient.swift index e36cd7f672c..ade3120c228 100644 --- a/Sources/Services/AWSLicenseManagerUserSubscriptions/Sources/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClient.swift +++ b/Sources/Services/AWSLicenseManagerUserSubscriptions/Sources/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LicenseManagerUserSubscriptionsClient: ClientRuntime.Client { public static let clientName = "LicenseManagerUserSubscriptionsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LicenseManagerUserSubscriptionsClient.LicenseManagerUserSubscriptionsClientConfiguration let serviceName = "License Manager User Subscriptions" diff --git a/Sources/Services/AWSLightsail/Sources/AWSLightsail/LightsailClient.swift b/Sources/Services/AWSLightsail/Sources/AWSLightsail/LightsailClient.swift index 856ebe72c5d..194977899ac 100644 --- a/Sources/Services/AWSLightsail/Sources/AWSLightsail/LightsailClient.swift +++ b/Sources/Services/AWSLightsail/Sources/AWSLightsail/LightsailClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LightsailClient: ClientRuntime.Client { public static let clientName = "LightsailClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LightsailClient.LightsailClientConfiguration let serviceName = "Lightsail" diff --git a/Sources/Services/AWSLocation/Sources/AWSLocation/LocationClient.swift b/Sources/Services/AWSLocation/Sources/AWSLocation/LocationClient.swift index da379342221..9b810992546 100644 --- a/Sources/Services/AWSLocation/Sources/AWSLocation/LocationClient.swift +++ b/Sources/Services/AWSLocation/Sources/AWSLocation/LocationClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LocationClient: ClientRuntime.Client { public static let clientName = "LocationClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LocationClient.LocationClientConfiguration let serviceName = "Location" diff --git a/Sources/Services/AWSLookoutEquipment/Sources/AWSLookoutEquipment/LookoutEquipmentClient.swift b/Sources/Services/AWSLookoutEquipment/Sources/AWSLookoutEquipment/LookoutEquipmentClient.swift index 892ffc3d576..ba3088abaa6 100644 --- a/Sources/Services/AWSLookoutEquipment/Sources/AWSLookoutEquipment/LookoutEquipmentClient.swift +++ b/Sources/Services/AWSLookoutEquipment/Sources/AWSLookoutEquipment/LookoutEquipmentClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LookoutEquipmentClient: ClientRuntime.Client { public static let clientName = "LookoutEquipmentClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LookoutEquipmentClient.LookoutEquipmentClientConfiguration let serviceName = "LookoutEquipment" diff --git a/Sources/Services/AWSLookoutMetrics/Sources/AWSLookoutMetrics/LookoutMetricsClient.swift b/Sources/Services/AWSLookoutMetrics/Sources/AWSLookoutMetrics/LookoutMetricsClient.swift index 59a6a49f37b..06644d5a428 100644 --- a/Sources/Services/AWSLookoutMetrics/Sources/AWSLookoutMetrics/LookoutMetricsClient.swift +++ b/Sources/Services/AWSLookoutMetrics/Sources/AWSLookoutMetrics/LookoutMetricsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LookoutMetricsClient: ClientRuntime.Client { public static let clientName = "LookoutMetricsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LookoutMetricsClient.LookoutMetricsClientConfiguration let serviceName = "LookoutMetrics" diff --git a/Sources/Services/AWSLookoutVision/Sources/AWSLookoutVision/LookoutVisionClient.swift b/Sources/Services/AWSLookoutVision/Sources/AWSLookoutVision/LookoutVisionClient.swift index 75c5f658f2a..b7584c85916 100644 --- a/Sources/Services/AWSLookoutVision/Sources/AWSLookoutVision/LookoutVisionClient.swift +++ b/Sources/Services/AWSLookoutVision/Sources/AWSLookoutVision/LookoutVisionClient.swift @@ -69,7 +69,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class LookoutVisionClient: ClientRuntime.Client { public static let clientName = "LookoutVisionClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: LookoutVisionClient.LookoutVisionClientConfiguration let serviceName = "LookoutVision" diff --git a/Sources/Services/AWSM2/Sources/AWSM2/M2Client.swift b/Sources/Services/AWSM2/Sources/AWSM2/M2Client.swift index 5efe0e30eb6..671b6a32dd3 100644 --- a/Sources/Services/AWSM2/Sources/AWSM2/M2Client.swift +++ b/Sources/Services/AWSM2/Sources/AWSM2/M2Client.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class M2Client: ClientRuntime.Client { public static let clientName = "M2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: M2Client.M2ClientConfiguration let serviceName = "m2" diff --git a/Sources/Services/AWSMTurk/Sources/AWSMTurk/MTurkClient.swift b/Sources/Services/AWSMTurk/Sources/AWSMTurk/MTurkClient.swift index 3ca79d3ed05..7c20cc6c5d4 100644 --- a/Sources/Services/AWSMTurk/Sources/AWSMTurk/MTurkClient.swift +++ b/Sources/Services/AWSMTurk/Sources/AWSMTurk/MTurkClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MTurkClient: ClientRuntime.Client { public static let clientName = "MTurkClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MTurkClient.MTurkClientConfiguration let serviceName = "MTurk" diff --git a/Sources/Services/AWSMWAA/Sources/AWSMWAA/MWAAClient.swift b/Sources/Services/AWSMWAA/Sources/AWSMWAA/MWAAClient.swift index 48144b4edaa..96a5a4229d6 100644 --- a/Sources/Services/AWSMWAA/Sources/AWSMWAA/MWAAClient.swift +++ b/Sources/Services/AWSMWAA/Sources/AWSMWAA/MWAAClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MWAAClient: ClientRuntime.Client { public static let clientName = "MWAAClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MWAAClient.MWAAClientConfiguration let serviceName = "MWAA" diff --git a/Sources/Services/AWSMachineLearning/Sources/AWSMachineLearning/MachineLearningClient.swift b/Sources/Services/AWSMachineLearning/Sources/AWSMachineLearning/MachineLearningClient.swift index da3a25a3514..fc45f418f6a 100644 --- a/Sources/Services/AWSMachineLearning/Sources/AWSMachineLearning/MachineLearningClient.swift +++ b/Sources/Services/AWSMachineLearning/Sources/AWSMachineLearning/MachineLearningClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MachineLearningClient: ClientRuntime.Client { public static let clientName = "MachineLearningClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MachineLearningClient.MachineLearningClientConfiguration let serviceName = "Machine Learning" diff --git a/Sources/Services/AWSMacie2/Sources/AWSMacie2/Macie2Client.swift b/Sources/Services/AWSMacie2/Sources/AWSMacie2/Macie2Client.swift index 6636e73ffb2..c9c691ee539 100644 --- a/Sources/Services/AWSMacie2/Sources/AWSMacie2/Macie2Client.swift +++ b/Sources/Services/AWSMacie2/Sources/AWSMacie2/Macie2Client.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class Macie2Client: ClientRuntime.Client { public static let clientName = "Macie2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: Macie2Client.Macie2ClientConfiguration let serviceName = "Macie2" diff --git a/Sources/Services/AWSMailManager/Sources/AWSMailManager/MailManagerClient.swift b/Sources/Services/AWSMailManager/Sources/AWSMailManager/MailManagerClient.swift index 5baac40dff2..0fc404d7474 100644 --- a/Sources/Services/AWSMailManager/Sources/AWSMailManager/MailManagerClient.swift +++ b/Sources/Services/AWSMailManager/Sources/AWSMailManager/MailManagerClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MailManagerClient: ClientRuntime.Client { public static let clientName = "MailManagerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MailManagerClient.MailManagerClientConfiguration let serviceName = "MailManager" diff --git a/Sources/Services/AWSManagedBlockchain/Sources/AWSManagedBlockchain/ManagedBlockchainClient.swift b/Sources/Services/AWSManagedBlockchain/Sources/AWSManagedBlockchain/ManagedBlockchainClient.swift index bb529fe60f8..d9af21767ef 100644 --- a/Sources/Services/AWSManagedBlockchain/Sources/AWSManagedBlockchain/ManagedBlockchainClient.swift +++ b/Sources/Services/AWSManagedBlockchain/Sources/AWSManagedBlockchain/ManagedBlockchainClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ManagedBlockchainClient: ClientRuntime.Client { public static let clientName = "ManagedBlockchainClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ManagedBlockchainClient.ManagedBlockchainClientConfiguration let serviceName = "ManagedBlockchain" diff --git a/Sources/Services/AWSManagedBlockchainQuery/Sources/AWSManagedBlockchainQuery/ManagedBlockchainQueryClient.swift b/Sources/Services/AWSManagedBlockchainQuery/Sources/AWSManagedBlockchainQuery/ManagedBlockchainQueryClient.swift index 3abda825dc9..1db80f83ce7 100644 --- a/Sources/Services/AWSManagedBlockchainQuery/Sources/AWSManagedBlockchainQuery/ManagedBlockchainQueryClient.swift +++ b/Sources/Services/AWSManagedBlockchainQuery/Sources/AWSManagedBlockchainQuery/ManagedBlockchainQueryClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ManagedBlockchainQueryClient: ClientRuntime.Client { public static let clientName = "ManagedBlockchainQueryClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ManagedBlockchainQueryClient.ManagedBlockchainQueryClientConfiguration let serviceName = "ManagedBlockchain Query" diff --git a/Sources/Services/AWSMarketplaceAgreement/Sources/AWSMarketplaceAgreement/MarketplaceAgreementClient.swift b/Sources/Services/AWSMarketplaceAgreement/Sources/AWSMarketplaceAgreement/MarketplaceAgreementClient.swift index 0376065eb3e..82bd1e798e8 100644 --- a/Sources/Services/AWSMarketplaceAgreement/Sources/AWSMarketplaceAgreement/MarketplaceAgreementClient.swift +++ b/Sources/Services/AWSMarketplaceAgreement/Sources/AWSMarketplaceAgreement/MarketplaceAgreementClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MarketplaceAgreementClient: ClientRuntime.Client { public static let clientName = "MarketplaceAgreementClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MarketplaceAgreementClient.MarketplaceAgreementClientConfiguration let serviceName = "Marketplace Agreement" diff --git a/Sources/Services/AWSMarketplaceCatalog/Sources/AWSMarketplaceCatalog/MarketplaceCatalogClient.swift b/Sources/Services/AWSMarketplaceCatalog/Sources/AWSMarketplaceCatalog/MarketplaceCatalogClient.swift index 58eb9e9b5b1..47f53709825 100644 --- a/Sources/Services/AWSMarketplaceCatalog/Sources/AWSMarketplaceCatalog/MarketplaceCatalogClient.swift +++ b/Sources/Services/AWSMarketplaceCatalog/Sources/AWSMarketplaceCatalog/MarketplaceCatalogClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MarketplaceCatalogClient: ClientRuntime.Client { public static let clientName = "MarketplaceCatalogClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MarketplaceCatalogClient.MarketplaceCatalogClientConfiguration let serviceName = "Marketplace Catalog" diff --git a/Sources/Services/AWSMarketplaceCommerceAnalytics/Sources/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.swift b/Sources/Services/AWSMarketplaceCommerceAnalytics/Sources/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.swift index 46d4175e337..cf85a85992b 100644 --- a/Sources/Services/AWSMarketplaceCommerceAnalytics/Sources/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.swift +++ b/Sources/Services/AWSMarketplaceCommerceAnalytics/Sources/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MarketplaceCommerceAnalyticsClient: ClientRuntime.Client { public static let clientName = "MarketplaceCommerceAnalyticsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MarketplaceCommerceAnalyticsClient.MarketplaceCommerceAnalyticsClientConfiguration let serviceName = "Marketplace Commerce Analytics" diff --git a/Sources/Services/AWSMarketplaceDeployment/Sources/AWSMarketplaceDeployment/MarketplaceDeploymentClient.swift b/Sources/Services/AWSMarketplaceDeployment/Sources/AWSMarketplaceDeployment/MarketplaceDeploymentClient.swift index 4d2ee5d692f..f7b23f6ca74 100644 --- a/Sources/Services/AWSMarketplaceDeployment/Sources/AWSMarketplaceDeployment/MarketplaceDeploymentClient.swift +++ b/Sources/Services/AWSMarketplaceDeployment/Sources/AWSMarketplaceDeployment/MarketplaceDeploymentClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MarketplaceDeploymentClient: ClientRuntime.Client { public static let clientName = "MarketplaceDeploymentClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MarketplaceDeploymentClient.MarketplaceDeploymentClientConfiguration let serviceName = "Marketplace Deployment" diff --git a/Sources/Services/AWSMarketplaceEntitlementService/Sources/AWSMarketplaceEntitlementService/MarketplaceEntitlementClient.swift b/Sources/Services/AWSMarketplaceEntitlementService/Sources/AWSMarketplaceEntitlementService/MarketplaceEntitlementClient.swift index a7836080aff..d10450e2e60 100644 --- a/Sources/Services/AWSMarketplaceEntitlementService/Sources/AWSMarketplaceEntitlementService/MarketplaceEntitlementClient.swift +++ b/Sources/Services/AWSMarketplaceEntitlementService/Sources/AWSMarketplaceEntitlementService/MarketplaceEntitlementClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MarketplaceEntitlementClient: ClientRuntime.Client { public static let clientName = "MarketplaceEntitlementClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MarketplaceEntitlementClient.MarketplaceEntitlementClientConfiguration let serviceName = "Marketplace Entitlement" diff --git a/Sources/Services/AWSMarketplaceMetering/Sources/AWSMarketplaceMetering/MarketplaceMeteringClient.swift b/Sources/Services/AWSMarketplaceMetering/Sources/AWSMarketplaceMetering/MarketplaceMeteringClient.swift index 63368a359cb..6aaad2b99b5 100644 --- a/Sources/Services/AWSMarketplaceMetering/Sources/AWSMarketplaceMetering/MarketplaceMeteringClient.swift +++ b/Sources/Services/AWSMarketplaceMetering/Sources/AWSMarketplaceMetering/MarketplaceMeteringClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MarketplaceMeteringClient: ClientRuntime.Client { public static let clientName = "MarketplaceMeteringClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MarketplaceMeteringClient.MarketplaceMeteringClientConfiguration let serviceName = "Marketplace Metering" diff --git a/Sources/Services/AWSMarketplaceReporting/Sources/AWSMarketplaceReporting/MarketplaceReportingClient.swift b/Sources/Services/AWSMarketplaceReporting/Sources/AWSMarketplaceReporting/MarketplaceReportingClient.swift index 41caa879081..d1301f95f58 100644 --- a/Sources/Services/AWSMarketplaceReporting/Sources/AWSMarketplaceReporting/MarketplaceReportingClient.swift +++ b/Sources/Services/AWSMarketplaceReporting/Sources/AWSMarketplaceReporting/MarketplaceReportingClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MarketplaceReportingClient: ClientRuntime.Client { public static let clientName = "MarketplaceReportingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MarketplaceReportingClient.MarketplaceReportingClientConfiguration let serviceName = "Marketplace Reporting" diff --git a/Sources/Services/AWSMediaConnect/Sources/AWSMediaConnect/MediaConnectClient.swift b/Sources/Services/AWSMediaConnect/Sources/AWSMediaConnect/MediaConnectClient.swift index d17dda70c81..03cdd928256 100644 --- a/Sources/Services/AWSMediaConnect/Sources/AWSMediaConnect/MediaConnectClient.swift +++ b/Sources/Services/AWSMediaConnect/Sources/AWSMediaConnect/MediaConnectClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MediaConnectClient: ClientRuntime.Client { public static let clientName = "MediaConnectClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MediaConnectClient.MediaConnectClientConfiguration let serviceName = "MediaConnect" diff --git a/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/MediaConvertClient.swift b/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/MediaConvertClient.swift index cf79d3a56a4..aeb1cea549f 100644 --- a/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/MediaConvertClient.swift +++ b/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/MediaConvertClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MediaConvertClient: ClientRuntime.Client { public static let clientName = "MediaConvertClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MediaConvertClient.MediaConvertClientConfiguration let serviceName = "MediaConvert" diff --git a/Sources/Services/AWSMediaLive/Sources/AWSMediaLive/MediaLiveClient.swift b/Sources/Services/AWSMediaLive/Sources/AWSMediaLive/MediaLiveClient.swift index 178a0f7b1fb..c56832eff37 100644 --- a/Sources/Services/AWSMediaLive/Sources/AWSMediaLive/MediaLiveClient.swift +++ b/Sources/Services/AWSMediaLive/Sources/AWSMediaLive/MediaLiveClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MediaLiveClient: ClientRuntime.Client { public static let clientName = "MediaLiveClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MediaLiveClient.MediaLiveClientConfiguration let serviceName = "MediaLive" diff --git a/Sources/Services/AWSMediaPackage/Sources/AWSMediaPackage/MediaPackageClient.swift b/Sources/Services/AWSMediaPackage/Sources/AWSMediaPackage/MediaPackageClient.swift index 56679d10384..1b7c65ce4b0 100644 --- a/Sources/Services/AWSMediaPackage/Sources/AWSMediaPackage/MediaPackageClient.swift +++ b/Sources/Services/AWSMediaPackage/Sources/AWSMediaPackage/MediaPackageClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MediaPackageClient: ClientRuntime.Client { public static let clientName = "MediaPackageClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MediaPackageClient.MediaPackageClientConfiguration let serviceName = "MediaPackage" diff --git a/Sources/Services/AWSMediaPackageV2/Sources/AWSMediaPackageV2/MediaPackageV2Client.swift b/Sources/Services/AWSMediaPackageV2/Sources/AWSMediaPackageV2/MediaPackageV2Client.swift index 559eac54599..4c7341d8b18 100644 --- a/Sources/Services/AWSMediaPackageV2/Sources/AWSMediaPackageV2/MediaPackageV2Client.swift +++ b/Sources/Services/AWSMediaPackageV2/Sources/AWSMediaPackageV2/MediaPackageV2Client.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MediaPackageV2Client: ClientRuntime.Client { public static let clientName = "MediaPackageV2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MediaPackageV2Client.MediaPackageV2ClientConfiguration let serviceName = "MediaPackageV2" diff --git a/Sources/Services/AWSMediaPackageVod/Sources/AWSMediaPackageVod/MediaPackageVodClient.swift b/Sources/Services/AWSMediaPackageVod/Sources/AWSMediaPackageVod/MediaPackageVodClient.swift index 92aedcf7217..e256427e54b 100644 --- a/Sources/Services/AWSMediaPackageVod/Sources/AWSMediaPackageVod/MediaPackageVodClient.swift +++ b/Sources/Services/AWSMediaPackageVod/Sources/AWSMediaPackageVod/MediaPackageVodClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MediaPackageVodClient: ClientRuntime.Client { public static let clientName = "MediaPackageVodClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MediaPackageVodClient.MediaPackageVodClientConfiguration let serviceName = "MediaPackage Vod" diff --git a/Sources/Services/AWSMediaStore/Sources/AWSMediaStore/MediaStoreClient.swift b/Sources/Services/AWSMediaStore/Sources/AWSMediaStore/MediaStoreClient.swift index c8fd2c59a75..06a977bd389 100644 --- a/Sources/Services/AWSMediaStore/Sources/AWSMediaStore/MediaStoreClient.swift +++ b/Sources/Services/AWSMediaStore/Sources/AWSMediaStore/MediaStoreClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MediaStoreClient: ClientRuntime.Client { public static let clientName = "MediaStoreClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MediaStoreClient.MediaStoreClientConfiguration let serviceName = "MediaStore" diff --git a/Sources/Services/AWSMediaStoreData/Sources/AWSMediaStoreData/MediaStoreDataClient.swift b/Sources/Services/AWSMediaStoreData/Sources/AWSMediaStoreData/MediaStoreDataClient.swift index 362f7fd2c98..3f053e77989 100644 --- a/Sources/Services/AWSMediaStoreData/Sources/AWSMediaStoreData/MediaStoreDataClient.swift +++ b/Sources/Services/AWSMediaStoreData/Sources/AWSMediaStoreData/MediaStoreDataClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MediaStoreDataClient: ClientRuntime.Client { public static let clientName = "MediaStoreDataClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MediaStoreDataClient.MediaStoreDataClientConfiguration let serviceName = "MediaStore Data" diff --git a/Sources/Services/AWSMediaTailor/Sources/AWSMediaTailor/MediaTailorClient.swift b/Sources/Services/AWSMediaTailor/Sources/AWSMediaTailor/MediaTailorClient.swift index 4a521d6b2bb..a62c1f88946 100644 --- a/Sources/Services/AWSMediaTailor/Sources/AWSMediaTailor/MediaTailorClient.swift +++ b/Sources/Services/AWSMediaTailor/Sources/AWSMediaTailor/MediaTailorClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MediaTailorClient: ClientRuntime.Client { public static let clientName = "MediaTailorClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MediaTailorClient.MediaTailorClientConfiguration let serviceName = "MediaTailor" diff --git a/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/MedicalImagingClient.swift b/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/MedicalImagingClient.swift index dc49bbc73df..9d895862413 100644 --- a/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/MedicalImagingClient.swift +++ b/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/MedicalImagingClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MedicalImagingClient: ClientRuntime.Client { public static let clientName = "MedicalImagingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MedicalImagingClient.MedicalImagingClientConfiguration let serviceName = "Medical Imaging" diff --git a/Sources/Services/AWSMemoryDB/Sources/AWSMemoryDB/MemoryDBClient.swift b/Sources/Services/AWSMemoryDB/Sources/AWSMemoryDB/MemoryDBClient.swift index 846086bf14d..f7cf679bc04 100644 --- a/Sources/Services/AWSMemoryDB/Sources/AWSMemoryDB/MemoryDBClient.swift +++ b/Sources/Services/AWSMemoryDB/Sources/AWSMemoryDB/MemoryDBClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MemoryDBClient: ClientRuntime.Client { public static let clientName = "MemoryDBClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MemoryDBClient.MemoryDBClientConfiguration let serviceName = "MemoryDB" diff --git a/Sources/Services/AWSMgn/Sources/AWSMgn/MgnClient.swift b/Sources/Services/AWSMgn/Sources/AWSMgn/MgnClient.swift index bbf81b3b902..920198ef63d 100644 --- a/Sources/Services/AWSMgn/Sources/AWSMgn/MgnClient.swift +++ b/Sources/Services/AWSMgn/Sources/AWSMgn/MgnClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MgnClient: ClientRuntime.Client { public static let clientName = "MgnClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MgnClient.MgnClientConfiguration let serviceName = "mgn" diff --git a/Sources/Services/AWSMigrationHub/Sources/AWSMigrationHub/MigrationHubClient.swift b/Sources/Services/AWSMigrationHub/Sources/AWSMigrationHub/MigrationHubClient.swift index 5d4e8c82ff1..fe9ecbf103e 100644 --- a/Sources/Services/AWSMigrationHub/Sources/AWSMigrationHub/MigrationHubClient.swift +++ b/Sources/Services/AWSMigrationHub/Sources/AWSMigrationHub/MigrationHubClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MigrationHubClient: ClientRuntime.Client { public static let clientName = "MigrationHubClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MigrationHubClient.MigrationHubClientConfiguration let serviceName = "Migration Hub" diff --git a/Sources/Services/AWSMigrationHubConfig/Sources/AWSMigrationHubConfig/MigrationHubConfigClient.swift b/Sources/Services/AWSMigrationHubConfig/Sources/AWSMigrationHubConfig/MigrationHubConfigClient.swift index 3b281967811..fb8f1622e76 100644 --- a/Sources/Services/AWSMigrationHubConfig/Sources/AWSMigrationHubConfig/MigrationHubConfigClient.swift +++ b/Sources/Services/AWSMigrationHubConfig/Sources/AWSMigrationHubConfig/MigrationHubConfigClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MigrationHubConfigClient: ClientRuntime.Client { public static let clientName = "MigrationHubConfigClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MigrationHubConfigClient.MigrationHubConfigClientConfiguration let serviceName = "MigrationHub Config" diff --git a/Sources/Services/AWSMigrationHubOrchestrator/Sources/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClient.swift b/Sources/Services/AWSMigrationHubOrchestrator/Sources/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClient.swift index a235179c0d6..ae167f35f04 100644 --- a/Sources/Services/AWSMigrationHubOrchestrator/Sources/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClient.swift +++ b/Sources/Services/AWSMigrationHubOrchestrator/Sources/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MigrationHubOrchestratorClient: ClientRuntime.Client { public static let clientName = "MigrationHubOrchestratorClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MigrationHubOrchestratorClient.MigrationHubOrchestratorClientConfiguration let serviceName = "MigrationHubOrchestrator" diff --git a/Sources/Services/AWSMigrationHubRefactorSpaces/Sources/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClient.swift b/Sources/Services/AWSMigrationHubRefactorSpaces/Sources/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClient.swift index 6cbe22b0cc4..ac1d120ca3d 100644 --- a/Sources/Services/AWSMigrationHubRefactorSpaces/Sources/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClient.swift +++ b/Sources/Services/AWSMigrationHubRefactorSpaces/Sources/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MigrationHubRefactorSpacesClient: ClientRuntime.Client { public static let clientName = "MigrationHubRefactorSpacesClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MigrationHubRefactorSpacesClient.MigrationHubRefactorSpacesClientConfiguration let serviceName = "Migration Hub Refactor Spaces" diff --git a/Sources/Services/AWSMigrationHubStrategy/Sources/AWSMigrationHubStrategy/MigrationHubStrategyClient.swift b/Sources/Services/AWSMigrationHubStrategy/Sources/AWSMigrationHubStrategy/MigrationHubStrategyClient.swift index 491be1eca5d..82117f43582 100644 --- a/Sources/Services/AWSMigrationHubStrategy/Sources/AWSMigrationHubStrategy/MigrationHubStrategyClient.swift +++ b/Sources/Services/AWSMigrationHubStrategy/Sources/AWSMigrationHubStrategy/MigrationHubStrategyClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MigrationHubStrategyClient: ClientRuntime.Client { public static let clientName = "MigrationHubStrategyClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MigrationHubStrategyClient.MigrationHubStrategyClientConfiguration let serviceName = "MigrationHubStrategy" diff --git a/Sources/Services/AWSMq/Sources/AWSMq/MqClient.swift b/Sources/Services/AWSMq/Sources/AWSMq/MqClient.swift index 13697a7fb2d..c0e6df032d7 100644 --- a/Sources/Services/AWSMq/Sources/AWSMq/MqClient.swift +++ b/Sources/Services/AWSMq/Sources/AWSMq/MqClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class MqClient: ClientRuntime.Client { public static let clientName = "MqClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: MqClient.MqClientConfiguration let serviceName = "mq" diff --git a/Sources/Services/AWSNeptune/Sources/AWSNeptune/NeptuneClient.swift b/Sources/Services/AWSNeptune/Sources/AWSNeptune/NeptuneClient.swift index 4ec6be55820..41d3bb40573 100644 --- a/Sources/Services/AWSNeptune/Sources/AWSNeptune/NeptuneClient.swift +++ b/Sources/Services/AWSNeptune/Sources/AWSNeptune/NeptuneClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class NeptuneClient: ClientRuntime.Client { public static let clientName = "NeptuneClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: NeptuneClient.NeptuneClientConfiguration let serviceName = "Neptune" diff --git a/Sources/Services/AWSNeptuneGraph/Sources/AWSNeptuneGraph/NeptuneGraphClient.swift b/Sources/Services/AWSNeptuneGraph/Sources/AWSNeptuneGraph/NeptuneGraphClient.swift index 08afa3074ef..71142b78640 100644 --- a/Sources/Services/AWSNeptuneGraph/Sources/AWSNeptuneGraph/NeptuneGraphClient.swift +++ b/Sources/Services/AWSNeptuneGraph/Sources/AWSNeptuneGraph/NeptuneGraphClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class NeptuneGraphClient: ClientRuntime.Client { public static let clientName = "NeptuneGraphClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: NeptuneGraphClient.NeptuneGraphClientConfiguration let serviceName = "Neptune Graph" diff --git a/Sources/Services/AWSNeptunedata/Sources/AWSNeptunedata/NeptunedataClient.swift b/Sources/Services/AWSNeptunedata/Sources/AWSNeptunedata/NeptunedataClient.swift index f7b66eb33e8..8ce3304c74b 100644 --- a/Sources/Services/AWSNeptunedata/Sources/AWSNeptunedata/NeptunedataClient.swift +++ b/Sources/Services/AWSNeptunedata/Sources/AWSNeptunedata/NeptunedataClient.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class NeptunedataClient: ClientRuntime.Client { public static let clientName = "NeptunedataClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: NeptunedataClient.NeptunedataClientConfiguration let serviceName = "neptunedata" diff --git a/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/NetworkFirewallClient.swift b/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/NetworkFirewallClient.swift index c4fb633a77e..bab38eda3e3 100644 --- a/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/NetworkFirewallClient.swift +++ b/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/NetworkFirewallClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class NetworkFirewallClient: ClientRuntime.Client { public static let clientName = "NetworkFirewallClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: NetworkFirewallClient.NetworkFirewallClientConfiguration let serviceName = "Network Firewall" diff --git a/Sources/Services/AWSNetworkManager/Sources/AWSNetworkManager/NetworkManagerClient.swift b/Sources/Services/AWSNetworkManager/Sources/AWSNetworkManager/NetworkManagerClient.swift index d7ea98a13a2..9aa258c910c 100644 --- a/Sources/Services/AWSNetworkManager/Sources/AWSNetworkManager/NetworkManagerClient.swift +++ b/Sources/Services/AWSNetworkManager/Sources/AWSNetworkManager/NetworkManagerClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class NetworkManagerClient: ClientRuntime.Client { public static let clientName = "NetworkManagerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: NetworkManagerClient.NetworkManagerClientConfiguration let serviceName = "NetworkManager" diff --git a/Sources/Services/AWSNetworkMonitor/Sources/AWSNetworkMonitor/NetworkMonitorClient.swift b/Sources/Services/AWSNetworkMonitor/Sources/AWSNetworkMonitor/NetworkMonitorClient.swift index f770d8218e5..68f6a6c428a 100644 --- a/Sources/Services/AWSNetworkMonitor/Sources/AWSNetworkMonitor/NetworkMonitorClient.swift +++ b/Sources/Services/AWSNetworkMonitor/Sources/AWSNetworkMonitor/NetworkMonitorClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class NetworkMonitorClient: ClientRuntime.Client { public static let clientName = "NetworkMonitorClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: NetworkMonitorClient.NetworkMonitorClientConfiguration let serviceName = "NetworkMonitor" diff --git a/Sources/Services/AWSNotifications/Package.swift.txt b/Sources/Services/AWSNotifications/Package.swift.txt new file mode 100644 index 00000000000..3a98142cc9b --- /dev/null +++ b/Sources/Services/AWSNotifications/Package.swift.txt @@ -0,0 +1,96 @@ +// swift-tools-version: 5.9.0 + +import PackageDescription + +let package = Package( + name: "AWSNotifications", + platforms: [ + .macOS(.v10_15), .iOS(.v13) + ], + products: [ + .library(name: "AWSNotifications", targets: ["AWSNotifications"]) + ], + dependencies: [ + .package( + id: "aws-sdk-swift.AWSClientRuntime", + exact: "0.0.1" + ), + .package( + id: "aws-sdk-swift.AWSSDKHTTPAuth", + exact: "0.0.1" + ), + .package( + url: "https://github.com/smithy-lang/smithy-swift", + exact: "0.0.1" + ), + ], + targets: [ + .target( + name: "AWSNotifications", + dependencies: [ + .product( + name: "AWSClientRuntime", + package: "aws-sdk-swift.AWSClientRuntime" + ), + .product( + name: "AWSSDKHTTPAuth", + package: "aws-sdk-swift.AWSSDKHTTPAuth" + ), + .product( + name: "SmithyHTTPAuthAPI", + package: "smithy-swift" + ), + .product( + name: "Smithy", + package: "smithy-swift" + ), + .product( + name: "ClientRuntime", + package: "smithy-swift" + ), + .product( + name: "SmithyHTTPAPI", + package: "smithy-swift" + ), + .product( + name: "SmithyTimestamps", + package: "smithy-swift" + ), + .product( + name: "SmithyJSON", + package: "smithy-swift" + ), + .product( + name: "SmithyReadWrite", + package: "smithy-swift" + ), + .product( + name: "SmithyIdentity", + package: "smithy-swift" + ), + .product( + name: "SmithyRetriesAPI", + package: "smithy-swift" + ), + .product( + name: "SmithyRetries", + package: "smithy-swift" + ), + .product( + name: "SmithyTestUtil", + package: "smithy-swift" + ), + ] + ), + .testTarget( + name: "AWSNotificationsTests", + dependencies: [ + "AWSNotifications", + .product( + name: "SmithyTestUtil", + package: "smithy-swift" + ), + ] + ) + ] +) diff --git a/Sources/Services/AWSNotifications/Sources/AWSNotifications/AuthSchemeResolver.swift b/Sources/Services/AWSNotifications/Sources/AWSNotifications/AuthSchemeResolver.swift new file mode 100644 index 00000000000..ba20f0bca81 --- /dev/null +++ b/Sources/Services/AWSNotifications/Sources/AWSNotifications/AuthSchemeResolver.swift @@ -0,0 +1,56 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class Smithy.Context +import enum Smithy.ClientError +import enum SmithyHTTPAuthAPI.SigningPropertyKeys +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyHTTPAuthAPI.AuthSchemeResolverParameters +import struct SmithyHTTPAuthAPI.AuthOption + +public struct NotificationsAuthSchemeResolverParameters: SmithyHTTPAuthAPI.AuthSchemeResolverParameters { + public let operation: Swift.String + // Region is used for SigV4 auth scheme + public let region: Swift.String? +} + +public protocol NotificationsAuthSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver { + // Intentionally empty. + // This is the parent protocol that all auth scheme resolver implementations of + // the service Notifications must conform to. +} + +public struct DefaultNotificationsAuthSchemeResolver: NotificationsAuthSchemeResolver { + + public func resolveAuthScheme(params: SmithyHTTPAuthAPI.AuthSchemeResolverParameters) throws -> [SmithyHTTPAuthAPI.AuthOption] { + var validAuthOptions = [SmithyHTTPAuthAPI.AuthOption]() + guard let serviceParams = params as? NotificationsAuthSchemeResolverParameters else { + throw Smithy.ClientError.authError("Service specific auth scheme parameters type must be passed to auth scheme resolver.") + } + switch serviceParams.operation { + default: + var sigV4Option = SmithyHTTPAuthAPI.AuthOption(schemeID: "aws.auth#sigv4") + sigV4Option.signingProperties.set(key: SmithyHTTPAuthAPI.SigningPropertyKeys.signingName, value: "notifications") + guard let region = serviceParams.region else { + throw Smithy.ClientError.authError("Missing region in auth scheme parameters for SigV4 auth scheme.") + } + sigV4Option.signingProperties.set(key: SmithyHTTPAuthAPI.SigningPropertyKeys.signingRegion, value: region) + validAuthOptions.append(sigV4Option) + } + return validAuthOptions + } + + public func constructParameters(context: Smithy.Context) throws -> SmithyHTTPAuthAPI.AuthSchemeResolverParameters { + guard let opName = context.getOperation() else { + throw Smithy.ClientError.dataNotFound("Operation name not configured in middleware context for auth scheme resolver params construction.") + } + let opRegion = context.getRegion() + return NotificationsAuthSchemeResolverParameters(operation: opName, region: opRegion) + } +} diff --git a/Sources/Services/AWSNotifications/Sources/AWSNotifications/Endpoints.swift b/Sources/Services/AWSNotifications/Sources/AWSNotifications/Endpoints.swift new file mode 100644 index 00000000000..872b4999173 --- /dev/null +++ b/Sources/Services/AWSNotifications/Sources/AWSNotifications/Endpoints.swift @@ -0,0 +1,68 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class ClientRuntime.EndpointsRequestContext +import let AWSClientRuntime.awsPartitionJSON +import protocol ClientRuntime.EndpointsRequestContextProviding +import struct ClientRuntime.DefaultEndpointResolver +import struct ClientRuntime.StaticEndpointResolver +import struct SmithyHTTPAPI.Endpoint + +public struct EndpointParams { + /// Override the endpoint used to send this request + public let endpoint: Swift.String? + /// The AWS region used to dispatch the request. + public let region: Swift.String? + /// 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. + public let useFIPS: Swift.Bool + + public init( + endpoint: Swift.String? = nil, + region: Swift.String? = nil, + useFIPS: Swift.Bool = false + ) + { + self.endpoint = endpoint + self.region = region + self.useFIPS = useFIPS + } +} + +extension EndpointParams: ClientRuntime.EndpointsRequestContextProviding { + + public var context: ClientRuntime.EndpointsRequestContext { + get throws { + let context = try ClientRuntime.EndpointsRequestContext() + try context.add(name: "Endpoint", value: self.endpoint) + try context.add(name: "Region", value: self.region) + try context.add(name: "UseFIPS", value: self.useFIPS) + return context + } + } +} + +public protocol EndpointResolver { + func resolve(params: EndpointParams) throws -> SmithyHTTPAPI.Endpoint +} + +typealias DefaultEndpointResolver = ClientRuntime.DefaultEndpointResolver + +extension DefaultEndpointResolver { + private static let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"},\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://notifications-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://notifications.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"Invalid Configuration: Missing Region\",\"type\":\"error\"}],\"type\":\"tree\"}]}" + + init() throws { + try self.init(partitions: AWSClientRuntime.awsPartitionJSON, ruleSet: Self.ruleSet) + } +} + +extension DefaultEndpointResolver: EndpointResolver {} + +typealias StaticEndpointResolver = ClientRuntime.StaticEndpointResolver + +extension StaticEndpointResolver: EndpointResolver {} diff --git a/Sources/Services/AWSNotifications/Sources/AWSNotifications/Models.swift b/Sources/Services/AWSNotifications/Sources/AWSNotifications/Models.swift new file mode 100644 index 00000000000..7f9c482e6ab --- /dev/null +++ b/Sources/Services/AWSNotifications/Sources/AWSNotifications/Models.swift @@ -0,0 +1,3845 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +@_spi(SmithyReadWrite) import ClientRuntime +import Foundation +import class SmithyHTTPAPI.HTTPResponse +@_spi(SmithyReadWrite) import class SmithyJSON.Reader +@_spi(SmithyReadWrite) import class SmithyJSON.Writer +import enum ClientRuntime.ErrorFault +import enum Smithy.ClientError +import enum SmithyReadWrite.ReaderError +@_spi(SmithyReadWrite) import enum SmithyReadWrite.ReadingClosures +@_spi(SmithyReadWrite) import enum SmithyReadWrite.WritingClosures +@_spi(SmithyTimestamps) import enum SmithyTimestamps.TimestampFormat +import protocol AWSClientRuntime.AWSServiceError +import protocol ClientRuntime.HTTPError +import protocol ClientRuntime.ModeledError +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyReader +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyWriter +@_spi(SmithyReadWrite) import struct AWSClientRuntime.RestJSONError +@_spi(UnknownAWSHTTPServiceError) import struct AWSClientRuntime.UnknownAWSHTTPServiceError +import struct Smithy.URIQueryItem +@_spi(SmithyTimestamps) import struct SmithyTimestamps.TimestampFormatter + +/// User does not have sufficient access to perform this action. +public struct AccessDeniedException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "AccessDeniedException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + +extension NotificationsClientTypes { + + public enum AggregationDuration: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + /// Aggregate notifications for long periods of time (12 hours) + case long + /// Do not aggregate notifications sourced from a notification configuration + case `none` + /// Aggregate notifications for short periods of time (5 mins) + case short + case sdkUnknown(Swift.String) + + public static var allCases: [AggregationDuration] { + return [ + .long, + .none, + .short + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .long: return "LONG" + case .none: return "NONE" + case .short: return "SHORT" + case let .sdkUnknown(s): return s + } + } + } +} + +extension NotificationsClientTypes { + + public enum AggregationEventType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case aggregate + case child + case `none` + case sdkUnknown(Swift.String) + + public static var allCases: [AggregationEventType] { + return [ + .aggregate, + .child, + .none + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .aggregate: return "AGGREGATE" + case .child: return "CHILD" + case .none: return "NONE" + case let .sdkUnknown(s): return s + } + } + } +} + +/// Updating or deleting a resource can cause an inconsistent state. +public struct ConflictException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + /// The resource ID that prompted the conflict error. + /// This member is required. + public internal(set) var resourceId: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ConflictException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil, + resourceId: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.resourceId = resourceId + } +} + +/// Unexpected error during processing of request. +public struct InternalServerException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "InternalServerException" } + public static var fault: ClientRuntime.ErrorFault { .server } + public static var isRetryable: Swift.Bool { true } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + +/// Request references a resource which does not exist. +public struct ResourceNotFoundException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + /// The ID of the resource that wasn't found. + /// This member is required. + public internal(set) var resourceId: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ResourceNotFoundException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil, + resourceId: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.resourceId = resourceId + } +} + +/// Request would cause a service quota to be exceeded. +public struct ServiceQuotaExceededException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + /// The code for the service quota in [Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html). + public internal(set) var quotaCode: Swift.String? = nil + /// The ID of the resource that exceeds the service quota. + public internal(set) var resourceId: Swift.String? = nil + /// The type of the resource that exceeds the service quota. + /// This member is required. + public internal(set) var resourceType: Swift.String? = nil + /// The code for the service quota exceeded in [Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html). + public internal(set) var serviceCode: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ServiceQuotaExceededException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil, + quotaCode: Swift.String? = nil, + resourceId: Swift.String? = nil, + resourceType: Swift.String? = nil, + serviceCode: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.quotaCode = quotaCode + self.properties.resourceId = resourceId + self.properties.resourceType = resourceType + self.properties.serviceCode = serviceCode + } +} + +/// Request was denied due to request throttling. +public struct ThrottlingException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + /// Identifies the quota that is being throttled. + public internal(set) var quotaCode: Swift.String? = nil + /// The number of seconds a client should wait before retrying the request. + public internal(set) var retryAfterSeconds: Swift.Int? = nil + /// Identifies the service being throttled. + public internal(set) var serviceCode: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ThrottlingException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { true } + public static var isThrottling: Swift.Bool { true } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil, + quotaCode: Swift.String? = nil, + retryAfterSeconds: Swift.Int? = nil, + serviceCode: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.quotaCode = quotaCode + self.properties.retryAfterSeconds = retryAfterSeconds + self.properties.serviceCode = serviceCode + } +} + +extension NotificationsClientTypes { + + /// Stores information about a field passed inside a request that resulted in an exception. + public struct ValidationExceptionField: Swift.Sendable { + /// A message with the reason for the validation exception error. + /// This member is required. + public var message: Swift.String? + /// The field name where the invalid entry was detected. + /// This member is required. + public var name: Swift.String? + + public init( + message: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.message = message + self.name = name + } + } +} + +extension NotificationsClientTypes { + + public enum ValidationExceptionReason: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case fieldValidationFailed + case other + case sdkUnknown(Swift.String) + + public static var allCases: [ValidationExceptionReason] { + return [ + .fieldValidationFailed, + .other + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .fieldValidationFailed: return "fieldValidationFailed" + case .other: return "other" + case let .sdkUnknown(s): return s + } + } + } +} + +/// This exception is thrown when the notification event fails validation. +public struct ValidationException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// The list of input fields that are invalid. + public internal(set) var fieldList: [NotificationsClientTypes.ValidationExceptionField]? = nil + /// This member is required. + public internal(set) var message: Swift.String? = nil + /// The reason why your input is considered invalid. + public internal(set) var reason: NotificationsClientTypes.ValidationExceptionReason? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ValidationException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + fieldList: [NotificationsClientTypes.ValidationExceptionField]? = nil, + message: Swift.String? = nil, + reason: NotificationsClientTypes.ValidationExceptionReason? = nil + ) + { + self.properties.fieldList = fieldList + self.properties.message = message + self.properties.reason = reason + } +} + +public struct AssociateChannelInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the Channel to associate with the NotificationConfiguration. Supported ARNs include AWS Chatbot, the Console Mobile Application, and notifications-contacts. + /// This member is required. + public var arn: Swift.String? + /// The ARN of the NotificationConfiguration to associate with the Channel. + /// This member is required. + public var notificationConfigurationArn: Swift.String? + + public init( + arn: Swift.String? = nil, + notificationConfigurationArn: Swift.String? = nil + ) + { + self.arn = arn + self.notificationConfigurationArn = notificationConfigurationArn + } +} + +public struct AssociateChannelOutput: Swift.Sendable { + + public init() { } +} + +public struct DisassociateChannelInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the Channel to disassociate. + /// This member is required. + public var arn: Swift.String? + /// The ARN of the NotificationConfiguration to disassociate. + /// This member is required. + public var notificationConfigurationArn: Swift.String? + + public init( + arn: Swift.String? = nil, + notificationConfigurationArn: Swift.String? = nil + ) + { + self.arn = arn + self.notificationConfigurationArn = notificationConfigurationArn + } +} + +public struct DisassociateChannelOutput: Swift.Sendable { + + public init() { } +} + +public struct ListChannelsInput: Swift.Sendable { + /// The maximum number of results to be returned in this call. The default value is 20. + public var maxResults: Swift.Int? + /// The start token for paginated calls. Retrieved from the response of a previous ListNotificationEvents call. NextToken uses Base64 encoding. + public var nextToken: Swift.String? + /// The Amazon Resource Name (ARN) of the NotificationConfiguration. + /// This member is required. + public var notificationConfigurationArn: Swift.String? + + public init( + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil, + notificationConfigurationArn: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + self.notificationConfigurationArn = notificationConfigurationArn + } +} + +public struct ListChannelsOutput: Swift.Sendable { + /// A list of Channels. + /// This member is required. + public var channels: [Swift.String]? + /// A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries. + public var nextToken: Swift.String? + + public init( + channels: [Swift.String]? = nil, + nextToken: Swift.String? = nil + ) + { + self.channels = channels + self.nextToken = nextToken + } +} + +public struct CreateEventRuleInput: Swift.Sendable { + /// An additional event pattern used to further filter the events this EventRule receives. For more information, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) in the Amazon EventBridge User Guide. + public var eventPattern: Swift.String? + /// The event type to match. Must match one of the valid Amazon EventBridge event types. For example, EC2 Instance State-change Notification and AWS CloudWatch Alarm State Change. For more information, see [Event delivery from AWS services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level) in the Amazon EventBridge User Guide. + /// This member is required. + public var eventType: Swift.String? + /// The Amazon Resource Name (ARN) of the NotificationConfiguration associated with this EventRule. + /// This member is required. + public var notificationConfigurationArn: Swift.String? + /// A list of AWS Regions that send events to this EventRule. + /// This member is required. + public var regions: [Swift.String]? + /// The matched event source. Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see [Event delivery from AWS services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level) in the Amazon EventBridge User Guide. + /// This member is required. + public var source: Swift.String? + + public init( + eventPattern: Swift.String? = nil, + eventType: Swift.String? = nil, + notificationConfigurationArn: Swift.String? = nil, + regions: [Swift.String]? = nil, + source: Swift.String? = nil + ) + { + self.eventPattern = eventPattern + self.eventType = eventType + self.notificationConfigurationArn = notificationConfigurationArn + self.regions = regions + self.source = source + } +} + +extension NotificationsClientTypes { + + public enum EventRuleStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + /// EventRule is processing events. Any call can be executed. + case active + /// This EventRule is being created. Only GET/LIST calls can be executed. + case creating + /// This EventRule is being deleted. Only GET/LIST calls can be executed. + case deleting + /// EventRule is in a bad state and may not be processing events. Any call can be executed. + case inactive + /// This EventRule is being updated. Only GET/LIST calls can be executed. + case updating + case sdkUnknown(Swift.String) + + public static var allCases: [EventRuleStatus] { + return [ + .active, + .creating, + .deleting, + .inactive, + .updating + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .active: return "ACTIVE" + case .creating: return "CREATING" + case .deleting: return "DELETING" + case .inactive: return "INACTIVE" + case .updating: return "UPDATING" + case let .sdkUnknown(s): return s + } + } + } +} + +extension NotificationsClientTypes { + + /// Describes EventRule status information. + public struct EventRuleStatusSummary: Swift.Sendable { + /// A human-readable reason for EventRuleStatus. + /// This member is required. + public var reason: Swift.String? + /// The status of the EventRule. + /// + /// * Values: + /// + /// * ACTIVE + /// + /// * The EventRule can process events. + /// + /// + /// + /// + /// * INACTIVE + /// + /// * The EventRule may be unable to process events. + /// + /// + /// + /// + /// * CREATING + /// + /// * The EventRule is being created. Only GET and LIST calls can be run. + /// + /// + /// + /// + /// * UPDATING + /// + /// * The EventRule is being updated. Only GET and LIST calls can be run. + /// + /// + /// + /// + /// * DELETING + /// + /// * The EventRule is being deleted. Only GET and LIST calls can be run. + /// This member is required. + public var status: NotificationsClientTypes.EventRuleStatus? + + public init( + reason: Swift.String? = nil, + status: NotificationsClientTypes.EventRuleStatus? = nil + ) + { + self.reason = reason + self.status = status + } + } +} + +public struct CreateEventRuleOutput: Swift.Sendable { + /// The ARN of the resource. + /// This member is required. + public var arn: Swift.String? + /// The ARN of a NotificationConfiguration. + /// This member is required. + public var notificationConfigurationArn: Swift.String? + /// A list of an EventRule's status by Region. Regions are mapped to EventRuleStatusSummary. + /// This member is required. + public var statusSummaryByRegion: [Swift.String: NotificationsClientTypes.EventRuleStatusSummary]? + + public init( + arn: Swift.String? = nil, + notificationConfigurationArn: Swift.String? = nil, + statusSummaryByRegion: [Swift.String: NotificationsClientTypes.EventRuleStatusSummary]? = nil + ) + { + self.arn = arn + self.notificationConfigurationArn = notificationConfigurationArn + self.statusSummaryByRegion = statusSummaryByRegion + } +} + +public struct CreateNotificationConfigurationInput: Swift.Sendable { + /// The aggregation preference of the NotificationConfiguration. + /// + /// * Values: + /// + /// * LONG + /// + /// * Aggregate notifications for long periods of time (12 hours). + /// + /// + /// + /// + /// * SHORT + /// + /// * Aggregate notifications for short periods of time (5 minutes). + /// + /// + /// + /// + /// * NONE + /// + /// * Don't aggregate notifications. No delay in delivery. + public var aggregationDuration: NotificationsClientTypes.AggregationDuration? + /// The description of the NotificationConfiguration. + /// This member is required. + public var description: Swift.String? + /// The name of the NotificationConfiguration. Supports RFC 3986's unreserved characters. + /// This member is required. + public var name: Swift.String? + /// A map of tags assigned to a resource. A tag is a string-to-string map of key-value pairs. + public var tags: [Swift.String: Swift.String]? + + public init( + aggregationDuration: NotificationsClientTypes.AggregationDuration? = nil, + description: Swift.String? = nil, + name: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil + ) + { + self.aggregationDuration = aggregationDuration + self.description = description + self.name = name + self.tags = tags + } +} + +extension NotificationsClientTypes { + + public enum NotificationConfigurationStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + /// All of the EventRules are in ACTIVE Status. Any call can be executed. + case active + /// This NotificationConfiguration is being deleted. Only GET/LIST calls can be executed. + case deleting + /// All of the EventRules are in INACTIVE Status. Any call can be executed. + case inactive + /// Some EventRules are in ACTIVE Status and some are INACTIVE. Any call can be executed. + case partiallyActive + case sdkUnknown(Swift.String) + + public static var allCases: [NotificationConfigurationStatus] { + return [ + .active, + .deleting, + .inactive, + .partiallyActive + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .active: return "ACTIVE" + case .deleting: return "DELETING" + case .inactive: return "INACTIVE" + case .partiallyActive: return "PARTIALLY_ACTIVE" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct CreateNotificationConfigurationOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the the resource. + /// This member is required. + public var arn: Swift.String? + /// The status of this NotificationConfiguration. The status should always be INACTIVE when part of the CreateNotificationConfiguration response. + /// + /// * Values: + /// + /// * ACTIVE + /// + /// * All EventRules are ACTIVE and any call can be run. + /// + /// + /// + /// + /// * PARTIALLY_ACTIVE + /// + /// * Some EventRules are ACTIVE and some are INACTIVE. + /// + /// * Any call can be run. + /// + /// + /// + /// + /// * INACTIVE + /// + /// * All EventRules are INACTIVE and any call can be run. + /// + /// + /// + /// + /// * DELETING + /// + /// * This NotificationConfiguration is being deleted. + /// + /// * Only GET and LIST calls can be run. + /// This member is required. + public var status: NotificationsClientTypes.NotificationConfigurationStatus? + + public init( + arn: Swift.String? = nil, + status: NotificationsClientTypes.NotificationConfigurationStatus? = nil + ) + { + self.arn = arn + self.status = status + } +} + +public struct DeleteEventRuleInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the EventRule to delete. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct DeleteEventRuleOutput: Swift.Sendable { + + public init() { } +} + +public struct DeleteNotificationConfigurationInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the NotificationConfiguration to delete. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct DeleteNotificationConfigurationOutput: Swift.Sendable { + + public init() { } +} + +public struct DeregisterNotificationHubInput: Swift.Sendable { + /// The NotificationHub Region. + /// This member is required. + public var notificationHubRegion: Swift.String? + + public init( + notificationHubRegion: Swift.String? = nil + ) + { + self.notificationHubRegion = notificationHubRegion + } +} + +extension NotificationsClientTypes { + + public enum NotificationHubStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + /// Incoming Notification Events are being replicated to this Notification Hub. A Notification Hub with this status can be deregistered. + case active + /// Notification Hub is being deleted. Cannot register a Notification Hub in the same region as one in this status. + case deregistering + /// Notification Hub is in a failure state. Incoming Notification Events are not being replicated to this Hub. + case inactive + /// Notification Hub is initializing. Cannot deregister a Notification Hub in this status. + case registering + case sdkUnknown(Swift.String) + + public static var allCases: [NotificationHubStatus] { + return [ + .active, + .deregistering, + .inactive, + .registering + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .active: return "ACTIVE" + case .deregistering: return "DEREGISTERING" + case .inactive: return "INACTIVE" + case .registering: return "REGISTERING" + case let .sdkUnknown(s): return s + } + } + } +} + +extension NotificationsClientTypes { + + /// NotificationHub status information. + public struct NotificationHubStatusSummary: Swift.Sendable { + /// An Explanation for the current status. + /// This member is required. + public var reason: Swift.String? + /// Status information about the NotificationHub. + /// + /// * Values: + /// + /// * ACTIVE + /// + /// * Incoming NotificationEvents are replicated to this NotificationHub. + /// + /// + /// + /// + /// * REGISTERING + /// + /// * The NotificationHub is initializing. A NotificationHub with this status can't be deregistered. + /// + /// + /// + /// + /// * DEREGISTERING + /// + /// * The NotificationHub is being deleted. You can't register additional NotificationHubs in the same Region as a NotificationHub with this status. + /// This member is required. + public var status: NotificationsClientTypes.NotificationHubStatus? + + public init( + reason: Swift.String? = nil, + status: NotificationsClientTypes.NotificationHubStatus? = nil + ) + { + self.reason = reason + self.status = status + } + } +} + +public struct DeregisterNotificationHubOutput: Swift.Sendable { + /// The NotificationHub Region. + /// This member is required. + public var notificationHubRegion: Swift.String? + /// NotificationHub status information. + /// This member is required. + public var statusSummary: NotificationsClientTypes.NotificationHubStatusSummary? + + public init( + notificationHubRegion: Swift.String? = nil, + statusSummary: NotificationsClientTypes.NotificationHubStatusSummary? = nil + ) + { + self.notificationHubRegion = notificationHubRegion + self.statusSummary = statusSummary + } +} + +extension NotificationsClientTypes { + + /// The key-value pair of properties for an event. + public struct Dimension: Swift.Sendable { + /// The name of the dimension + /// This member is required. + public var name: Swift.String? + /// The value of the dimension. + /// This member is required. + public var value: Swift.String? + + public init( + name: Swift.String? = nil, + value: Swift.String? = nil + ) + { + self.name = name + self.value = value + } + } +} + +public struct GetEventRuleInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the EventRule to return. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct GetEventRuleOutput: Swift.Sendable { + /// The ARN of the resource. + /// This member is required. + public var arn: Swift.String? + /// The date when the EventRule was created. + /// This member is required. + public var creationTime: Foundation.Date? + /// An additional event pattern used to further filter the events this EventRule receives. For more information, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) in the Amazon EventBridge User Guide. + /// This member is required. + public var eventPattern: Swift.String? + /// The event type to match. Must match one of the valid Amazon EventBridge event types. For example, EC2 Instance State-change Notification and AWS CloudWatch Alarm State Change. For more information, see [Event delivery from AWS services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level) in the Amazon EventBridge User Guide. + /// This member is required. + public var eventType: Swift.String? + /// A list of managed rules from EventBridge that are are associated with this EventRule. These are created by AWS User Notifications within your account so this EventRule functions. + /// This member is required. + public var managedRules: [Swift.String]? + /// The ARN of a NotificationConfiguration. + /// This member is required. + public var notificationConfigurationArn: Swift.String? + /// A list of AWS Regions that send events to this EventRule. + /// This member is required. + public var regions: [Swift.String]? + /// The matched event source. Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see [Event delivery from AWS services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level) in the Amazon EventBridge User Guide. + /// This member is required. + public var source: Swift.String? + /// A list of an EventRule's status by Region. Regions are mapped to EventRuleStatusSummary. + /// This member is required. + public var statusSummaryByRegion: [Swift.String: NotificationsClientTypes.EventRuleStatusSummary]? + + public init( + arn: Swift.String? = nil, + creationTime: Foundation.Date? = nil, + eventPattern: Swift.String? = nil, + eventType: Swift.String? = nil, + managedRules: [Swift.String]? = nil, + notificationConfigurationArn: Swift.String? = nil, + regions: [Swift.String]? = nil, + source: Swift.String? = nil, + statusSummaryByRegion: [Swift.String: NotificationsClientTypes.EventRuleStatusSummary]? = nil + ) + { + self.arn = arn + self.creationTime = creationTime + self.eventPattern = eventPattern + self.eventType = eventType + self.managedRules = managedRules + self.notificationConfigurationArn = notificationConfigurationArn + self.regions = regions + self.source = source + self.statusSummaryByRegion = statusSummaryByRegion + } +} + +public struct ListEventRulesInput: Swift.Sendable { + /// The maximum number of results to be returned in this call. The default value is 20. + public var maxResults: Swift.Int? + /// The start token for paginated calls. Retrieved from the response of a previous ListEventRules call. Next token uses Base64 encoding. + public var nextToken: Swift.String? + /// The Amazon Resource Name (ARN) of the NotificationConfiguration. + /// This member is required. + public var notificationConfigurationArn: Swift.String? + + public init( + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil, + notificationConfigurationArn: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + self.notificationConfigurationArn = notificationConfigurationArn + } +} + +extension NotificationsClientTypes { + + /// Contains a complete list of fields related to an EventRule. + public struct EventRuleStructure: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the resource. + /// This member is required. + public var arn: Swift.String? + /// The creation time of the resource. + /// This member is required. + public var creationTime: Foundation.Date? + /// An additional event pattern used to further filter the events this EventRule receives. For more information, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) in the Amazon EventBridge User Guide. + /// This member is required. + public var eventPattern: Swift.String? + /// The event type to match. Must match one of the valid Amazon EventBridge event types. For example, EC2 Instance State-change Notification and AWS CloudWatch Alarm State Change. For more information, see [Event delivery from AWS services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level) in the Amazon EventBridge User Guide. + /// This member is required. + public var eventType: Swift.String? + /// A list of Amazon EventBridge Managed Rule ARNs associated with this EventRule. These are created by AWS User Notifications within your account so your EventRules can function. + /// This member is required. + public var managedRules: [Swift.String]? + /// The ARN for the NotificationConfiguration associated with this EventRule. + /// This member is required. + public var notificationConfigurationArn: Swift.String? + /// A list of AWS Regions that send events to this EventRule. + /// This member is required. + public var regions: [Swift.String]? + /// The matched event source. Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see [Event delivery from AWS services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level) in the Amazon EventBridge User Guide. + /// This member is required. + public var source: Swift.String? + /// A list of an EventRule's status by Region. Regions are mapped to EventRuleStatusSummary. + /// This member is required. + public var statusSummaryByRegion: [Swift.String: NotificationsClientTypes.EventRuleStatusSummary]? + + public init( + arn: Swift.String? = nil, + creationTime: Foundation.Date? = nil, + eventPattern: Swift.String? = nil, + eventType: Swift.String? = nil, + managedRules: [Swift.String]? = nil, + notificationConfigurationArn: Swift.String? = nil, + regions: [Swift.String]? = nil, + source: Swift.String? = nil, + statusSummaryByRegion: [Swift.String: NotificationsClientTypes.EventRuleStatusSummary]? = nil + ) + { + self.arn = arn + self.creationTime = creationTime + self.eventPattern = eventPattern + self.eventType = eventType + self.managedRules = managedRules + self.notificationConfigurationArn = notificationConfigurationArn + self.regions = regions + self.source = source + self.statusSummaryByRegion = statusSummaryByRegion + } + } +} + +public struct ListEventRulesOutput: Swift.Sendable { + /// A list of EventRules. + /// This member is required. + public var eventRules: [NotificationsClientTypes.EventRuleStructure]? + /// A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries. + public var nextToken: Swift.String? + + public init( + eventRules: [NotificationsClientTypes.EventRuleStructure]? = nil, + nextToken: Swift.String? = nil + ) + { + self.eventRules = eventRules + self.nextToken = nextToken + } +} + +public struct UpdateEventRuleInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) to use to update the EventRule. + /// This member is required. + public var arn: Swift.String? + /// An additional event pattern used to further filter the events this EventRule receives. For more information, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) in the Amazon EventBridge User Guide. + public var eventPattern: Swift.String? + /// A list of AWS Regions that sends events to this EventRule. + public var regions: [Swift.String]? + + public init( + arn: Swift.String? = nil, + eventPattern: Swift.String? = nil, + regions: [Swift.String]? = nil + ) + { + self.arn = arn + self.eventPattern = eventPattern + self.regions = regions + } +} + +public struct UpdateEventRuleOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) to use to update the EventRule. + /// This member is required. + public var arn: Swift.String? + /// The ARN of the NotificationConfiguration. + /// This member is required. + public var notificationConfigurationArn: Swift.String? + /// The status of the action by Region. + /// This member is required. + public var statusSummaryByRegion: [Swift.String: NotificationsClientTypes.EventRuleStatusSummary]? + + public init( + arn: Swift.String? = nil, + notificationConfigurationArn: Swift.String? = nil, + statusSummaryByRegion: [Swift.String: NotificationsClientTypes.EventRuleStatusSummary]? = nil + ) + { + self.arn = arn + self.notificationConfigurationArn = notificationConfigurationArn + self.statusSummaryByRegion = statusSummaryByRegion + } +} + +extension NotificationsClientTypes { + + public enum EventStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case healthy + case unhealthy + case sdkUnknown(Swift.String) + + public static var allCases: [EventStatus] { + return [ + .healthy, + .unhealthy + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .healthy: return "HEALTHY" + case .unhealthy: return "UNHEALTHY" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct GetNotificationConfigurationInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the NotificationConfiguration to return. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct GetNotificationConfigurationOutput: Swift.Sendable { + /// The aggregation preference of the NotificationConfiguration. + /// + /// * Values: + /// + /// * LONG + /// + /// * Aggregate notifications for long periods of time (12 hours). + /// + /// + /// + /// + /// * SHORT + /// + /// * Aggregate notifications for short periods of time (5 minutes). + /// + /// + /// + /// + /// * NONE + /// + /// * Don't aggregate notifications. No delay in delivery. + public var aggregationDuration: NotificationsClientTypes.AggregationDuration? + /// The ARN of the resource. + /// This member is required. + public var arn: Swift.String? + /// The creation time of the NotificationConfiguration. + /// This member is required. + public var creationTime: Foundation.Date? + /// The description of the NotificationConfiguration. + /// This member is required. + public var description: Swift.String? + /// The name of the NotificationConfiguration. + /// This member is required. + public var name: Swift.String? + /// The status of this NotificationConfiguration. The status should always be INACTIVE when part of the CreateNotificationConfiguration response. + /// + /// * Values: + /// + /// * ACTIVE + /// + /// * All EventRules are ACTIVE and any call can be run. + /// + /// + /// + /// + /// * PARTIALLY_ACTIVE + /// + /// * Some EventRules are ACTIVE and some are INACTIVE. + /// + /// * Any call can be run. + /// + /// + /// + /// + /// * INACTIVE + /// + /// * All EventRules are INACTIVE and any call can be run. + /// + /// + /// + /// + /// * DELETING + /// + /// * This NotificationConfiguration is being deleted. Only GET and LIST calls can be run. + /// + /// * Only GET and LIST calls can be run. + /// This member is required. + public var status: NotificationsClientTypes.NotificationConfigurationStatus? + + public init( + aggregationDuration: NotificationsClientTypes.AggregationDuration? = nil, + arn: Swift.String? = nil, + creationTime: Foundation.Date? = nil, + description: Swift.String? = nil, + name: Swift.String? = nil, + status: NotificationsClientTypes.NotificationConfigurationStatus? = nil + ) + { + self.aggregationDuration = aggregationDuration + self.arn = arn + self.creationTime = creationTime + self.description = description + self.name = name + self.status = status + } +} + +extension NotificationsClientTypes { + + public enum LocaleCode: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + /// German (Germany) + case deDe + /// English (Canada) + case enCa + /// English (United Kingdom) + case enUk + /// English (United States). This is the default locale. + case enUs + /// Spanish (Spain) + case esEs + /// French (Canada) + case frCa + /// French (France) + case frFr + /// Bahasa Indonesian (Indonesia) + case idId + /// Italian (Italy) + case itIt + /// Japanese (Japan) + case jaJp + /// Korean (Korea) + case koKr + /// Portuguese (Brazil) + case ptBr + /// Turkish (Turkey) + case trTr + /// Chinese (China) + case zhCn + /// Chinese (Taiwan) + case zhTw + case sdkUnknown(Swift.String) + + public static var allCases: [LocaleCode] { + return [ + .deDe, + .enCa, + .enUk, + .enUs, + .esEs, + .frCa, + .frFr, + .idId, + .itIt, + .jaJp, + .koKr, + .ptBr, + .trTr, + .zhCn, + .zhTw + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .deDe: return "de_DE" + case .enCa: return "en_CA" + case .enUk: return "en_UK" + case .enUs: return "en_US" + case .esEs: return "es_ES" + case .frCa: return "fr_CA" + case .frFr: return "fr_FR" + case .idId: return "id_ID" + case .itIt: return "it_IT" + case .jaJp: return "ja_JP" + case .koKr: return "ko_KR" + case .ptBr: return "pt_BR" + case .trTr: return "tr_TR" + case .zhCn: return "zh_CN" + case .zhTw: return "zh_TW" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct GetNotificationEventInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the NotificationEvent to return. + /// This member is required. + public var arn: Swift.String? + /// The locale code of the language used for the retrieved NotificationEvent. The default locale is English en_US. + public var locale: NotificationsClientTypes.LocaleCode? + + public init( + arn: Swift.String? = nil, + locale: NotificationsClientTypes.LocaleCode? = nil + ) + { + self.arn = arn + self.locale = locale + } +} + +extension NotificationsClientTypes { + + public enum MediaElementType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case image + case sdkUnknown(Swift.String) + + public static var allCases: [MediaElementType] { + return [ + .image + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .image: return "IMAGE" + case let .sdkUnknown(s): return s + } + } + } +} + +extension NotificationsClientTypes { + + /// Describes a media element. + public struct MediaElement: Swift.Sendable { + /// The caption of the media. + /// This member is required. + public var caption: Swift.String? + /// The unique ID for the media. + /// This member is required. + public var mediaId: Swift.String? + /// The type of media. + /// This member is required. + public var type: NotificationsClientTypes.MediaElementType? + /// The url of the media. + /// This member is required. + public var url: Swift.String? + + public init( + caption: Swift.String? = nil, + mediaId: Swift.String? = nil, + type: NotificationsClientTypes.MediaElementType? = nil, + url: Swift.String? = nil + ) + { + self.caption = caption + self.mediaId = mediaId + self.type = type + self.url = url + } + } +} + +extension NotificationsClientTypes { + + /// Describes the components of a notification message. + public struct MessageComponents: Swift.Sendable { + /// A complete summary with all possible relevant information. + public var completeDescription: Swift.String? + /// A list of properties in key-value pairs. Pairs are shown in order of importance from most important to least important. Channels may limit the number of dimensions shown to the notification viewer. Included dimensions, keys, and values are subject to change. + public var dimensions: [NotificationsClientTypes.Dimension]? + /// A sentence long summary. For example, titles or an email subject line. + public var headline: Swift.String? + /// A paragraph long or multiple sentence summary. For example, AWS Chatbot notifications. + public var paragraphSummary: Swift.String? + + public init( + completeDescription: Swift.String? = nil, + dimensions: [NotificationsClientTypes.Dimension]? = nil, + headline: Swift.String? = nil, + paragraphSummary: Swift.String? = nil + ) + { + self.completeDescription = completeDescription + self.dimensions = dimensions + self.headline = headline + self.paragraphSummary = paragraphSummary + } + } +} + +extension NotificationsClientTypes { + + public enum NotificationType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case alert + case announcement + case informational + case warning + case sdkUnknown(Swift.String) + + public static var allCases: [NotificationType] { + return [ + .alert, + .announcement, + .informational, + .warning + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .alert: return "ALERT" + case .announcement: return "ANNOUNCEMENT" + case .informational: return "INFORMATIONAL" + case .warning: return "WARNING" + case let .sdkUnknown(s): return s + } + } + } +} + +extension NotificationsClientTypes { + + public enum SchemaVersion: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case schemaVersion10 + case sdkUnknown(Swift.String) + + public static var allCases: [SchemaVersion] { + return [ + .schemaVersion10 + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .schemaVersion10: return "v1.0" + case let .sdkUnknown(s): return s + } + } + } +} + +extension NotificationsClientTypes { + + /// A resource affected by or closely linked to an event. + public struct Resource: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the resource. At least one id or ARN is required. + public var arn: Swift.String? + /// The URL to the resource's detail page. If a detail page URL is unavailable, it is the URL to an informational page that describes the resource's type. + public var detailUrl: Swift.String? + /// The unique identifier for the resource. At least one id or ARN is required. + public var id: Swift.String? + /// A map of tags assigned to a resource. A tag is a string-to-string map of key-value pairs. + public var tags: [Swift.String]? + + public init( + arn: Swift.String? = nil, + detailUrl: Swift.String? = nil, + id: Swift.String? = nil, + tags: [Swift.String]? = nil + ) + { + self.arn = arn + self.detailUrl = detailUrl + self.id = id + self.tags = tags + } + } +} + +extension NotificationsClientTypes { + + /// Describes the metadata for a source event. For more information, see [Event structure reference](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html) in the Amazon EventBridge User Guide. + public struct SourceEventMetadata: Swift.Sendable { + /// The date and time the source event occurred. This is based on the Source Event. + /// This member is required. + public var eventOccurrenceTime: Foundation.Date? + /// The Region the event originated from. + public var eventOriginRegion: Swift.String? + /// The type of event. For example, an AWS CloudWatch state change. + /// This member is required. + public var eventType: Swift.String? + /// The version of the type of event. + /// This member is required. + public var eventTypeVersion: Swift.String? + /// The Primary AWS account of Source Event + /// This member is required. + public var relatedAccount: Swift.String? + /// A list of resources related to this NotificationEvent. + /// This member is required. + public var relatedResources: [NotificationsClientTypes.Resource]? + /// The AWS servvice the event originates from. For example aws.cloudwatch. + /// This member is required. + public var source: Swift.String? + /// The source event id. + /// This member is required. + public var sourceEventId: Swift.String? + + public init( + eventOccurrenceTime: Foundation.Date? = nil, + eventOriginRegion: Swift.String? = nil, + eventType: Swift.String? = nil, + eventTypeVersion: Swift.String? = nil, + relatedAccount: Swift.String? = nil, + relatedResources: [NotificationsClientTypes.Resource]? = nil, + source: Swift.String? = nil, + sourceEventId: Swift.String? = nil + ) + { + self.eventOccurrenceTime = eventOccurrenceTime + self.eventOriginRegion = eventOriginRegion + self.eventType = eventType + self.eventTypeVersion = eventTypeVersion + self.relatedAccount = relatedAccount + self.relatedResources = relatedResources + self.source = source + self.sourceEventId = sourceEventId + } + } +} + +extension NotificationsClientTypes { + + public enum TextPartType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case localizedText + case plainText + case url + case sdkUnknown(Swift.String) + + public static var allCases: [TextPartType] { + return [ + .localizedText, + .plainText, + .url + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .localizedText: return "LOCALIZED_TEXT" + case .plainText: return "PLAIN_TEXT" + case .url: return "URL" + case let .sdkUnknown(s): return s + } + } + } +} + +extension NotificationsClientTypes { + + /// Describes text information objects containing fields that determine how text part objects are composed. + public struct TextPartValue: Swift.Sendable { + /// A short single line description of the link. Must be hyperlinked with the URL itself. Used for text parts with the type URL. + public var displayText: Swift.String? + /// A map of locales to the text in that locale. + public var textByLocale: [Swift.String: Swift.String]? + /// The type of text part. Determines the usage of all other fields and whether or not they're required. + /// This member is required. + public var type: NotificationsClientTypes.TextPartType? + /// The URL itself. + public var url: Swift.String? + + public init( + displayText: Swift.String? = nil, + textByLocale: [Swift.String: Swift.String]? = nil, + type: NotificationsClientTypes.TextPartType? = nil, + url: Swift.String? = nil + ) + { + self.displayText = displayText + self.textByLocale = textByLocale + self.type = type + self.url = url + } + } +} + +extension NotificationsClientTypes { + + /// A NotificationEvent is a notification-focused representation of an event. They contain semantic information used by Channels to create end-user notifications. + public struct NotificationEventSchema: Swift.Sendable { + /// If the value of aggregationEventType is not NONE, this is the Amazon Resource Event (ARN) of the parent aggregate notification. This is omitted if notification isn't aggregated. + public var aggregateNotificationEventArn: Swift.String? + /// The NotificationConfiguration's aggregation type. + /// + /// * Values: + /// + /// * AGGREGATE + /// + /// * The notification event is an aggregate notification. Aggregate notifications summarize grouped events over a specified time period. + /// + /// + /// + /// + /// * CHILD + /// + /// * Some EventRules are ACTIVE and some are INACTIVE. Any call can be run. + /// + /// + /// + /// + /// * NONE + /// + /// * The notification isn't aggregated. + public var aggregationEventType: NotificationsClientTypes.AggregationEventType? + /// The end time of the event. + public var endTime: Foundation.Date? + /// The assesed nature of the event. + /// + /// * Values: + /// + /// * HEALTHY + /// + /// * All EventRules are ACTIVE and any call can be run. + /// + /// + /// + /// + /// * UNHEALTHY + /// + /// * Some EventRules are ACTIVE and some are INACTIVE. Any call can be run. + public var eventStatus: NotificationsClientTypes.EventStatus? + /// The unique identifier for a NotificationEvent. + /// This member is required. + public var id: Swift.String? + /// A list of media elements. + /// This member is required. + public var media: [NotificationsClientTypes.MediaElement]? + /// Describes the components of a notification message. + /// This member is required. + public var messageComponents: NotificationsClientTypes.MessageComponents? + /// The type of event causing the notification. + /// + /// * Values: + /// + /// * ALERT + /// + /// * A notification about an event where something was triggered, initiated, reopened, deployed, or a threshold was breached. + /// + /// + /// + /// + /// * WARNING + /// + /// * A notification about an event where an issue is about to arise. For example, something is approaching a threshold. + /// + /// + /// + /// + /// * ANNOUNCEMENT + /// + /// * A notification about an important event. For example, a step in a workflow or escalation path or that a workflow was updated. + /// + /// + /// + /// + /// * INFORMATIONAL + /// + /// * A notification about informational messages. For example, recommendations, service announcements, or reminders. + /// This member is required. + public var notificationType: NotificationsClientTypes.NotificationType? + /// The schema version of the Notification Event. + /// This member is required. + public var schemaVersion: NotificationsClientTypes.SchemaVersion? + /// The source event URL. + public var sourceEventDetailUrl: Swift.String? + /// The detailed URL for the source event. + public var sourceEventDetailUrlDisplayText: Swift.String? + /// The source event metadata. + /// This member is required. + public var sourceEventMetadata: NotificationsClientTypes.SourceEventMetadata? + /// The notification event start time. + public var startTime: Foundation.Date? + /// A list of text values. + /// This member is required. + public var textParts: [Swift.String: NotificationsClientTypes.TextPartValue]? + + public init( + aggregateNotificationEventArn: Swift.String? = nil, + aggregationEventType: NotificationsClientTypes.AggregationEventType? = nil, + endTime: Foundation.Date? = nil, + eventStatus: NotificationsClientTypes.EventStatus? = nil, + id: Swift.String? = nil, + media: [NotificationsClientTypes.MediaElement]? = nil, + messageComponents: NotificationsClientTypes.MessageComponents? = nil, + notificationType: NotificationsClientTypes.NotificationType? = nil, + schemaVersion: NotificationsClientTypes.SchemaVersion? = nil, + sourceEventDetailUrl: Swift.String? = nil, + sourceEventDetailUrlDisplayText: Swift.String? = nil, + sourceEventMetadata: NotificationsClientTypes.SourceEventMetadata? = nil, + startTime: Foundation.Date? = nil, + textParts: [Swift.String: NotificationsClientTypes.TextPartValue]? = nil + ) + { + self.aggregateNotificationEventArn = aggregateNotificationEventArn + self.aggregationEventType = aggregationEventType + self.endTime = endTime + self.eventStatus = eventStatus + self.id = id + self.media = media + self.messageComponents = messageComponents + self.notificationType = notificationType + self.schemaVersion = schemaVersion + self.sourceEventDetailUrl = sourceEventDetailUrl + self.sourceEventDetailUrlDisplayText = sourceEventDetailUrlDisplayText + self.sourceEventMetadata = sourceEventMetadata + self.startTime = startTime + self.textParts = textParts + } + } +} + +public struct GetNotificationEventOutput: Swift.Sendable { + /// The ARN of the resource. + /// This member is required. + public var arn: Swift.String? + /// The content of the NotificationEvent. + /// This member is required. + public var content: NotificationsClientTypes.NotificationEventSchema? + /// The creation time of the NotificationEvent. + /// This member is required. + public var creationTime: Foundation.Date? + /// The ARN of the NotificationConfiguration. + /// This member is required. + public var notificationConfigurationArn: Swift.String? + + public init( + arn: Swift.String? = nil, + content: NotificationsClientTypes.NotificationEventSchema? = nil, + creationTime: Foundation.Date? = nil, + notificationConfigurationArn: Swift.String? = nil + ) + { + self.arn = arn + self.content = content + self.creationTime = creationTime + self.notificationConfigurationArn = notificationConfigurationArn + } +} + +public struct ListNotificationConfigurationsInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the Channel to match. + public var channelArn: Swift.String? + /// The matched event source. Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see [Event delivery from AWS services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level) in the Amazon EventBridge User Guide. + public var eventRuleSource: Swift.String? + /// The maximum number of results to be returned in this call. Defaults to 20. + public var maxResults: Swift.Int? + /// The start token for paginated calls. Retrieved from the response of a previous ListEventRules call. Next token uses Base64 encoding. + public var nextToken: Swift.String? + /// The NotificationConfiguration status to match. + /// + /// * Values: + /// + /// * ACTIVE + /// + /// * All EventRules are ACTIVE and any call can be run. + /// + /// + /// + /// + /// * PARTIALLY_ACTIVE + /// + /// * Some EventRules are ACTIVE and some are INACTIVE. Any call can be run. + /// + /// * Any call can be run. + /// + /// + /// + /// + /// * INACTIVE + /// + /// * All EventRules are INACTIVE and any call can be run. + /// + /// + /// + /// + /// * DELETING + /// + /// * This NotificationConfiguration is being deleted. + /// + /// * Only GET and LIST calls can be run. + public var status: NotificationsClientTypes.NotificationConfigurationStatus? + + public init( + channelArn: Swift.String? = nil, + eventRuleSource: Swift.String? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil, + status: NotificationsClientTypes.NotificationConfigurationStatus? = nil + ) + { + self.channelArn = channelArn + self.eventRuleSource = eventRuleSource + self.maxResults = maxResults + self.nextToken = nextToken + self.status = status + } +} + +extension NotificationsClientTypes { + + /// Contains the complete list of fields for a NotificationConfiguration. + public struct NotificationConfigurationStructure: Swift.Sendable { + /// The aggregation preference of the NotificationConfiguration. + /// + /// * Values: + /// + /// * LONG + /// + /// * Aggregate notifications for long periods of time (12 hours). + /// + /// + /// + /// + /// * SHORT + /// + /// * Aggregate notifications for short periods of time (5 minutes). + /// + /// + /// + /// + /// * NONE + /// + /// * Don't aggregate notifications. No delay in delivery. + public var aggregationDuration: NotificationsClientTypes.AggregationDuration? + /// The Amazon Resource Name (ARN) of the resource. + /// This member is required. + public var arn: Swift.String? + /// The creation time of the resource. + /// This member is required. + public var creationTime: Foundation.Date? + /// The description of the NotificationConfiguration. + /// This member is required. + public var description: Swift.String? + /// The name of the NotificationConfiguration. Supports RFC 3986's unreserved characters. + /// This member is required. + public var name: Swift.String? + /// The status of this NotificationConfiguration. The status should always be INACTIVE when part of the CreateNotificationConfiguration response. + /// + /// * Values: + /// + /// * ACTIVE + /// + /// * All EventRules are ACTIVE and any call can be run. + /// + /// + /// + /// + /// * PARTIALLY_ACTIVE + /// + /// * Some EventRules are ACTIVE and some are INACTIVE. + /// + /// * Any call can be run. + /// + /// + /// + /// + /// * INACTIVE + /// + /// * All EventRules are INACTIVE and any call can be run. + /// + /// + /// + /// + /// * DELETING + /// + /// * This NotificationConfiguration is being deleted. Only GET and LIST calls can be run. + /// + /// * Only GET and LIST calls can be run. + /// This member is required. + public var status: NotificationsClientTypes.NotificationConfigurationStatus? + + public init( + aggregationDuration: NotificationsClientTypes.AggregationDuration? = nil, + arn: Swift.String? = nil, + creationTime: Foundation.Date? = nil, + description: Swift.String? = nil, + name: Swift.String? = nil, + status: NotificationsClientTypes.NotificationConfigurationStatus? = nil + ) + { + self.aggregationDuration = aggregationDuration + self.arn = arn + self.creationTime = creationTime + self.description = description + self.name = name + self.status = status + } + } +} + +public struct ListNotificationConfigurationsOutput: Swift.Sendable { + /// A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries. + public var nextToken: Swift.String? + /// The NotificationConfigurations in the account. + /// This member is required. + public var notificationConfigurations: [NotificationsClientTypes.NotificationConfigurationStructure]? + + public init( + nextToken: Swift.String? = nil, + notificationConfigurations: [NotificationsClientTypes.NotificationConfigurationStructure]? = nil + ) + { + self.nextToken = nextToken + self.notificationConfigurations = notificationConfigurations + } +} + +public struct ListNotificationEventsInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the aggregatedNotificationEventArn to match. + public var aggregateNotificationEventArn: Swift.String? + /// Latest time of events to return from this call. + public var endTime: Foundation.Date? + /// Include aggregated child events in the result. + public var includeChildEvents: Swift.Bool? + /// The locale code of the language used for the retrieved NotificationEvent. The default locale is English (en_US). + public var locale: NotificationsClientTypes.LocaleCode? + /// The maximum number of results to be returned in this call. Defaults to 20. + public var maxResults: Swift.Int? + /// The start token for paginated calls. Retrieved from the response of a previous ListEventRules call. Next token uses Base64 encoding. + public var nextToken: Swift.String? + /// The matched event source. Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see [Event delivery from AWS services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level) in the Amazon EventBridge User Guide. + public var source: Swift.String? + /// The earliest time of events to return from this call. + public var startTime: Foundation.Date? + + public init( + aggregateNotificationEventArn: Swift.String? = nil, + endTime: Foundation.Date? = nil, + includeChildEvents: Swift.Bool? = nil, + locale: NotificationsClientTypes.LocaleCode? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil, + source: Swift.String? = nil, + startTime: Foundation.Date? = nil + ) + { + self.aggregateNotificationEventArn = aggregateNotificationEventArn + self.endTime = endTime + self.includeChildEvents = includeChildEvents + self.locale = locale + self.maxResults = maxResults + self.nextToken = nextToken + self.source = source + self.startTime = startTime + } +} + +extension NotificationsClientTypes { + + /// Contains the headline message component. + public struct MessageComponentsSummary: Swift.Sendable { + /// A sentence long summary. For example, titles or an email subject line. + /// This member is required. + public var headline: Swift.String? + + public init( + headline: Swift.String? = nil + ) + { + self.headline = headline + } + } +} + +extension NotificationsClientTypes { + + /// Contains metadata about the event that caused the NotificationEvent. For other specific values, see sourceEventMetadata. + public struct SourceEventMetadataSummary: Swift.Sendable { + /// The Region where the notification originated. Unavailable for aggregated notifications. + public var eventOriginRegion: Swift.String? + /// The event type to match. Must match one of the valid Amazon EventBridge event types. For example, EC2 Instance State-change Notification and AWS CloudWatch Alarm State Change. For more information, see [Event delivery from AWS services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level) in the Amazon EventBridge User Guide. + /// This member is required. + public var eventType: Swift.String? + /// The matched event source. Must match one of the valid EventBridge sources. Only AWS service sourced events are supported. For example, aws.ec2 and aws.cloudwatch. For more information, see [Event delivery from AWS services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level) in the Amazon EventBridge User Guide. + /// This member is required. + public var source: Swift.String? + + public init( + eventOriginRegion: Swift.String? = nil, + eventType: Swift.String? = nil, + source: Swift.String? = nil + ) + { + self.eventOriginRegion = eventOriginRegion + self.eventType = eventType + self.source = source + } + } +} + +extension NotificationsClientTypes { + + /// Describes a short summary and metadata for a notification event. + public struct NotificationEventSummary: Swift.Sendable { + /// The notification event status. + /// + /// * Values: + /// + /// * HEALTHY + /// + /// * All EventRules are ACTIVE and any call can be run. + /// + /// + /// + /// + /// * UNHEALTHY + /// + /// * Some EventRules are ACTIVE and some are INACTIVE. Any call can be run. + /// This member is required. + public var eventStatus: NotificationsClientTypes.EventStatus? + /// The message components of a notification event. + /// This member is required. + public var messageComponents: NotificationsClientTypes.MessageComponentsSummary? + /// The type of event causing the notification. + /// + /// * Values: + /// + /// * ALERT + /// + /// * A notification about an event where something was triggered, initiated, reopened, deployed, or a threshold was breached. + /// + /// + /// + /// + /// * WARNING + /// + /// * A notification about an event where an issue is about to arise. For example, something is approaching a threshold. + /// + /// + /// + /// + /// * ANNOUNCEMENT + /// + /// * A notification about an important event. For example, a step in a workflow or escalation path or that a workflow was updated. + /// + /// + /// + /// + /// * INFORMATIONAL + /// + /// * A notification about informational messages. For example, recommendations, service announcements, or reminders. + /// This member is required. + public var notificationType: NotificationsClientTypes.NotificationType? + /// The schema version of the Notification Event. + /// This member is required. + public var schemaVersion: NotificationsClientTypes.SchemaVersion? + /// The source event metadata. + /// This member is required. + public var sourceEventMetadata: NotificationsClientTypes.SourceEventMetadataSummary? + + public init( + eventStatus: NotificationsClientTypes.EventStatus? = nil, + messageComponents: NotificationsClientTypes.MessageComponentsSummary? = nil, + notificationType: NotificationsClientTypes.NotificationType? = nil, + schemaVersion: NotificationsClientTypes.SchemaVersion? = nil, + sourceEventMetadata: NotificationsClientTypes.SourceEventMetadataSummary? = nil + ) + { + self.eventStatus = eventStatus + self.messageComponents = messageComponents + self.notificationType = notificationType + self.schemaVersion = schemaVersion + self.sourceEventMetadata = sourceEventMetadata + } + } +} + +extension NotificationsClientTypes { + + /// Describes a short summary of a NotificationEvent. This is only used when listing notification events. + public struct NotificationEventOverview: Swift.Sendable { + /// The ARN of the aggregatedNotificationEventArn to match. + public var aggregateNotificationEventArn: Swift.String? + /// The NotificationConfiguration's aggregation type. + /// + /// * Values: + /// + /// * AGGREGATE + /// + /// * The notification event is an aggregate notification. Aggregate notifications summarize grouped events over a specified time period. + /// + /// + /// + /// + /// * CHILD + /// + /// * Some EventRules are ACTIVE and some are INACTIVE. Any call can be run. + /// + /// + /// + /// + /// * NONE + /// + /// * The notification isn't aggregated. + public var aggregationEventType: NotificationsClientTypes.AggregationEventType? + /// The Amazon Resource Name (ARN) of the resource. + /// This member is required. + public var arn: Swift.String? + /// The creation time of the NotificationEvent. + /// This member is required. + public var creationTime: Foundation.Date? + /// The ARN of the NotificationConfiguration. + /// This member is required. + public var notificationConfigurationArn: Swift.String? + /// Refers to a NotificationEventSummary object. Similar in structure to content in the GetNotificationEvent response. + /// This member is required. + public var notificationEvent: NotificationsClientTypes.NotificationEventSummary? + /// The account name containing the NotificationHub. + /// This member is required. + public var relatedAccount: Swift.String? + + public init( + aggregateNotificationEventArn: Swift.String? = nil, + aggregationEventType: NotificationsClientTypes.AggregationEventType? = nil, + arn: Swift.String? = nil, + creationTime: Foundation.Date? = nil, + notificationConfigurationArn: Swift.String? = nil, + notificationEvent: NotificationsClientTypes.NotificationEventSummary? = nil, + relatedAccount: Swift.String? = nil + ) + { + self.aggregateNotificationEventArn = aggregateNotificationEventArn + self.aggregationEventType = aggregationEventType + self.arn = arn + self.creationTime = creationTime + self.notificationConfigurationArn = notificationConfigurationArn + self.notificationEvent = notificationEvent + self.relatedAccount = relatedAccount + } + } +} + +public struct ListNotificationEventsOutput: Swift.Sendable { + /// A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries. + public var nextToken: Swift.String? + /// The list of notification events. + /// This member is required. + public var notificationEvents: [NotificationsClientTypes.NotificationEventOverview]? + + public init( + nextToken: Swift.String? = nil, + notificationEvents: [NotificationsClientTypes.NotificationEventOverview]? = nil + ) + { + self.nextToken = nextToken + self.notificationEvents = notificationEvents + } +} + +public struct ListNotificationHubsInput: Swift.Sendable { + /// The maximum number of records to list in a single response. + public var maxResults: Swift.Int? + /// A pagination token. Set to null to start listing notification hubs from the start. + public var nextToken: Swift.String? + + public init( + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +extension NotificationsClientTypes { + + /// Describes an overview of a NotificationHub. A NotificationHub is an account-level setting used to select the Regions where you want to store, process and replicate your notifications. + public struct NotificationHubOverview: Swift.Sendable { + /// The date and time the resource was created. + /// This member is required. + public var creationTime: Foundation.Date? + /// The most recent time this NotificationHub had an ACTIVE status. + public var lastActivationTime: Foundation.Date? + /// The Region of the resource. + /// This member is required. + public var notificationHubRegion: Swift.String? + /// The status summary of the resource. + /// This member is required. + public var statusSummary: NotificationsClientTypes.NotificationHubStatusSummary? + + public init( + creationTime: Foundation.Date? = nil, + lastActivationTime: Foundation.Date? = nil, + notificationHubRegion: Swift.String? = nil, + statusSummary: NotificationsClientTypes.NotificationHubStatusSummary? = nil + ) + { + self.creationTime = creationTime + self.lastActivationTime = lastActivationTime + self.notificationHubRegion = notificationHubRegion + self.statusSummary = statusSummary + } + } +} + +public struct ListNotificationHubsOutput: Swift.Sendable { + /// A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries. + public var nextToken: Swift.String? + /// The NotificationHubs in the account. + /// This member is required. + public var notificationHubs: [NotificationsClientTypes.NotificationHubOverview]? + + public init( + nextToken: Swift.String? = nil, + notificationHubs: [NotificationsClientTypes.NotificationHubOverview]? = nil + ) + { + self.nextToken = nextToken + self.notificationHubs = notificationHubs + } +} + +public struct ListTagsForResourceInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) to use to list tags. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct ListTagsForResourceOutput: Swift.Sendable { + /// A list of tags for the specified ARN. + public var tags: [Swift.String: Swift.String]? + + public init( + tags: [Swift.String: Swift.String]? = nil + ) + { + self.tags = tags + } +} + +public struct UpdateNotificationConfigurationInput: Swift.Sendable { + /// The status of this NotificationConfiguration. The status should always be INACTIVE when part of the CreateNotificationConfiguration response. + /// + /// * Values: + /// + /// * ACTIVE + /// + /// * All EventRules are ACTIVE and any call can be run. + /// + /// + /// + /// + /// * PARTIALLY_ACTIVE + /// + /// * Some EventRules are ACTIVE and some are INACTIVE. Any call can be run. + /// + /// * Any call can be run. + /// + /// + /// + /// + /// * INACTIVE + /// + /// * All EventRules are INACTIVE and any call can be run. + /// + /// + /// + /// + /// * DELETING + /// + /// * This NotificationConfiguration is being deleted. + /// + /// * Only GET and LIST calls can be run. + public var aggregationDuration: NotificationsClientTypes.AggregationDuration? + /// The Amazon Resource Name (ARN) used to update the NotificationConfiguration. + /// This member is required. + public var arn: Swift.String? + /// The description of the NotificationConfiguration. + public var description: Swift.String? + /// The name of the NotificationConfiguration. + public var name: Swift.String? + + public init( + aggregationDuration: NotificationsClientTypes.AggregationDuration? = nil, + arn: Swift.String? = nil, + description: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.aggregationDuration = aggregationDuration + self.arn = arn + self.description = description + self.name = name + } +} + +public struct UpdateNotificationConfigurationOutput: Swift.Sendable { + /// The ARN used to update the NotificationConfiguration. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct RegisterNotificationHubInput: Swift.Sendable { + /// The Region of the NotificationHub. + /// This member is required. + public var notificationHubRegion: Swift.String? + + public init( + notificationHubRegion: Swift.String? = nil + ) + { + self.notificationHubRegion = notificationHubRegion + } +} + +public struct RegisterNotificationHubOutput: Swift.Sendable { + /// The date the resource was created. + /// This member is required. + public var creationTime: Foundation.Date? + /// The date the resource was last activated. + public var lastActivationTime: Foundation.Date? + /// The Region of the NotificationHub. + /// This member is required. + public var notificationHubRegion: Swift.String? + /// NotificationHub status information. + /// This member is required. + public var statusSummary: NotificationsClientTypes.NotificationHubStatusSummary? + + public init( + creationTime: Foundation.Date? = nil, + lastActivationTime: Foundation.Date? = nil, + notificationHubRegion: Swift.String? = nil, + statusSummary: NotificationsClientTypes.NotificationHubStatusSummary? = nil + ) + { + self.creationTime = creationTime + self.lastActivationTime = lastActivationTime + self.notificationHubRegion = notificationHubRegion + self.statusSummary = statusSummary + } +} + +public struct TagResourceInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) to use to tag a resource. + /// This member is required. + public var arn: Swift.String? + /// A map of tags assigned to a resource. A tag is a string-to-string map of key-value pairs. + /// This member is required. + public var tags: [Swift.String: Swift.String]? + + public init( + arn: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil + ) + { + self.arn = arn + self.tags = tags + } +} + +public struct TagResourceOutput: Swift.Sendable { + + public init() { } +} + +public struct UntagResourceInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) to use to untag a resource. + /// This member is required. + public var arn: Swift.String? + /// The tag keys to use to untag a resource. + /// This member is required. + public var tagKeys: [Swift.String]? + + public init( + arn: Swift.String? = nil, + tagKeys: [Swift.String]? = nil + ) + { + self.arn = arn + self.tagKeys = tagKeys + } +} + +public struct UntagResourceOutput: Swift.Sendable { + + public init() { } +} + +extension AssociateChannelInput { + + static func urlPathProvider(_ value: AssociateChannelInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/channels/associate/\(arn.urlPercentEncoding())" + } +} + +extension CreateEventRuleInput { + + static func urlPathProvider(_ value: CreateEventRuleInput) -> Swift.String? { + return "/event-rules" + } +} + +extension CreateNotificationConfigurationInput { + + static func urlPathProvider(_ value: CreateNotificationConfigurationInput) -> Swift.String? { + return "/notification-configurations" + } +} + +extension DeleteEventRuleInput { + + static func urlPathProvider(_ value: DeleteEventRuleInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/event-rules/\(arn.urlPercentEncoding())" + } +} + +extension DeleteNotificationConfigurationInput { + + static func urlPathProvider(_ value: DeleteNotificationConfigurationInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/notification-configurations/\(arn.urlPercentEncoding())" + } +} + +extension DeregisterNotificationHubInput { + + static func urlPathProvider(_ value: DeregisterNotificationHubInput) -> Swift.String? { + guard let notificationHubRegion = value.notificationHubRegion else { + return nil + } + return "/notification-hubs/\(notificationHubRegion.urlPercentEncoding())" + } +} + +extension DisassociateChannelInput { + + static func urlPathProvider(_ value: DisassociateChannelInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/channels/disassociate/\(arn.urlPercentEncoding())" + } +} + +extension GetEventRuleInput { + + static func urlPathProvider(_ value: GetEventRuleInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/event-rules/\(arn.urlPercentEncoding())" + } +} + +extension GetNotificationConfigurationInput { + + static func urlPathProvider(_ value: GetNotificationConfigurationInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/notification-configurations/\(arn.urlPercentEncoding())" + } +} + +extension GetNotificationEventInput { + + static func urlPathProvider(_ value: GetNotificationEventInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/notification-events/\(arn.urlPercentEncoding())" + } +} + +extension GetNotificationEventInput { + + static func queryItemProvider(_ value: GetNotificationEventInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let locale = value.locale { + let localeQueryItem = Smithy.URIQueryItem(name: "locale".urlPercentEncoding(), value: Swift.String(locale.rawValue).urlPercentEncoding()) + items.append(localeQueryItem) + } + return items + } +} + +extension ListChannelsInput { + + static func urlPathProvider(_ value: ListChannelsInput) -> Swift.String? { + return "/channels" + } +} + +extension ListChannelsInput { + + static func queryItemProvider(_ value: ListChannelsInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + guard let notificationConfigurationArn = value.notificationConfigurationArn else { + let message = "Creating a URL Query Item failed. notificationConfigurationArn is required and must not be nil." + throw Smithy.ClientError.unknownError(message) + } + let notificationConfigurationArnQueryItem = Smithy.URIQueryItem(name: "notificationConfigurationArn".urlPercentEncoding(), value: Swift.String(notificationConfigurationArn).urlPercentEncoding()) + items.append(notificationConfigurationArnQueryItem) + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + return items + } +} + +extension ListEventRulesInput { + + static func urlPathProvider(_ value: ListEventRulesInput) -> Swift.String? { + return "/event-rules" + } +} + +extension ListEventRulesInput { + + static func queryItemProvider(_ value: ListEventRulesInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + guard let notificationConfigurationArn = value.notificationConfigurationArn else { + let message = "Creating a URL Query Item failed. notificationConfigurationArn is required and must not be nil." + throw Smithy.ClientError.unknownError(message) + } + let notificationConfigurationArnQueryItem = Smithy.URIQueryItem(name: "notificationConfigurationArn".urlPercentEncoding(), value: Swift.String(notificationConfigurationArn).urlPercentEncoding()) + items.append(notificationConfigurationArnQueryItem) + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + return items + } +} + +extension ListNotificationConfigurationsInput { + + static func urlPathProvider(_ value: ListNotificationConfigurationsInput) -> Swift.String? { + return "/notification-configurations" + } +} + +extension ListNotificationConfigurationsInput { + + static func queryItemProvider(_ value: ListNotificationConfigurationsInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let channelArn = value.channelArn { + let channelArnQueryItem = Smithy.URIQueryItem(name: "channelArn".urlPercentEncoding(), value: Swift.String(channelArn).urlPercentEncoding()) + items.append(channelArnQueryItem) + } + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let eventRuleSource = value.eventRuleSource { + let eventRuleSourceQueryItem = Smithy.URIQueryItem(name: "eventRuleSource".urlPercentEncoding(), value: Swift.String(eventRuleSource).urlPercentEncoding()) + items.append(eventRuleSourceQueryItem) + } + if let status = value.status { + let statusQueryItem = Smithy.URIQueryItem(name: "status".urlPercentEncoding(), value: Swift.String(status.rawValue).urlPercentEncoding()) + items.append(statusQueryItem) + } + return items + } +} + +extension ListNotificationEventsInput { + + static func urlPathProvider(_ value: ListNotificationEventsInput) -> Swift.String? { + return "/notification-events" + } +} + +extension ListNotificationEventsInput { + + static func queryItemProvider(_ value: ListNotificationEventsInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let includeChildEvents = value.includeChildEvents { + let includeChildEventsQueryItem = Smithy.URIQueryItem(name: "includeChildEvents".urlPercentEncoding(), value: Swift.String(includeChildEvents).urlPercentEncoding()) + items.append(includeChildEventsQueryItem) + } + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let startTime = value.startTime { + let startTimeQueryItem = Smithy.URIQueryItem(name: "startTime".urlPercentEncoding(), value: Swift.String(SmithyTimestamps.TimestampFormatter(format: .dateTime).string(from: startTime)).urlPercentEncoding()) + items.append(startTimeQueryItem) + } + if let endTime = value.endTime { + let endTimeQueryItem = Smithy.URIQueryItem(name: "endTime".urlPercentEncoding(), value: Swift.String(SmithyTimestamps.TimestampFormatter(format: .dateTime).string(from: endTime)).urlPercentEncoding()) + items.append(endTimeQueryItem) + } + if let source = value.source { + let sourceQueryItem = Smithy.URIQueryItem(name: "source".urlPercentEncoding(), value: Swift.String(source).urlPercentEncoding()) + items.append(sourceQueryItem) + } + if let aggregateNotificationEventArn = value.aggregateNotificationEventArn { + let aggregateNotificationEventArnQueryItem = Smithy.URIQueryItem(name: "aggregateNotificationEventArn".urlPercentEncoding(), value: Swift.String(aggregateNotificationEventArn).urlPercentEncoding()) + items.append(aggregateNotificationEventArnQueryItem) + } + if let locale = value.locale { + let localeQueryItem = Smithy.URIQueryItem(name: "locale".urlPercentEncoding(), value: Swift.String(locale.rawValue).urlPercentEncoding()) + items.append(localeQueryItem) + } + return items + } +} + +extension ListNotificationHubsInput { + + static func urlPathProvider(_ value: ListNotificationHubsInput) -> Swift.String? { + return "/notification-hubs" + } +} + +extension ListNotificationHubsInput { + + static func queryItemProvider(_ value: ListNotificationHubsInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + return items + } +} + +extension ListTagsForResourceInput { + + static func urlPathProvider(_ value: ListTagsForResourceInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/tags/\(arn.urlPercentEncoding())" + } +} + +extension RegisterNotificationHubInput { + + static func urlPathProvider(_ value: RegisterNotificationHubInput) -> Swift.String? { + return "/notification-hubs" + } +} + +extension TagResourceInput { + + static func urlPathProvider(_ value: TagResourceInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/tags/\(arn.urlPercentEncoding())" + } +} + +extension UntagResourceInput { + + static func urlPathProvider(_ value: UntagResourceInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/tags/\(arn.urlPercentEncoding())" + } +} + +extension UntagResourceInput { + + static func queryItemProvider(_ value: UntagResourceInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + guard let tagKeys = value.tagKeys else { + let message = "Creating a URL Query Item failed. tagKeys is required and must not be nil." + throw Smithy.ClientError.unknownError(message) + } + tagKeys.forEach { queryItemValue in + let queryItem = Smithy.URIQueryItem(name: "tagKeys".urlPercentEncoding(), value: Swift.String(queryItemValue).urlPercentEncoding()) + items.append(queryItem) + } + return items + } +} + +extension UpdateEventRuleInput { + + static func urlPathProvider(_ value: UpdateEventRuleInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/event-rules/\(arn.urlPercentEncoding())" + } +} + +extension UpdateNotificationConfigurationInput { + + static func urlPathProvider(_ value: UpdateNotificationConfigurationInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/notification-configurations/\(arn.urlPercentEncoding())" + } +} + +extension AssociateChannelInput { + + static func write(value: AssociateChannelInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["notificationConfigurationArn"].write(value.notificationConfigurationArn) + } +} + +extension CreateEventRuleInput { + + static func write(value: CreateEventRuleInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["eventPattern"].write(value.eventPattern) + try writer["eventType"].write(value.eventType) + try writer["notificationConfigurationArn"].write(value.notificationConfigurationArn) + try writer["regions"].writeList(value.regions, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["source"].write(value.source) + } +} + +extension CreateNotificationConfigurationInput { + + static func write(value: CreateNotificationConfigurationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["aggregationDuration"].write(value.aggregationDuration) + try writer["description"].write(value.description) + try writer["name"].write(value.name) + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + } +} + +extension DisassociateChannelInput { + + static func write(value: DisassociateChannelInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["notificationConfigurationArn"].write(value.notificationConfigurationArn) + } +} + +extension RegisterNotificationHubInput { + + static func write(value: RegisterNotificationHubInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["notificationHubRegion"].write(value.notificationHubRegion) + } +} + +extension TagResourceInput { + + static func write(value: TagResourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + } +} + +extension UpdateEventRuleInput { + + static func write(value: UpdateEventRuleInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["eventPattern"].write(value.eventPattern) + try writer["regions"].writeList(value.regions, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + +extension UpdateNotificationConfigurationInput { + + static func write(value: UpdateNotificationConfigurationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["aggregationDuration"].write(value.aggregationDuration) + try writer["description"].write(value.description) + try writer["name"].write(value.name) + } +} + +extension AssociateChannelOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> AssociateChannelOutput { + return AssociateChannelOutput() + } +} + +extension CreateEventRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateEventRuleOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateEventRuleOutput() + value.arn = try reader["arn"].readIfPresent() ?? "" + value.notificationConfigurationArn = try reader["notificationConfigurationArn"].readIfPresent() ?? "" + value.statusSummaryByRegion = try reader["statusSummaryByRegion"].readMapIfPresent(valueReadingClosure: NotificationsClientTypes.EventRuleStatusSummary.read(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) ?? [:] + return value + } +} + +extension CreateNotificationConfigurationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateNotificationConfigurationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateNotificationConfigurationOutput() + value.arn = try reader["arn"].readIfPresent() ?? "" + value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") + return value + } +} + +extension DeleteEventRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteEventRuleOutput { + return DeleteEventRuleOutput() + } +} + +extension DeleteNotificationConfigurationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteNotificationConfigurationOutput { + return DeleteNotificationConfigurationOutput() + } +} + +extension DeregisterNotificationHubOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeregisterNotificationHubOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = DeregisterNotificationHubOutput() + value.notificationHubRegion = try reader["notificationHubRegion"].readIfPresent() ?? "" + value.statusSummary = try reader["statusSummary"].readIfPresent(with: NotificationsClientTypes.NotificationHubStatusSummary.read(from:)) + return value + } +} + +extension DisassociateChannelOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DisassociateChannelOutput { + return DisassociateChannelOutput() + } +} + +extension GetEventRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetEventRuleOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetEventRuleOutput() + value.arn = try reader["arn"].readIfPresent() ?? "" + value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.eventPattern = try reader["eventPattern"].readIfPresent() ?? "" + value.eventType = try reader["eventType"].readIfPresent() ?? "" + value.managedRules = try reader["managedRules"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.notificationConfigurationArn = try reader["notificationConfigurationArn"].readIfPresent() ?? "" + value.regions = try reader["regions"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.source = try reader["source"].readIfPresent() ?? "" + value.statusSummaryByRegion = try reader["statusSummaryByRegion"].readMapIfPresent(valueReadingClosure: NotificationsClientTypes.EventRuleStatusSummary.read(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) ?? [:] + return value + } +} + +extension GetNotificationConfigurationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetNotificationConfigurationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetNotificationConfigurationOutput() + value.aggregationDuration = try reader["aggregationDuration"].readIfPresent() + value.arn = try reader["arn"].readIfPresent() ?? "" + value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.description = try reader["description"].readIfPresent() ?? "" + value.name = try reader["name"].readIfPresent() ?? "" + value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") + return value + } +} + +extension GetNotificationEventOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetNotificationEventOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetNotificationEventOutput() + value.arn = try reader["arn"].readIfPresent() ?? "" + value.content = try reader["content"].readIfPresent(with: NotificationsClientTypes.NotificationEventSchema.read(from:)) + value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.notificationConfigurationArn = try reader["notificationConfigurationArn"].readIfPresent() ?? "" + return value + } +} + +extension ListChannelsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListChannelsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListChannelsOutput() + value.channels = try reader["channels"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.nextToken = try reader["nextToken"].readIfPresent() + return value + } +} + +extension ListEventRulesOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListEventRulesOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListEventRulesOutput() + value.eventRules = try reader["eventRules"].readListIfPresent(memberReadingClosure: NotificationsClientTypes.EventRuleStructure.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.nextToken = try reader["nextToken"].readIfPresent() + return value + } +} + +extension ListNotificationConfigurationsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListNotificationConfigurationsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListNotificationConfigurationsOutput() + value.nextToken = try reader["nextToken"].readIfPresent() + value.notificationConfigurations = try reader["notificationConfigurations"].readListIfPresent(memberReadingClosure: NotificationsClientTypes.NotificationConfigurationStructure.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension ListNotificationEventsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListNotificationEventsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListNotificationEventsOutput() + value.nextToken = try reader["nextToken"].readIfPresent() + value.notificationEvents = try reader["notificationEvents"].readListIfPresent(memberReadingClosure: NotificationsClientTypes.NotificationEventOverview.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension ListNotificationHubsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListNotificationHubsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListNotificationHubsOutput() + value.nextToken = try reader["nextToken"].readIfPresent() + value.notificationHubs = try reader["notificationHubs"].readListIfPresent(memberReadingClosure: NotificationsClientTypes.NotificationHubOverview.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension ListTagsForResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTagsForResourceOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListTagsForResourceOutput() + value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value + } +} + +extension RegisterNotificationHubOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> RegisterNotificationHubOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = RegisterNotificationHubOutput() + value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.lastActivationTime = try reader["lastActivationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.notificationHubRegion = try reader["notificationHubRegion"].readIfPresent() ?? "" + value.statusSummary = try reader["statusSummary"].readIfPresent(with: NotificationsClientTypes.NotificationHubStatusSummary.read(from:)) + return value + } +} + +extension TagResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TagResourceOutput { + return TagResourceOutput() + } +} + +extension UntagResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UntagResourceOutput { + return UntagResourceOutput() + } +} + +extension UpdateEventRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateEventRuleOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateEventRuleOutput() + value.arn = try reader["arn"].readIfPresent() ?? "" + value.notificationConfigurationArn = try reader["notificationConfigurationArn"].readIfPresent() ?? "" + value.statusSummaryByRegion = try reader["statusSummaryByRegion"].readMapIfPresent(valueReadingClosure: NotificationsClientTypes.EventRuleStatusSummary.read(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) ?? [:] + return value + } +} + +extension UpdateNotificationConfigurationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateNotificationConfigurationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateNotificationConfigurationOutput() + value.arn = try reader["arn"].readIfPresent() ?? "" + return value + } +} + +enum AssociateChannelOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateEventRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateNotificationConfigurationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteEventRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteNotificationConfigurationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeregisterNotificationHubOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DisassociateChannelOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetEventRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetNotificationConfigurationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetNotificationEventOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListChannelsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListEventRulesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListNotificationConfigurationsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListNotificationEventsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListNotificationHubsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListTagsForResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum RegisterNotificationHubOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum TagResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UntagResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateEventRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateNotificationConfigurationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +extension ResourceNotFoundException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ResourceNotFoundException { + let reader = baseError.errorBodyReader + var value = ResourceNotFoundException() + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.properties.resourceId = try reader["resourceId"].readIfPresent() ?? "" + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ConflictException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ConflictException { + let reader = baseError.errorBodyReader + var value = ConflictException() + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.properties.resourceId = try reader["resourceId"].readIfPresent() ?? "" + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ValidationException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ValidationException { + let reader = baseError.errorBodyReader + var value = ValidationException() + value.properties.fieldList = try reader["fieldList"].readListIfPresent(memberReadingClosure: NotificationsClientTypes.ValidationExceptionField.read(from:), memberNodeInfo: "member", isFlattened: false) + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.properties.reason = try reader["reason"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension InternalServerException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> InternalServerException { + let reader = baseError.errorBodyReader + var value = InternalServerException() + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ServiceQuotaExceededException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ServiceQuotaExceededException { + let reader = baseError.errorBodyReader + var value = ServiceQuotaExceededException() + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.properties.quotaCode = try reader["quotaCode"].readIfPresent() + value.properties.resourceId = try reader["resourceId"].readIfPresent() + value.properties.resourceType = try reader["resourceType"].readIfPresent() ?? "" + value.properties.serviceCode = try reader["serviceCode"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ThrottlingException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ThrottlingException { + let reader = baseError.errorBodyReader + let httpResponse = baseError.httpResponse + var value = ThrottlingException() + if let retryAfterSecondsHeaderValue = httpResponse.headers.value(for: "Retry-After") { + value.properties.retryAfterSeconds = Swift.Int(retryAfterSecondsHeaderValue) ?? 0 + } + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.properties.quotaCode = try reader["quotaCode"].readIfPresent() + value.properties.serviceCode = try reader["serviceCode"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension AccessDeniedException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> AccessDeniedException { + let reader = baseError.errorBodyReader + var value = AccessDeniedException() + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension NotificationsClientTypes.EventRuleStatusSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.EventRuleStatusSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.EventRuleStatusSummary() + value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") + value.reason = try reader["reason"].readIfPresent() ?? "" + return value + } +} + +extension NotificationsClientTypes.NotificationHubStatusSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.NotificationHubStatusSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.NotificationHubStatusSummary() + value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") + value.reason = try reader["reason"].readIfPresent() ?? "" + return value + } +} + +extension NotificationsClientTypes.NotificationEventSchema { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.NotificationEventSchema { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.NotificationEventSchema() + value.schemaVersion = try reader["schemaVersion"].readIfPresent() ?? .sdkUnknown("") + value.id = try reader["id"].readIfPresent() ?? "" + value.sourceEventMetadata = try reader["sourceEventMetadata"].readIfPresent(with: NotificationsClientTypes.SourceEventMetadata.read(from:)) + value.messageComponents = try reader["messageComponents"].readIfPresent(with: NotificationsClientTypes.MessageComponents.read(from:)) + value.sourceEventDetailUrl = try reader["sourceEventDetailUrl"].readIfPresent() + value.sourceEventDetailUrlDisplayText = try reader["sourceEventDetailUrlDisplayText"].readIfPresent() + value.notificationType = try reader["notificationType"].readIfPresent() ?? .sdkUnknown("") + value.eventStatus = try reader["eventStatus"].readIfPresent() + value.aggregationEventType = try reader["aggregationEventType"].readIfPresent() + value.aggregateNotificationEventArn = try reader["aggregateNotificationEventArn"].readIfPresent() + value.startTime = try reader["startTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.endTime = try reader["endTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.textParts = try reader["textParts"].readMapIfPresent(valueReadingClosure: NotificationsClientTypes.TextPartValue.read(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) ?? [:] + value.media = try reader["media"].readListIfPresent(memberReadingClosure: NotificationsClientTypes.MediaElement.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension NotificationsClientTypes.MediaElement { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.MediaElement { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.MediaElement() + value.mediaId = try reader["mediaId"].readIfPresent() ?? "" + value.type = try reader["type"].readIfPresent() ?? .sdkUnknown("") + value.url = try reader["url"].readIfPresent() ?? "" + value.caption = try reader["caption"].readIfPresent() ?? "" + return value + } +} + +extension NotificationsClientTypes.TextPartValue { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.TextPartValue { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.TextPartValue() + value.type = try reader["type"].readIfPresent() ?? .sdkUnknown("") + value.displayText = try reader["displayText"].readIfPresent() + value.textByLocale = try reader["textByLocale"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.url = try reader["url"].readIfPresent() + return value + } +} + +extension NotificationsClientTypes.MessageComponents { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.MessageComponents { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.MessageComponents() + value.headline = try reader["headline"].readIfPresent() + value.paragraphSummary = try reader["paragraphSummary"].readIfPresent() + value.completeDescription = try reader["completeDescription"].readIfPresent() + value.dimensions = try reader["dimensions"].readListIfPresent(memberReadingClosure: NotificationsClientTypes.Dimension.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension NotificationsClientTypes.Dimension { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.Dimension { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.Dimension() + value.name = try reader["name"].readIfPresent() ?? "" + value.value = try reader["value"].readIfPresent() ?? "" + return value + } +} + +extension NotificationsClientTypes.SourceEventMetadata { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.SourceEventMetadata { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.SourceEventMetadata() + value.eventTypeVersion = try reader["eventTypeVersion"].readIfPresent() ?? "" + value.sourceEventId = try reader["sourceEventId"].readIfPresent() ?? "" + value.eventOriginRegion = try reader["eventOriginRegion"].readIfPresent() + value.relatedAccount = try reader["relatedAccount"].readIfPresent() ?? "" + value.source = try reader["source"].readIfPresent() ?? "" + value.eventOccurrenceTime = try reader["eventOccurrenceTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.eventType = try reader["eventType"].readIfPresent() ?? "" + value.relatedResources = try reader["relatedResources"].readListIfPresent(memberReadingClosure: NotificationsClientTypes.Resource.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension NotificationsClientTypes.Resource { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.Resource { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.Resource() + value.id = try reader["id"].readIfPresent() + value.arn = try reader["arn"].readIfPresent() + value.detailUrl = try reader["detailUrl"].readIfPresent() + value.tags = try reader["tags"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension NotificationsClientTypes.EventRuleStructure { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.EventRuleStructure { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.EventRuleStructure() + value.arn = try reader["arn"].readIfPresent() ?? "" + value.notificationConfigurationArn = try reader["notificationConfigurationArn"].readIfPresent() ?? "" + value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.source = try reader["source"].readIfPresent() ?? "" + value.eventType = try reader["eventType"].readIfPresent() ?? "" + value.eventPattern = try reader["eventPattern"].readIfPresent() ?? "" + value.regions = try reader["regions"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.managedRules = try reader["managedRules"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.statusSummaryByRegion = try reader["statusSummaryByRegion"].readMapIfPresent(valueReadingClosure: NotificationsClientTypes.EventRuleStatusSummary.read(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) ?? [:] + return value + } +} + +extension NotificationsClientTypes.NotificationConfigurationStructure { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.NotificationConfigurationStructure { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.NotificationConfigurationStructure() + value.arn = try reader["arn"].readIfPresent() ?? "" + value.name = try reader["name"].readIfPresent() ?? "" + value.description = try reader["description"].readIfPresent() ?? "" + value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") + value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.aggregationDuration = try reader["aggregationDuration"].readIfPresent() + return value + } +} + +extension NotificationsClientTypes.NotificationEventOverview { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.NotificationEventOverview { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.NotificationEventOverview() + value.arn = try reader["arn"].readIfPresent() ?? "" + value.notificationConfigurationArn = try reader["notificationConfigurationArn"].readIfPresent() ?? "" + value.relatedAccount = try reader["relatedAccount"].readIfPresent() ?? "" + value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.notificationEvent = try reader["notificationEvent"].readIfPresent(with: NotificationsClientTypes.NotificationEventSummary.read(from:)) + value.aggregationEventType = try reader["aggregationEventType"].readIfPresent() + value.aggregateNotificationEventArn = try reader["aggregateNotificationEventArn"].readIfPresent() + return value + } +} + +extension NotificationsClientTypes.NotificationEventSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.NotificationEventSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.NotificationEventSummary() + value.schemaVersion = try reader["schemaVersion"].readIfPresent() ?? .sdkUnknown("") + value.sourceEventMetadata = try reader["sourceEventMetadata"].readIfPresent(with: NotificationsClientTypes.SourceEventMetadataSummary.read(from:)) + value.messageComponents = try reader["messageComponents"].readIfPresent(with: NotificationsClientTypes.MessageComponentsSummary.read(from:)) + value.eventStatus = try reader["eventStatus"].readIfPresent() ?? .sdkUnknown("") + value.notificationType = try reader["notificationType"].readIfPresent() ?? .sdkUnknown("") + return value + } +} + +extension NotificationsClientTypes.MessageComponentsSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.MessageComponentsSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.MessageComponentsSummary() + value.headline = try reader["headline"].readIfPresent() ?? "" + return value + } +} + +extension NotificationsClientTypes.SourceEventMetadataSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.SourceEventMetadataSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.SourceEventMetadataSummary() + value.eventOriginRegion = try reader["eventOriginRegion"].readIfPresent() + value.source = try reader["source"].readIfPresent() ?? "" + value.eventType = try reader["eventType"].readIfPresent() ?? "" + return value + } +} + +extension NotificationsClientTypes.NotificationHubOverview { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.NotificationHubOverview { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.NotificationHubOverview() + value.notificationHubRegion = try reader["notificationHubRegion"].readIfPresent() ?? "" + value.statusSummary = try reader["statusSummary"].readIfPresent(with: NotificationsClientTypes.NotificationHubStatusSummary.read(from:)) + value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.lastActivationTime = try reader["lastActivationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + return value + } +} + +extension NotificationsClientTypes.ValidationExceptionField { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsClientTypes.ValidationExceptionField { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsClientTypes.ValidationExceptionField() + value.name = try reader["name"].readIfPresent() ?? "" + value.message = try reader["message"].readIfPresent() ?? "" + return value + } +} + +public enum NotificationsClientTypes {} diff --git a/Sources/Services/AWSNotifications/Sources/AWSNotifications/NotificationsClient.swift b/Sources/Services/AWSNotifications/Sources/AWSNotifications/NotificationsClient.swift new file mode 100644 index 00000000000..38c2b3ca78e --- /dev/null +++ b/Sources/Services/AWSNotifications/Sources/AWSNotifications/NotificationsClient.swift @@ -0,0 +1,1707 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import Foundation +import class AWSClientRuntime.AWSClientConfigDefaultsProvider +import class AWSClientRuntime.AmzSdkRequestMiddleware +import class AWSClientRuntime.DefaultAWSClientPlugin +import class ClientRuntime.ClientBuilder +import class ClientRuntime.DefaultClientPlugin +import class ClientRuntime.HttpClientConfiguration +import class ClientRuntime.OrchestratorBuilder +import class ClientRuntime.OrchestratorTelemetry +import class ClientRuntime.SdkHttpClient +import class Smithy.ContextBuilder +import class SmithyHTTPAPI.HTTPRequest +import class SmithyHTTPAPI.HTTPResponse +@_spi(SmithyReadWrite) import class SmithyJSON.Writer +import enum AWSClientRuntime.AWSRetryErrorInfoProvider +import enum AWSClientRuntime.AWSRetryMode +import enum ClientRuntime.ClientLogMode +import enum ClientRuntime.DefaultTelemetry +import enum ClientRuntime.OrchestratorMetricsAttributesKeys +import protocol AWSClientRuntime.AWSDefaultClientConfiguration +import protocol AWSClientRuntime.AWSRegionClientConfiguration +import protocol ClientRuntime.Client +import protocol ClientRuntime.DefaultClientConfiguration +import protocol ClientRuntime.DefaultHttpClientConfiguration +import protocol ClientRuntime.HttpInterceptorProvider +import protocol ClientRuntime.IdempotencyTokenGenerator +import protocol ClientRuntime.InterceptorProvider +import protocol ClientRuntime.TelemetryProvider +import protocol Smithy.LogAgent +import protocol SmithyHTTPAPI.HTTPClient +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyIdentity.AWSCredentialIdentityResolver +import protocol SmithyIdentity.BearerTokenIdentityResolver +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyWriter +import struct AWSClientRuntime.AmzSdkInvocationIdMiddleware +import struct AWSClientRuntime.EndpointResolverMiddleware +import struct AWSClientRuntime.UserAgentMiddleware +import struct AWSSDKHTTPAuth.SigV4AuthScheme +import struct ClientRuntime.AuthSchemeMiddleware +@_spi(SmithyReadWrite) import struct ClientRuntime.BodyMiddleware +import struct ClientRuntime.ContentLengthMiddleware +import struct ClientRuntime.ContentTypeMiddleware +@_spi(SmithyReadWrite) import struct ClientRuntime.DeserializeMiddleware +import struct ClientRuntime.LoggerMiddleware +import struct ClientRuntime.QueryItemMiddleware +import struct ClientRuntime.SignerMiddleware +import struct ClientRuntime.URLHostMiddleware +import struct ClientRuntime.URLPathMiddleware +import struct Smithy.Attributes +import struct SmithyIdentity.BearerTokenIdentity +import struct SmithyIdentity.StaticBearerTokenIdentityResolver +import struct SmithyRetries.DefaultRetryStrategy +import struct SmithyRetriesAPI.RetryStrategyOptions +import typealias SmithyHTTPAuthAPI.AuthSchemes + +public class NotificationsClient: ClientRuntime.Client { + public static let clientName = "NotificationsClient" + public static let version = "1.0.46" + let client: ClientRuntime.SdkHttpClient + let config: NotificationsClient.NotificationsClientConfiguration + let serviceName = "Notifications" + + public required init(config: NotificationsClient.NotificationsClientConfiguration) { + client = ClientRuntime.SdkHttpClient(engine: config.httpClientEngine, config: config.httpClientConfiguration) + self.config = config + } + + public convenience init(region: Swift.String) throws { + let config = try NotificationsClient.NotificationsClientConfiguration(region: region) + self.init(config: config) + } + + public convenience required init() async throws { + let config = try await NotificationsClient.NotificationsClientConfiguration() + self.init(config: config) + } +} + +extension NotificationsClient { + public class NotificationsClientConfiguration: AWSClientRuntime.AWSDefaultClientConfiguration & AWSClientRuntime.AWSRegionClientConfiguration & ClientRuntime.DefaultClientConfiguration & ClientRuntime.DefaultHttpClientConfiguration { + public var useFIPS: Swift.Bool? + + public var useDualStack: Swift.Bool? + + public var appID: Swift.String? + + public var awsCredentialIdentityResolver: any SmithyIdentity.AWSCredentialIdentityResolver + + public var awsRetryMode: AWSClientRuntime.AWSRetryMode + + public var maxAttempts: Swift.Int? + + public var region: Swift.String? + + public var signingRegion: Swift.String? + + public var endpointResolver: EndpointResolver + + public var telemetryProvider: ClientRuntime.TelemetryProvider + + public var retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions + + public var clientLogMode: ClientRuntime.ClientLogMode + + public var endpoint: Swift.String? + + public var idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator + + public var httpClientEngine: SmithyHTTPAPI.HTTPClient + + public var httpClientConfiguration: ClientRuntime.HttpClientConfiguration + + public var authSchemes: SmithyHTTPAuthAPI.AuthSchemes? + + public var authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver + + public var bearerTokenIdentityResolver: any SmithyIdentity.BearerTokenIdentityResolver + + public private(set) var interceptorProviders: [ClientRuntime.InterceptorProvider] + + public private(set) var httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider] + + internal let logger: Smithy.LogAgent + + private init(_ useFIPS: Swift.Bool?, _ useDualStack: Swift.Bool?, _ appID: Swift.String?, _ awsCredentialIdentityResolver: any SmithyIdentity.AWSCredentialIdentityResolver, _ awsRetryMode: AWSClientRuntime.AWSRetryMode, _ maxAttempts: Swift.Int?, _ region: Swift.String?, _ signingRegion: Swift.String?, _ endpointResolver: EndpointResolver, _ telemetryProvider: ClientRuntime.TelemetryProvider, _ retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions, _ clientLogMode: ClientRuntime.ClientLogMode, _ endpoint: Swift.String?, _ idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator, _ httpClientEngine: SmithyHTTPAPI.HTTPClient, _ httpClientConfiguration: ClientRuntime.HttpClientConfiguration, _ authSchemes: SmithyHTTPAuthAPI.AuthSchemes?, _ authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver, _ bearerTokenIdentityResolver: any SmithyIdentity.BearerTokenIdentityResolver, _ interceptorProviders: [ClientRuntime.InterceptorProvider], _ httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]) { + self.useFIPS = useFIPS + self.useDualStack = useDualStack + self.appID = appID + self.awsCredentialIdentityResolver = awsCredentialIdentityResolver + self.awsRetryMode = awsRetryMode + self.maxAttempts = maxAttempts + self.region = region + self.signingRegion = signingRegion + self.endpointResolver = endpointResolver + self.telemetryProvider = telemetryProvider + self.retryStrategyOptions = retryStrategyOptions + self.clientLogMode = clientLogMode + self.endpoint = endpoint + self.idempotencyTokenGenerator = idempotencyTokenGenerator + self.httpClientEngine = httpClientEngine + self.httpClientConfiguration = httpClientConfiguration + self.authSchemes = authSchemes + self.authSchemeResolver = authSchemeResolver + self.bearerTokenIdentityResolver = bearerTokenIdentityResolver + self.interceptorProviders = interceptorProviders + self.httpInterceptorProviders = httpInterceptorProviders + self.logger = telemetryProvider.loggerProvider.getLogger(name: NotificationsClient.clientName) + } + + public convenience init(useFIPS: Swift.Bool? = nil, useDualStack: Swift.Bool? = nil, appID: Swift.String? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, awsRetryMode: AWSClientRuntime.AWSRetryMode? = nil, maxAttempts: Swift.Int? = nil, region: Swift.String? = nil, signingRegion: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, telemetryProvider: ClientRuntime.TelemetryProvider? = nil, retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions? = nil, clientLogMode: ClientRuntime.ClientLogMode? = nil, endpoint: Swift.String? = nil, idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator? = nil, httpClientEngine: SmithyHTTPAPI.HTTPClient? = nil, httpClientConfiguration: ClientRuntime.HttpClientConfiguration? = nil, authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil, interceptorProviders: [ClientRuntime.InterceptorProvider]? = nil, httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]? = nil) throws { + self.init(useFIPS, useDualStack, try appID ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try awsCredentialIdentityResolver ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(awsCredentialIdentityResolver), try awsRetryMode ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), maxAttempts, region, signingRegion, try endpointResolver ?? DefaultEndpointResolver(), telemetryProvider ?? ClientRuntime.DefaultTelemetry.provider, try retryStrategyOptions ?? AWSClientConfigDefaultsProvider.retryStrategyOptions(awsRetryMode, maxAttempts), clientLogMode ?? AWSClientConfigDefaultsProvider.clientLogMode(), endpoint, idempotencyTokenGenerator ?? AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), httpClientEngine ?? AWSClientConfigDefaultsProvider.httpClientEngine(), httpClientConfiguration ?? AWSClientConfigDefaultsProvider.httpClientConfiguration(), authSchemes ?? [AWSSDKHTTPAuth.SigV4AuthScheme()], authSchemeResolver ?? DefaultNotificationsAuthSchemeResolver(), bearerTokenIdentityResolver ?? SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), interceptorProviders ?? [], httpInterceptorProviders ?? []) + } + + public convenience init(useFIPS: Swift.Bool? = nil, useDualStack: Swift.Bool? = nil, appID: Swift.String? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, awsRetryMode: AWSClientRuntime.AWSRetryMode? = nil, maxAttempts: Swift.Int? = nil, region: Swift.String? = nil, signingRegion: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, telemetryProvider: ClientRuntime.TelemetryProvider? = nil, retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions? = nil, clientLogMode: ClientRuntime.ClientLogMode? = nil, endpoint: Swift.String? = nil, idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator? = nil, httpClientEngine: SmithyHTTPAPI.HTTPClient? = nil, httpClientConfiguration: ClientRuntime.HttpClientConfiguration? = nil, authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil, interceptorProviders: [ClientRuntime.InterceptorProvider]? = nil, httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]? = nil) async throws { + self.init(useFIPS, useDualStack, try appID ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try awsCredentialIdentityResolver ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(awsCredentialIdentityResolver), try awsRetryMode ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), maxAttempts, try await AWSClientRuntime.AWSClientConfigDefaultsProvider.region(region), try await AWSClientRuntime.AWSClientConfigDefaultsProvider.region(region), try endpointResolver ?? DefaultEndpointResolver(), telemetryProvider ?? ClientRuntime.DefaultTelemetry.provider, try retryStrategyOptions ?? AWSClientConfigDefaultsProvider.retryStrategyOptions(awsRetryMode, maxAttempts), clientLogMode ?? AWSClientConfigDefaultsProvider.clientLogMode(), endpoint, idempotencyTokenGenerator ?? AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), httpClientEngine ?? AWSClientConfigDefaultsProvider.httpClientEngine(), httpClientConfiguration ?? AWSClientConfigDefaultsProvider.httpClientConfiguration(), authSchemes ?? [AWSSDKHTTPAuth.SigV4AuthScheme()], authSchemeResolver ?? DefaultNotificationsAuthSchemeResolver(), bearerTokenIdentityResolver ?? SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), interceptorProviders ?? [], httpInterceptorProviders ?? []) + } + + public convenience required init() async throws { + try await self.init(useFIPS: nil, useDualStack: nil, appID: nil, awsCredentialIdentityResolver: nil, awsRetryMode: nil, maxAttempts: nil, region: nil, signingRegion: nil, endpointResolver: nil, telemetryProvider: nil, retryStrategyOptions: nil, clientLogMode: nil, endpoint: nil, idempotencyTokenGenerator: nil, httpClientEngine: nil, httpClientConfiguration: nil, authSchemes: nil, authSchemeResolver: nil, bearerTokenIdentityResolver: nil, interceptorProviders: nil, httpInterceptorProviders: nil) + } + + public convenience init(region: String) throws { + self.init(nil, nil, try AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(), try AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), nil, region, region, try DefaultEndpointResolver(), ClientRuntime.DefaultTelemetry.provider, try AWSClientConfigDefaultsProvider.retryStrategyOptions(), AWSClientConfigDefaultsProvider.clientLogMode(), nil, AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), AWSClientConfigDefaultsProvider.httpClientEngine(), AWSClientConfigDefaultsProvider.httpClientConfiguration(), [AWSSDKHTTPAuth.SigV4AuthScheme()], DefaultNotificationsAuthSchemeResolver(), SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), [], []) + } + + public var partitionID: String? { + return "\(NotificationsClient.clientName) - \(region ?? "")" + } + public func addInterceptorProvider(_ provider: ClientRuntime.InterceptorProvider) { + self.interceptorProviders.append(provider) + } + + public func addInterceptorProvider(_ provider: ClientRuntime.HttpInterceptorProvider) { + self.httpInterceptorProviders.append(provider) + } + + } + + public static func builder() -> ClientRuntime.ClientBuilder { + return ClientRuntime.ClientBuilder(defaultPlugins: [ + ClientRuntime.DefaultClientPlugin(), + AWSClientRuntime.DefaultAWSClientPlugin(clientName: self.clientName), + DefaultAWSAuthSchemePlugin() + ]) + } +} + +extension NotificationsClient { + /// Performs the `AssociateChannel` operation on the `Notifications` service. + /// + /// Associates a delivery [Channel](https://docs.aws.amazon.com/notifications/latest/userguide/managing-delivery-channels.html) with a particular NotificationConfiguration. Supported Channels include AWS Chatbot, the AWS Console Mobile Application, and emails (notifications-contacts). + /// + /// - Parameter AssociateChannelInput : [no documentation found] + /// + /// - Returns: `AssociateChannelOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ServiceQuotaExceededException` : Request would cause a service quota to be exceeded. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func associateChannel(input: AssociateChannelInput) async throws -> AssociateChannelOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "associateChannel") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(AssociateChannelInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: AssociateChannelInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(AssociateChannelOutput.httpOutput(from:), AssociateChannelOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "AssociateChannel") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `CreateEventRule` operation on the `Notifications` service. + /// + /// Creates an [EventRule](https://docs.aws.amazon.com/notifications/latest/userguide/glossary.html) that is associated with a specified Notification Configuration. + /// + /// - Parameter CreateEventRuleInput : [no documentation found] + /// + /// - Returns: `CreateEventRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ServiceQuotaExceededException` : Request would cause a service quota to be exceeded. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func createEventRule(input: CreateEventRuleInput) async throws -> CreateEventRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createEventRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateEventRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateEventRuleInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateEventRuleOutput.httpOutput(from:), CreateEventRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateEventRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `CreateNotificationConfiguration` operation on the `Notifications` service. + /// + /// Creates a new NotificationConfiguration. + /// + /// - Parameter CreateNotificationConfigurationInput : [no documentation found] + /// + /// - Returns: `CreateNotificationConfigurationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ServiceQuotaExceededException` : Request would cause a service quota to be exceeded. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func createNotificationConfiguration(input: CreateNotificationConfigurationInput) async throws -> CreateNotificationConfigurationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createNotificationConfiguration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateNotificationConfigurationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateNotificationConfigurationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateNotificationConfigurationOutput.httpOutput(from:), CreateNotificationConfigurationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateNotificationConfiguration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeleteEventRule` operation on the `Notifications` service. + /// + /// Deletes an EventRule. + /// + /// - Parameter DeleteEventRuleInput : [no documentation found] + /// + /// - Returns: `DeleteEventRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func deleteEventRule(input: DeleteEventRuleInput) async throws -> DeleteEventRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteEventRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteEventRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteEventRuleOutput.httpOutput(from:), DeleteEventRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteEventRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeleteNotificationConfiguration` operation on the `Notifications` service. + /// + /// Deletes a NotificationConfiguration. + /// + /// - Parameter DeleteNotificationConfigurationInput : [no documentation found] + /// + /// - Returns: `DeleteNotificationConfigurationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func deleteNotificationConfiguration(input: DeleteNotificationConfigurationInput) async throws -> DeleteNotificationConfigurationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteNotificationConfiguration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteNotificationConfigurationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteNotificationConfigurationOutput.httpOutput(from:), DeleteNotificationConfigurationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteNotificationConfiguration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeregisterNotificationHub` operation on the `Notifications` service. + /// + /// Deregisters a NotificationHub in the specified Region. You can't deregister the last NotificationHub in the account. NotificationEvents stored in the deregistered NotificationHub are no longer be visible. Recreating a new NotificationHub in the same Region restores access to those NotificationEvents. + /// + /// - Parameter DeregisterNotificationHubInput : [no documentation found] + /// + /// - Returns: `DeregisterNotificationHubOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func deregisterNotificationHub(input: DeregisterNotificationHubInput) async throws -> DeregisterNotificationHubOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deregisterNotificationHub") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeregisterNotificationHubInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeregisterNotificationHubOutput.httpOutput(from:), DeregisterNotificationHubOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeregisterNotificationHub") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DisassociateChannel` operation on the `Notifications` service. + /// + /// Disassociates a Channel from a specified NotificationConfiguration. Supported Channels include AWS Chatbot, the AWS Console Mobile Application, and emails (notifications-contacts). + /// + /// - Parameter DisassociateChannelInput : [no documentation found] + /// + /// - Returns: `DisassociateChannelOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func disassociateChannel(input: DisassociateChannelInput) async throws -> DisassociateChannelOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "disassociateChannel") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DisassociateChannelInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DisassociateChannelInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DisassociateChannelOutput.httpOutput(from:), DisassociateChannelOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DisassociateChannel") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetEventRule` operation on the `Notifications` service. + /// + /// Returns a specified EventRule. + /// + /// - Parameter GetEventRuleInput : [no documentation found] + /// + /// - Returns: `GetEventRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func getEventRule(input: GetEventRuleInput) async throws -> GetEventRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getEventRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetEventRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetEventRuleOutput.httpOutput(from:), GetEventRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetEventRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetNotificationConfiguration` operation on the `Notifications` service. + /// + /// Returns a specified NotificationConfiguration. + /// + /// - Parameter GetNotificationConfigurationInput : [no documentation found] + /// + /// - Returns: `GetNotificationConfigurationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func getNotificationConfiguration(input: GetNotificationConfigurationInput) async throws -> GetNotificationConfigurationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getNotificationConfiguration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetNotificationConfigurationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetNotificationConfigurationOutput.httpOutput(from:), GetNotificationConfigurationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetNotificationConfiguration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetNotificationEvent` operation on the `Notifications` service. + /// + /// Returns a specified NotificationEvent. User Notifications stores notifications in the individual Regions you register as notification hubs and the Region of the source event rule. GetNotificationEvent only returns notifications stored in the same Region in which the action is called. User Notifications doesn't backfill notifications to new Regions selected as notification hubs. For this reason, we recommend that you make calls in your oldest registered notification hub. For more information, see [Notification hubs](https://docs.aws.amazon.com/notifications/latest/userguide/notification-hubs.html) in the AWS User Notifications User Guide. + /// + /// - Parameter GetNotificationEventInput : [no documentation found] + /// + /// - Returns: `GetNotificationEventOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func getNotificationEvent(input: GetNotificationEventInput) async throws -> GetNotificationEventOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getNotificationEvent") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetNotificationEventInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(GetNotificationEventInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetNotificationEventOutput.httpOutput(from:), GetNotificationEventOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetNotificationEvent") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListChannels` operation on the `Notifications` service. + /// + /// Returns a list of Channels for a NotificationConfiguration. + /// + /// - Parameter ListChannelsInput : [no documentation found] + /// + /// - Returns: `ListChannelsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func listChannels(input: ListChannelsInput) async throws -> ListChannelsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listChannels") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListChannelsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListChannelsInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListChannelsOutput.httpOutput(from:), ListChannelsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListChannels") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListEventRules` operation on the `Notifications` service. + /// + /// Returns a list of EventRules according to specified filters, in reverse chronological order (newest first). + /// + /// - Parameter ListEventRulesInput : [no documentation found] + /// + /// - Returns: `ListEventRulesOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func listEventRules(input: ListEventRulesInput) async throws -> ListEventRulesOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listEventRules") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListEventRulesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListEventRulesInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListEventRulesOutput.httpOutput(from:), ListEventRulesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListEventRules") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListNotificationConfigurations` operation on the `Notifications` service. + /// + /// Returns a list of abbreviated NotificationConfigurations according to specified filters, in reverse chronological order (newest first). + /// + /// - Parameter ListNotificationConfigurationsInput : [no documentation found] + /// + /// - Returns: `ListNotificationConfigurationsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func listNotificationConfigurations(input: ListNotificationConfigurationsInput) async throws -> ListNotificationConfigurationsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listNotificationConfigurations") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListNotificationConfigurationsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListNotificationConfigurationsInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListNotificationConfigurationsOutput.httpOutput(from:), ListNotificationConfigurationsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListNotificationConfigurations") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListNotificationEvents` operation on the `Notifications` service. + /// + /// Returns a list of NotificationEvents according to specified filters, in reverse chronological order (newest first). User Notifications stores notifications in the individual Regions you register as notification hubs and the Region of the source event rule. ListNotificationEvents only returns notifications stored in the same Region in which the action is called. User Notifications doesn't backfill notifications to new Regions selected as notification hubs. For this reason, we recommend that you make calls in your oldest registered notification hub. For more information, see [Notification hubs](https://docs.aws.amazon.com/notifications/latest/userguide/notification-hubs.html) in the AWS User Notifications User Guide. + /// + /// - Parameter ListNotificationEventsInput : [no documentation found] + /// + /// - Returns: `ListNotificationEventsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func listNotificationEvents(input: ListNotificationEventsInput) async throws -> ListNotificationEventsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listNotificationEvents") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListNotificationEventsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListNotificationEventsInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListNotificationEventsOutput.httpOutput(from:), ListNotificationEventsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListNotificationEvents") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListNotificationHubs` operation on the `Notifications` service. + /// + /// Returns a list of NotificationHubs. + /// + /// - Parameter ListNotificationHubsInput : [no documentation found] + /// + /// - Returns: `ListNotificationHubsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func listNotificationHubs(input: ListNotificationHubsInput) async throws -> ListNotificationHubsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listNotificationHubs") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListNotificationHubsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListNotificationHubsInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListNotificationHubsOutput.httpOutput(from:), ListNotificationHubsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListNotificationHubs") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListTagsForResource` operation on the `Notifications` service. + /// + /// Returns a list of tags for a specified Amazon Resource Name (ARN). For more information, see [Tagging your AWS resources](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html) in the Tagging AWS Resources User Guide. This is only supported for NotificationConfigurations. + /// + /// - Parameter ListTagsForResourceInput : [no documentation found] + /// + /// - Returns: `ListTagsForResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func listTagsForResource(input: ListTagsForResourceInput) async throws -> ListTagsForResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listTagsForResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListTagsForResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListTagsForResourceOutput.httpOutput(from:), ListTagsForResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListTagsForResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `RegisterNotificationHub` operation on the `Notifications` service. + /// + /// Registers a NotificationHub in the specified Region. There is a maximum of one NotificationHub per Region. You can have a maximum of 3 NotificationHubs at a time. + /// + /// - Parameter RegisterNotificationHubInput : [no documentation found] + /// + /// - Returns: `RegisterNotificationHubOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ServiceQuotaExceededException` : Request would cause a service quota to be exceeded. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func registerNotificationHub(input: RegisterNotificationHubInput) async throws -> RegisterNotificationHubOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "registerNotificationHub") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(RegisterNotificationHubInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: RegisterNotificationHubInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(RegisterNotificationHubOutput.httpOutput(from:), RegisterNotificationHubOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "RegisterNotificationHub") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `TagResource` operation on the `Notifications` service. + /// + /// Tags the resource with a tag key and value. For more information, see [Tagging your AWS resources](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html) in the Tagging AWS Resources User Guide. This is only supported for NotificationConfigurations. + /// + /// - Parameter TagResourceInput : [no documentation found] + /// + /// - Returns: `TagResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func tagResource(input: TagResourceInput) async throws -> TagResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "tagResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(TagResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: TagResourceInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(TagResourceOutput.httpOutput(from:), TagResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "TagResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UntagResource` operation on the `Notifications` service. + /// + /// Untags a resource with a specified Amazon Resource Name (ARN). For more information, see [Tagging your AWS resources](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html) in the Tagging AWS Resources User Guide. + /// + /// - Parameter UntagResourceInput : [no documentation found] + /// + /// - Returns: `UntagResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func untagResource(input: UntagResourceInput) async throws -> UntagResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "untagResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UntagResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(UntagResourceInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UntagResourceOutput.httpOutput(from:), UntagResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UntagResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UpdateEventRule` operation on the `Notifications` service. + /// + /// Updates an existing EventRule. + /// + /// - Parameter UpdateEventRuleInput : [no documentation found] + /// + /// - Returns: `UpdateEventRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func updateEventRule(input: UpdateEventRuleInput) async throws -> UpdateEventRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .put) + .withServiceName(value: serviceName) + .withOperation(value: "updateEventRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateEventRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateEventRuleInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateEventRuleOutput.httpOutput(from:), UpdateEventRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateEventRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UpdateNotificationConfiguration` operation on the `Notifications` service. + /// + /// Updates a NotificationConfiguration. + /// + /// - Parameter UpdateNotificationConfigurationInput : [no documentation found] + /// + /// - Returns: `UpdateNotificationConfigurationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : User does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : This exception is thrown when the notification event fails validation. + public func updateNotificationConfiguration(input: UpdateNotificationConfigurationInput) async throws -> UpdateNotificationConfigurationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .put) + .withServiceName(value: serviceName) + .withOperation(value: "updateNotificationConfiguration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateNotificationConfigurationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateNotificationConfigurationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateNotificationConfigurationOutput.httpOutput(from:), UpdateNotificationConfigurationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Notifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateNotificationConfiguration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + +} diff --git a/Sources/Services/AWSNotifications/Sources/AWSNotifications/Plugins.swift b/Sources/Services/AWSNotifications/Sources/AWSNotifications/Plugins.swift new file mode 100644 index 00000000000..452ecc6e636 --- /dev/null +++ b/Sources/Services/AWSNotifications/Sources/AWSNotifications/Plugins.swift @@ -0,0 +1,82 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class AWSClientRuntime.AWSClientConfigDefaultsProvider +import protocol ClientRuntime.ClientConfiguration +import protocol ClientRuntime.Plugin +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyIdentity.AWSCredentialIdentityResolver +import protocol SmithyIdentity.BearerTokenIdentityResolver +import struct AWSSDKHTTPAuth.SigV4AuthScheme +import struct SmithyIdentity.BearerTokenIdentity +import struct SmithyIdentity.StaticBearerTokenIdentityResolver +import typealias SmithyHTTPAuthAPI.AuthSchemes + +public class NotificationsClientEndpointPlugin: Plugin { + private var endpointResolver: EndpointResolver + + public init(endpointResolver: EndpointResolver) { + self.endpointResolver = endpointResolver + } + + public convenience init() throws { + self.init(endpointResolver: try DefaultEndpointResolver()) + } + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? NotificationsClient.NotificationsClientConfiguration { + config.endpointResolver = self.endpointResolver + } + } +} + +public class DefaultAWSAuthSchemePlugin: ClientRuntime.Plugin { + + public init() {} + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? NotificationsClient.NotificationsClientConfiguration { + config.authSchemeResolver = DefaultNotificationsAuthSchemeResolver() + config.authSchemes = [AWSSDKHTTPAuth.SigV4AuthScheme()] + config.awsCredentialIdentityResolver = try AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver() + config.bearerTokenIdentityResolver = SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")) + } + } +} + +public class NotificationsClientAuthSchemePlugin: ClientRuntime.Plugin { + private var authSchemes: SmithyHTTPAuthAPI.AuthSchemes? + private var authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? + private var awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? + private var bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? + + public init(authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: NotificationsAuthSchemeResolver? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil) { + self.authSchemeResolver = authSchemeResolver + self.authSchemes = authSchemes + self.awsCredentialIdentityResolver = awsCredentialIdentityResolver + self.bearerTokenIdentityResolver = bearerTokenIdentityResolver + } + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? NotificationsClient.NotificationsClientConfiguration { + if (self.authSchemes != nil) { + config.authSchemes = self.authSchemes + } + if (self.authSchemeResolver != nil) { + config.authSchemeResolver = self.authSchemeResolver! + } + if (self.awsCredentialIdentityResolver != nil) { + config.awsCredentialIdentityResolver = self.awsCredentialIdentityResolver! + } + if (self.bearerTokenIdentityResolver != nil) { + config.bearerTokenIdentityResolver = self.bearerTokenIdentityResolver! + } + } + } +} diff --git a/Sources/Services/AWSNotifications/Tests/AWSNotificationsTests/EndpointResolverTest.swift b/Sources/Services/AWSNotifications/Tests/AWSNotificationsTests/EndpointResolverTest.swift new file mode 100644 index 00000000000..c2b52fe9cf8 --- /dev/null +++ b/Sources/Services/AWSNotifications/Tests/AWSNotificationsTests/EndpointResolverTest.swift @@ -0,0 +1,342 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +@testable import AWSNotifications +import XCTest +import enum ClientRuntime.EndpointError +import enum SmithyTestUtil.TestInitializer +import struct SmithyHTTPAPI.Endpoint +import struct SmithyHTTPAPI.Headers + +class EndpointResolverTest: XCTestCase { + + override class func setUp() { + SmithyTestUtil.TestInitializer.initialize() + } + + /// For custom endpoint with region not set and fips disabled + func testResolve1() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://example.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with fips enabled + func testResolve2() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: FIPS and custom endpoint are not supported", message) + default: + XCTFail() + } + } + } + + /// For region us-east-1 with FIPS enabled and DualStack enabled + func testResolve3() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-fips.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack enabled + func testResolve4() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-northwest-1 with FIPS enabled and DualStack enabled + func testResolve5() throws { + let endpointParams = EndpointParams( + region: "cn-northwest-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-fips.cn-northwest-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-northwest-1 with FIPS disabled and DualStack enabled + func testResolve6() throws { + let endpointParams = EndpointParams( + region: "cn-northwest-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications.cn-northwest-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-west-1 with FIPS enabled and DualStack enabled + func testResolve7() throws { + let endpointParams = EndpointParams( + region: "us-gov-west-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-fips.us-gov-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-west-1 with FIPS disabled and DualStack enabled + func testResolve8() throws { + let endpointParams = EndpointParams( + region: "us-gov-west-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications.us-gov-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS enabled and DualStack enabled + func testResolve9() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-fips.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS disabled and DualStack enabled + func testResolve10() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS enabled and DualStack enabled + func testResolve11() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-fips.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS disabled and DualStack enabled + func testResolve12() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-isoe-west-1 with FIPS enabled and DualStack enabled + func testResolve13() throws { + let endpointParams = EndpointParams( + region: "eu-isoe-west-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-fips.eu-isoe-west-1.cloud.adc-e.uk", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-isoe-west-1 with FIPS disabled and DualStack enabled + func testResolve14() throws { + let endpointParams = EndpointParams( + region: "eu-isoe-west-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications.eu-isoe-west-1.cloud.adc-e.uk", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isof-south-1 with FIPS enabled and DualStack enabled + func testResolve15() throws { + let endpointParams = EndpointParams( + region: "us-isof-south-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-fips.us-isof-south-1.csp.hci.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isof-south-1 with FIPS disabled and DualStack enabled + func testResolve16() throws { + let endpointParams = EndpointParams( + region: "us-isof-south-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications.us-isof-south-1.csp.hci.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// Missing region + func testResolve17() throws { + let endpointParams = EndpointParams( + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: Missing Region", message) + default: + XCTFail() + } + } + } + +} diff --git a/Sources/Services/AWSNotificationsContacts/Package.swift.txt b/Sources/Services/AWSNotificationsContacts/Package.swift.txt new file mode 100644 index 00000000000..a7f899d9119 --- /dev/null +++ b/Sources/Services/AWSNotificationsContacts/Package.swift.txt @@ -0,0 +1,96 @@ +// swift-tools-version: 5.9.0 + +import PackageDescription + +let package = Package( + name: "AWSNotificationsContacts", + platforms: [ + .macOS(.v10_15), .iOS(.v13) + ], + products: [ + .library(name: "AWSNotificationsContacts", targets: ["AWSNotificationsContacts"]) + ], + dependencies: [ + .package( + id: "aws-sdk-swift.AWSClientRuntime", + exact: "0.0.1" + ), + .package( + id: "aws-sdk-swift.AWSSDKHTTPAuth", + exact: "0.0.1" + ), + .package( + url: "https://github.com/smithy-lang/smithy-swift", + exact: "0.0.1" + ), + ], + targets: [ + .target( + name: "AWSNotificationsContacts", + dependencies: [ + .product( + name: "AWSClientRuntime", + package: "aws-sdk-swift.AWSClientRuntime" + ), + .product( + name: "AWSSDKHTTPAuth", + package: "aws-sdk-swift.AWSSDKHTTPAuth" + ), + .product( + name: "SmithyHTTPAuthAPI", + package: "smithy-swift" + ), + .product( + name: "Smithy", + package: "smithy-swift" + ), + .product( + name: "ClientRuntime", + package: "smithy-swift" + ), + .product( + name: "SmithyHTTPAPI", + package: "smithy-swift" + ), + .product( + name: "SmithyJSON", + package: "smithy-swift" + ), + .product( + name: "SmithyReadWrite", + package: "smithy-swift" + ), + .product( + name: "SmithyTimestamps", + package: "smithy-swift" + ), + .product( + name: "SmithyIdentity", + package: "smithy-swift" + ), + .product( + name: "SmithyRetriesAPI", + package: "smithy-swift" + ), + .product( + name: "SmithyRetries", + package: "smithy-swift" + ), + .product( + name: "SmithyTestUtil", + package: "smithy-swift" + ), + ] + ), + .testTarget( + name: "AWSNotificationsContactsTests", + dependencies: [ + "AWSNotificationsContacts", + .product( + name: "SmithyTestUtil", + package: "smithy-swift" + ), + ] + ) + ] +) diff --git a/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/AuthSchemeResolver.swift b/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/AuthSchemeResolver.swift new file mode 100644 index 00000000000..28d2512747d --- /dev/null +++ b/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/AuthSchemeResolver.swift @@ -0,0 +1,56 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class Smithy.Context +import enum Smithy.ClientError +import enum SmithyHTTPAuthAPI.SigningPropertyKeys +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyHTTPAuthAPI.AuthSchemeResolverParameters +import struct SmithyHTTPAuthAPI.AuthOption + +public struct NotificationsContactsAuthSchemeResolverParameters: SmithyHTTPAuthAPI.AuthSchemeResolverParameters { + public let operation: Swift.String + // Region is used for SigV4 auth scheme + public let region: Swift.String? +} + +public protocol NotificationsContactsAuthSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver { + // Intentionally empty. + // This is the parent protocol that all auth scheme resolver implementations of + // the service NotificationsContacts must conform to. +} + +public struct DefaultNotificationsContactsAuthSchemeResolver: NotificationsContactsAuthSchemeResolver { + + public func resolveAuthScheme(params: SmithyHTTPAuthAPI.AuthSchemeResolverParameters) throws -> [SmithyHTTPAuthAPI.AuthOption] { + var validAuthOptions = [SmithyHTTPAuthAPI.AuthOption]() + guard let serviceParams = params as? NotificationsContactsAuthSchemeResolverParameters else { + throw Smithy.ClientError.authError("Service specific auth scheme parameters type must be passed to auth scheme resolver.") + } + switch serviceParams.operation { + default: + var sigV4Option = SmithyHTTPAuthAPI.AuthOption(schemeID: "aws.auth#sigv4") + sigV4Option.signingProperties.set(key: SmithyHTTPAuthAPI.SigningPropertyKeys.signingName, value: "notifications-contacts") + guard let region = serviceParams.region else { + throw Smithy.ClientError.authError("Missing region in auth scheme parameters for SigV4 auth scheme.") + } + sigV4Option.signingProperties.set(key: SmithyHTTPAuthAPI.SigningPropertyKeys.signingRegion, value: region) + validAuthOptions.append(sigV4Option) + } + return validAuthOptions + } + + public func constructParameters(context: Smithy.Context) throws -> SmithyHTTPAuthAPI.AuthSchemeResolverParameters { + guard let opName = context.getOperation() else { + throw Smithy.ClientError.dataNotFound("Operation name not configured in middleware context for auth scheme resolver params construction.") + } + let opRegion = context.getRegion() + return NotificationsContactsAuthSchemeResolverParameters(operation: opName, region: opRegion) + } +} diff --git a/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Endpoints.swift b/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Endpoints.swift new file mode 100644 index 00000000000..f10c594045e --- /dev/null +++ b/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Endpoints.swift @@ -0,0 +1,68 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class ClientRuntime.EndpointsRequestContext +import let AWSClientRuntime.awsPartitionJSON +import protocol ClientRuntime.EndpointsRequestContextProviding +import struct ClientRuntime.DefaultEndpointResolver +import struct ClientRuntime.StaticEndpointResolver +import struct SmithyHTTPAPI.Endpoint + +public struct EndpointParams { + /// Override the endpoint used to send this request + public let endpoint: Swift.String? + /// The AWS region used to dispatch the request. + public let region: Swift.String? + /// 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. + public let useFIPS: Swift.Bool + + public init( + endpoint: Swift.String? = nil, + region: Swift.String? = nil, + useFIPS: Swift.Bool = false + ) + { + self.endpoint = endpoint + self.region = region + self.useFIPS = useFIPS + } +} + +extension EndpointParams: ClientRuntime.EndpointsRequestContextProviding { + + public var context: ClientRuntime.EndpointsRequestContext { + get throws { + let context = try ClientRuntime.EndpointsRequestContext() + try context.add(name: "Endpoint", value: self.endpoint) + try context.add(name: "Region", value: self.region) + try context.add(name: "UseFIPS", value: self.useFIPS) + return context + } + } +} + +public protocol EndpointResolver { + func resolve(params: EndpointParams) throws -> SmithyHTTPAPI.Endpoint +} + +typealias DefaultEndpointResolver = ClientRuntime.DefaultEndpointResolver + +extension DefaultEndpointResolver { + private static let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"},\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://notifications-contacts-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingRegion\":\"{PartitionResult#implicitGlobalRegion}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://notifications-contacts.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingRegion\":\"{PartitionResult#implicitGlobalRegion}\"}]},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"Invalid Configuration: Missing Region\",\"type\":\"error\"}],\"type\":\"tree\"}]}" + + init() throws { + try self.init(partitions: AWSClientRuntime.awsPartitionJSON, ruleSet: Self.ruleSet) + } +} + +extension DefaultEndpointResolver: EndpointResolver {} + +typealias StaticEndpointResolver = ClientRuntime.StaticEndpointResolver + +extension StaticEndpointResolver: EndpointResolver {} diff --git a/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Models.swift b/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Models.swift new file mode 100644 index 00000000000..fc61c7fd161 --- /dev/null +++ b/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Models.swift @@ -0,0 +1,1147 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +@_spi(SmithyReadWrite) import ClientRuntime +import Foundation +import class SmithyHTTPAPI.HTTPResponse +@_spi(SmithyReadWrite) import class SmithyJSON.Reader +@_spi(SmithyReadWrite) import class SmithyJSON.Writer +import enum ClientRuntime.ErrorFault +import enum Smithy.ClientError +import enum SmithyReadWrite.ReaderError +@_spi(SmithyReadWrite) import enum SmithyReadWrite.ReadingClosures +@_spi(SmithyReadWrite) import enum SmithyReadWrite.WritingClosures +@_spi(SmithyTimestamps) import enum SmithyTimestamps.TimestampFormat +import protocol AWSClientRuntime.AWSServiceError +import protocol ClientRuntime.HTTPError +import protocol ClientRuntime.ModeledError +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyReader +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyWriter +@_spi(SmithyReadWrite) import struct AWSClientRuntime.RestJSONError +@_spi(UnknownAWSHTTPServiceError) import struct AWSClientRuntime.UnknownAWSHTTPServiceError +import struct Smithy.URIQueryItem +@_spi(SmithyTimestamps) import struct SmithyTimestamps.TimestampFormatter + +/// You do not have sufficient access to perform this action. +public struct AccessDeniedException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "AccessDeniedException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + +/// Updating or deleting a resource can cause an inconsistent state. +public struct ConflictException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + /// The resource ID that prompted the conflict error. + /// This member is required. + public internal(set) var resourceId: Swift.String? = nil + /// The resource type that prompted the conflict error. + /// This member is required. + public internal(set) var resourceType: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ConflictException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil, + resourceId: Swift.String? = nil, + resourceType: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.resourceId = resourceId + self.properties.resourceType = resourceType + } +} + +/// Unexpected error during processing of request. +public struct InternalServerException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "InternalServerException" } + public static var fault: ClientRuntime.ErrorFault { .server } + public static var isRetryable: Swift.Bool { true } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + +/// Your request references a resource which does not exist. +public struct ResourceNotFoundException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + /// The ID of the resource that wasn't found. + /// This member is required. + public internal(set) var resourceId: Swift.String? = nil + /// The type of resource that wasn't found. + /// This member is required. + public internal(set) var resourceType: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ResourceNotFoundException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil, + resourceId: Swift.String? = nil, + resourceType: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.resourceId = resourceId + self.properties.resourceType = resourceType + } +} + +/// The request was denied due to request throttling. +public struct ThrottlingException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + /// Identifies the quota that is being throttled. + public internal(set) var quotaCode: Swift.String? = nil + /// The number of seconds a client should wait before retrying the request. + public internal(set) var retryAfterSeconds: Swift.Int? = nil + /// Identifies the service being throttled. + public internal(set) var serviceCode: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ThrottlingException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { true } + public static var isThrottling: Swift.Bool { true } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil, + quotaCode: Swift.String? = nil, + retryAfterSeconds: Swift.Int? = nil, + serviceCode: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.quotaCode = quotaCode + self.properties.retryAfterSeconds = retryAfterSeconds + self.properties.serviceCode = serviceCode + } +} + +extension NotificationsContactsClientTypes { + + /// Stores information about a field passed inside a request that resulted in an exception. + public struct ValidationExceptionField: Swift.Sendable { + /// A message with the reason for the validation exception error. + /// This member is required. + public var message: Swift.String? + /// The field name where the invalid entry was detected. + /// This member is required. + public var name: Swift.String? + + public init( + message: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.message = message + self.name = name + } + } +} + +extension NotificationsContactsClientTypes { + + public enum ValidationExceptionReason: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case fieldValidationFailed + case other + case sdkUnknown(Swift.String) + + public static var allCases: [ValidationExceptionReason] { + return [ + .fieldValidationFailed, + .other + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .fieldValidationFailed: return "fieldValidationFailed" + case .other: return "other" + case let .sdkUnknown(s): return s + } + } + } +} + +/// The input fails to satisfy the constraints specified by an AWS service. +public struct ValidationException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// The list of input fields that are invalid. + public internal(set) var fieldList: [NotificationsContactsClientTypes.ValidationExceptionField]? = nil + /// This member is required. + public internal(set) var message: Swift.String? = nil + /// The reason why your input is considered invalid. + /// This member is required. + public internal(set) var reason: NotificationsContactsClientTypes.ValidationExceptionReason? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ValidationException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + fieldList: [NotificationsContactsClientTypes.ValidationExceptionField]? = nil, + message: Swift.String? = nil, + reason: NotificationsContactsClientTypes.ValidationExceptionReason? = nil + ) + { + self.properties.fieldList = fieldList + self.properties.message = message + self.properties.reason = reason + } +} + +public struct ActivateEmailContactInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the resource. + /// This member is required. + public var arn: Swift.String? + /// The activation code for this email contact. An email contact has a maximum of five activation attempts. Activation codes expire after 12 hours and are generated by the [SendActivationCode](https://docs.aws.amazon.com/notificationscontacts/latest/APIReference/API_SendActivationCode.html) API action. + /// This member is required. + public var code: Swift.String? + + public init( + arn: Swift.String? = nil, + code: Swift.String? = nil + ) + { + self.arn = arn + self.code = code + } +} + +extension ActivateEmailContactInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "ActivateEmailContactInput(arn: \(Swift.String(describing: arn)), code: \"CONTENT_REDACTED\")"} +} + +public struct ActivateEmailContactOutput: Swift.Sendable { + + public init() { } +} + +/// Request would cause a service quota to be exceeded. +public struct ServiceQuotaExceededException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + /// The code for the service quota in [Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html). + /// This member is required. + public internal(set) var quotaCode: Swift.String? = nil + /// The ID of the resource that exceeds the service quota. + /// This member is required. + public internal(set) var resourceId: Swift.String? = nil + /// The type of the resource that exceeds the service quota. + /// This member is required. + public internal(set) var resourceType: Swift.String? = nil + /// The code for the service quota exceeded in [Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html). + /// This member is required. + public internal(set) var serviceCode: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ServiceQuotaExceededException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil, + quotaCode: Swift.String? = nil, + resourceId: Swift.String? = nil, + resourceType: Swift.String? = nil, + serviceCode: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.quotaCode = quotaCode + self.properties.resourceId = resourceId + self.properties.resourceType = resourceType + self.properties.serviceCode = serviceCode + } +} + +public struct CreateEmailContactInput: Swift.Sendable { + /// The email address this email contact points to. The activation email and any subscribed emails are sent here. This email address can't receive emails until it's activated. + /// This member is required. + public var emailAddress: Swift.String? + /// The name of the email contact. + /// This member is required. + public var name: Swift.String? + /// A map of tags assigned to a resource. A tag is a string-to-string map of key-value pairs. + public var tags: [Swift.String: Swift.String]? + + public init( + emailAddress: Swift.String? = nil, + name: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil + ) + { + self.emailAddress = emailAddress + self.name = name + self.tags = tags + } +} + +extension CreateEmailContactInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "CreateEmailContactInput(emailAddress: \(Swift.String(describing: emailAddress)), tags: \(Swift.String(describing: tags)), name: \"CONTENT_REDACTED\")"} +} + +public struct CreateEmailContactOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the resource. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct DeleteEmailContactInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the resource. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct DeleteEmailContactOutput: Swift.Sendable { + + public init() { } +} + +extension NotificationsContactsClientTypes { + + public enum EmailContactStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case active + case inactive + case sdkUnknown(Swift.String) + + public static var allCases: [EmailContactStatus] { + return [ + .active, + .inactive + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .active: return "active" + case .inactive: return "inactive" + case let .sdkUnknown(s): return s + } + } + } +} + +extension NotificationsContactsClientTypes { + + /// An email contact. + public struct EmailContact: Swift.Sendable { + /// The email address this email contact points to. The activation email and any subscribed emails are sent here. + /// This member is required. + public var address: Swift.String? + /// The Amazon Resource Name (ARN) of the email contact. + /// This member is required. + public var arn: Swift.String? + /// The creation time of the resource. + /// This member is required. + public var creationTime: Foundation.Date? + /// The name of the email contact. + /// This member is required. + public var name: Swift.String? + /// The status of the email contact. Only activated email contacts receive emails. + /// This member is required. + public var status: NotificationsContactsClientTypes.EmailContactStatus? + /// The time the resource was last updated. + /// This member is required. + public var updateTime: Foundation.Date? + + public init( + address: Swift.String? = nil, + arn: Swift.String? = nil, + creationTime: Foundation.Date? = nil, + name: Swift.String? = nil, + status: NotificationsContactsClientTypes.EmailContactStatus? = nil, + updateTime: Foundation.Date? = nil + ) + { + self.address = address + self.arn = arn + self.creationTime = creationTime + self.name = name + self.status = status + self.updateTime = updateTime + } + } +} + +extension NotificationsContactsClientTypes.EmailContact: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "EmailContact(arn: \(Swift.String(describing: arn)), creationTime: \(Swift.String(describing: creationTime)), status: \(Swift.String(describing: status)), updateTime: \(Swift.String(describing: updateTime)), address: \"CONTENT_REDACTED\", name: \"CONTENT_REDACTED\")"} +} + +public struct GetEmailContactInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the email contact to get. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct GetEmailContactOutput: Swift.Sendable { + /// The email contact for the provided email address. + /// This member is required. + public var emailContact: NotificationsContactsClientTypes.EmailContact? + + public init( + emailContact: NotificationsContactsClientTypes.EmailContact? = nil + ) + { + self.emailContact = emailContact + } +} + +public struct ListEmailContactsInput: Swift.Sendable { + /// The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + public var maxResults: Swift.Int? + /// An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + public var nextToken: Swift.String? + + public init( + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +public struct ListEmailContactsOutput: Swift.Sendable { + /// A list of email contacts. + /// This member is required. + public var emailContacts: [NotificationsContactsClientTypes.EmailContact]? + /// An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + public var nextToken: Swift.String? + + public init( + emailContacts: [NotificationsContactsClientTypes.EmailContact]? = nil, + nextToken: Swift.String? = nil + ) + { + self.emailContacts = emailContacts + self.nextToken = nextToken + } +} + +public struct SendActivationCodeInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the resource. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct SendActivationCodeOutput: Swift.Sendable { + + public init() { } +} + +public struct ListTagsForResourceInput: Swift.Sendable { + /// The ARN you specified to list the tags of. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct ListTagsForResourceOutput: Swift.Sendable { + /// Key-value pairs that are assigned to a resource, usually for the purpose of grouping and searching for items. Tags are metadata that you define. + public var tags: [Swift.String: Swift.String]? + + public init( + tags: [Swift.String: Swift.String]? = nil + ) + { + self.tags = tags + } +} + +public struct TagResourceInput: Swift.Sendable { + /// The ARN of the configuration. + /// This member is required. + public var arn: Swift.String? + /// A list of tags to apply to the configuration. + /// This member is required. + public var tags: [Swift.String: Swift.String]? + + public init( + arn: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil + ) + { + self.arn = arn + self.tags = tags + } +} + +public struct TagResourceOutput: Swift.Sendable { + + public init() { } +} + +public struct UntagResourceInput: Swift.Sendable { + /// The value of the resource that will have the tag removed. An Amazon Resource Name (ARN) is an identifier for a specific AWS resource, such as a server, user, or role. + /// This member is required. + public var arn: Swift.String? + /// Specifies a list of tag keys that you want to remove from the specified resources. + /// This member is required. + public var tagKeys: [Swift.String]? + + public init( + arn: Swift.String? = nil, + tagKeys: [Swift.String]? = nil + ) + { + self.arn = arn + self.tagKeys = tagKeys + } +} + +public struct UntagResourceOutput: Swift.Sendable { + + public init() { } +} + +extension ActivateEmailContactInput { + + static func urlPathProvider(_ value: ActivateEmailContactInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + guard let code = value.code else { + return nil + } + return "/emailcontacts/\(arn.urlPercentEncoding())/activate/\(code.urlPercentEncoding())" + } +} + +extension CreateEmailContactInput { + + static func urlPathProvider(_ value: CreateEmailContactInput) -> Swift.String? { + return "/2022-09-19/emailcontacts" + } +} + +extension DeleteEmailContactInput { + + static func urlPathProvider(_ value: DeleteEmailContactInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/emailcontacts/\(arn.urlPercentEncoding())" + } +} + +extension GetEmailContactInput { + + static func urlPathProvider(_ value: GetEmailContactInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/emailcontacts/\(arn.urlPercentEncoding())" + } +} + +extension ListEmailContactsInput { + + static func urlPathProvider(_ value: ListEmailContactsInput) -> Swift.String? { + return "/emailcontacts" + } +} + +extension ListEmailContactsInput { + + static func queryItemProvider(_ value: ListEmailContactsInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + return items + } +} + +extension ListTagsForResourceInput { + + static func urlPathProvider(_ value: ListTagsForResourceInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/tags/\(arn.urlPercentEncoding())" + } +} + +extension SendActivationCodeInput { + + static func urlPathProvider(_ value: SendActivationCodeInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/2022-10-31/emailcontacts/\(arn.urlPercentEncoding())/activate/send" + } +} + +extension TagResourceInput { + + static func urlPathProvider(_ value: TagResourceInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/tags/\(arn.urlPercentEncoding())" + } +} + +extension UntagResourceInput { + + static func urlPathProvider(_ value: UntagResourceInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/tags/\(arn.urlPercentEncoding())" + } +} + +extension UntagResourceInput { + + static func queryItemProvider(_ value: UntagResourceInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + guard let tagKeys = value.tagKeys else { + let message = "Creating a URL Query Item failed. tagKeys is required and must not be nil." + throw Smithy.ClientError.unknownError(message) + } + tagKeys.forEach { queryItemValue in + let queryItem = Smithy.URIQueryItem(name: "tagKeys".urlPercentEncoding(), value: Swift.String(queryItemValue).urlPercentEncoding()) + items.append(queryItem) + } + return items + } +} + +extension CreateEmailContactInput { + + static func write(value: CreateEmailContactInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["emailAddress"].write(value.emailAddress) + try writer["name"].write(value.name) + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + } +} + +extension TagResourceInput { + + static func write(value: TagResourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + } +} + +extension ActivateEmailContactOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ActivateEmailContactOutput { + return ActivateEmailContactOutput() + } +} + +extension CreateEmailContactOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateEmailContactOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateEmailContactOutput() + value.arn = try reader["arn"].readIfPresent() ?? "" + return value + } +} + +extension DeleteEmailContactOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteEmailContactOutput { + return DeleteEmailContactOutput() + } +} + +extension GetEmailContactOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetEmailContactOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetEmailContactOutput() + value.emailContact = try reader["emailContact"].readIfPresent(with: NotificationsContactsClientTypes.EmailContact.read(from:)) + return value + } +} + +extension ListEmailContactsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListEmailContactsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListEmailContactsOutput() + value.emailContacts = try reader["emailContacts"].readListIfPresent(memberReadingClosure: NotificationsContactsClientTypes.EmailContact.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.nextToken = try reader["nextToken"].readIfPresent() + return value + } +} + +extension ListTagsForResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTagsForResourceOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListTagsForResourceOutput() + value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value + } +} + +extension SendActivationCodeOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> SendActivationCodeOutput { + return SendActivationCodeOutput() + } +} + +extension TagResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TagResourceOutput { + return TagResourceOutput() + } +} + +extension UntagResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UntagResourceOutput { + return UntagResourceOutput() + } +} + +enum ActivateEmailContactOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateEmailContactOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteEmailContactOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetEmailContactOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListEmailContactsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListTagsForResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum SendActivationCodeOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum TagResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UntagResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +extension ThrottlingException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ThrottlingException { + let reader = baseError.errorBodyReader + let httpResponse = baseError.httpResponse + var value = ThrottlingException() + if let retryAfterSecondsHeaderValue = httpResponse.headers.value(for: "Retry-After") { + value.properties.retryAfterSeconds = Swift.Int(retryAfterSecondsHeaderValue) ?? 0 + } + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.properties.quotaCode = try reader["quotaCode"].readIfPresent() + value.properties.serviceCode = try reader["serviceCode"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ConflictException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ConflictException { + let reader = baseError.errorBodyReader + var value = ConflictException() + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.properties.resourceId = try reader["resourceId"].readIfPresent() ?? "" + value.properties.resourceType = try reader["resourceType"].readIfPresent() ?? "" + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension InternalServerException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> InternalServerException { + let reader = baseError.errorBodyReader + var value = InternalServerException() + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ResourceNotFoundException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ResourceNotFoundException { + let reader = baseError.errorBodyReader + var value = ResourceNotFoundException() + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.properties.resourceId = try reader["resourceId"].readIfPresent() ?? "" + value.properties.resourceType = try reader["resourceType"].readIfPresent() ?? "" + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension AccessDeniedException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> AccessDeniedException { + let reader = baseError.errorBodyReader + var value = AccessDeniedException() + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ValidationException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ValidationException { + let reader = baseError.errorBodyReader + var value = ValidationException() + value.properties.fieldList = try reader["fieldList"].readListIfPresent(memberReadingClosure: NotificationsContactsClientTypes.ValidationExceptionField.read(from:), memberNodeInfo: "member", isFlattened: false) + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.properties.reason = try reader["reason"].readIfPresent() ?? .sdkUnknown("") + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ServiceQuotaExceededException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ServiceQuotaExceededException { + let reader = baseError.errorBodyReader + var value = ServiceQuotaExceededException() + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.properties.quotaCode = try reader["quotaCode"].readIfPresent() ?? "" + value.properties.resourceId = try reader["resourceId"].readIfPresent() ?? "" + value.properties.resourceType = try reader["resourceType"].readIfPresent() ?? "" + value.properties.serviceCode = try reader["serviceCode"].readIfPresent() ?? "" + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension NotificationsContactsClientTypes.EmailContact { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsContactsClientTypes.EmailContact { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsContactsClientTypes.EmailContact() + value.arn = try reader["arn"].readIfPresent() ?? "" + value.name = try reader["name"].readIfPresent() ?? "" + value.address = try reader["address"].readIfPresent() ?? "" + value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") + value.creationTime = try reader["creationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.updateTime = try reader["updateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + return value + } +} + +extension NotificationsContactsClientTypes.ValidationExceptionField { + + static func read(from reader: SmithyJSON.Reader) throws -> NotificationsContactsClientTypes.ValidationExceptionField { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = NotificationsContactsClientTypes.ValidationExceptionField() + value.name = try reader["name"].readIfPresent() ?? "" + value.message = try reader["message"].readIfPresent() ?? "" + return value + } +} + +public enum NotificationsContactsClientTypes {} diff --git a/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/NotificationsContactsClient.swift b/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/NotificationsContactsClient.swift new file mode 100644 index 00000000000..e99f25ff929 --- /dev/null +++ b/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/NotificationsContactsClient.swift @@ -0,0 +1,838 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class AWSClientRuntime.AWSClientConfigDefaultsProvider +import class AWSClientRuntime.AmzSdkRequestMiddleware +import class AWSClientRuntime.DefaultAWSClientPlugin +import class ClientRuntime.ClientBuilder +import class ClientRuntime.DefaultClientPlugin +import class ClientRuntime.HttpClientConfiguration +import class ClientRuntime.OrchestratorBuilder +import class ClientRuntime.OrchestratorTelemetry +import class ClientRuntime.SdkHttpClient +import class Smithy.ContextBuilder +import class SmithyHTTPAPI.HTTPRequest +import class SmithyHTTPAPI.HTTPResponse +@_spi(SmithyReadWrite) import class SmithyJSON.Writer +import enum AWSClientRuntime.AWSRetryErrorInfoProvider +import enum AWSClientRuntime.AWSRetryMode +import enum ClientRuntime.ClientLogMode +import enum ClientRuntime.DefaultTelemetry +import enum ClientRuntime.OrchestratorMetricsAttributesKeys +import protocol AWSClientRuntime.AWSDefaultClientConfiguration +import protocol AWSClientRuntime.AWSRegionClientConfiguration +import protocol ClientRuntime.Client +import protocol ClientRuntime.DefaultClientConfiguration +import protocol ClientRuntime.DefaultHttpClientConfiguration +import protocol ClientRuntime.HttpInterceptorProvider +import protocol ClientRuntime.IdempotencyTokenGenerator +import protocol ClientRuntime.InterceptorProvider +import protocol ClientRuntime.TelemetryProvider +import protocol Smithy.LogAgent +import protocol SmithyHTTPAPI.HTTPClient +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyIdentity.AWSCredentialIdentityResolver +import protocol SmithyIdentity.BearerTokenIdentityResolver +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyWriter +import struct AWSClientRuntime.AmzSdkInvocationIdMiddleware +import struct AWSClientRuntime.EndpointResolverMiddleware +import struct AWSClientRuntime.UserAgentMiddleware +import struct AWSSDKHTTPAuth.SigV4AuthScheme +import struct ClientRuntime.AuthSchemeMiddleware +@_spi(SmithyReadWrite) import struct ClientRuntime.BodyMiddleware +import struct ClientRuntime.ContentLengthMiddleware +import struct ClientRuntime.ContentTypeMiddleware +@_spi(SmithyReadWrite) import struct ClientRuntime.DeserializeMiddleware +import struct ClientRuntime.LoggerMiddleware +import struct ClientRuntime.QueryItemMiddleware +import struct ClientRuntime.SignerMiddleware +import struct ClientRuntime.URLHostMiddleware +import struct ClientRuntime.URLPathMiddleware +import struct Smithy.Attributes +import struct SmithyIdentity.BearerTokenIdentity +import struct SmithyIdentity.StaticBearerTokenIdentityResolver +import struct SmithyRetries.DefaultRetryStrategy +import struct SmithyRetriesAPI.RetryStrategyOptions +import typealias SmithyHTTPAuthAPI.AuthSchemes + +public class NotificationsContactsClient: ClientRuntime.Client { + public static let clientName = "NotificationsContactsClient" + public static let version = "1.0.46" + let client: ClientRuntime.SdkHttpClient + let config: NotificationsContactsClient.NotificationsContactsClientConfiguration + let serviceName = "NotificationsContacts" + + public required init(config: NotificationsContactsClient.NotificationsContactsClientConfiguration) { + client = ClientRuntime.SdkHttpClient(engine: config.httpClientEngine, config: config.httpClientConfiguration) + self.config = config + } + + public convenience init(region: Swift.String) throws { + let config = try NotificationsContactsClient.NotificationsContactsClientConfiguration(region: region) + self.init(config: config) + } + + public convenience required init() async throws { + let config = try await NotificationsContactsClient.NotificationsContactsClientConfiguration() + self.init(config: config) + } +} + +extension NotificationsContactsClient { + public class NotificationsContactsClientConfiguration: AWSClientRuntime.AWSDefaultClientConfiguration & AWSClientRuntime.AWSRegionClientConfiguration & ClientRuntime.DefaultClientConfiguration & ClientRuntime.DefaultHttpClientConfiguration { + public var useFIPS: Swift.Bool? + + public var useDualStack: Swift.Bool? + + public var appID: Swift.String? + + public var awsCredentialIdentityResolver: any SmithyIdentity.AWSCredentialIdentityResolver + + public var awsRetryMode: AWSClientRuntime.AWSRetryMode + + public var maxAttempts: Swift.Int? + + public var region: Swift.String? + + public var signingRegion: Swift.String? + + public var endpointResolver: EndpointResolver + + public var telemetryProvider: ClientRuntime.TelemetryProvider + + public var retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions + + public var clientLogMode: ClientRuntime.ClientLogMode + + public var endpoint: Swift.String? + + public var idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator + + public var httpClientEngine: SmithyHTTPAPI.HTTPClient + + public var httpClientConfiguration: ClientRuntime.HttpClientConfiguration + + public var authSchemes: SmithyHTTPAuthAPI.AuthSchemes? + + public var authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver + + public var bearerTokenIdentityResolver: any SmithyIdentity.BearerTokenIdentityResolver + + public private(set) var interceptorProviders: [ClientRuntime.InterceptorProvider] + + public private(set) var httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider] + + internal let logger: Smithy.LogAgent + + private init(_ useFIPS: Swift.Bool?, _ useDualStack: Swift.Bool?, _ appID: Swift.String?, _ awsCredentialIdentityResolver: any SmithyIdentity.AWSCredentialIdentityResolver, _ awsRetryMode: AWSClientRuntime.AWSRetryMode, _ maxAttempts: Swift.Int?, _ region: Swift.String?, _ signingRegion: Swift.String?, _ endpointResolver: EndpointResolver, _ telemetryProvider: ClientRuntime.TelemetryProvider, _ retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions, _ clientLogMode: ClientRuntime.ClientLogMode, _ endpoint: Swift.String?, _ idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator, _ httpClientEngine: SmithyHTTPAPI.HTTPClient, _ httpClientConfiguration: ClientRuntime.HttpClientConfiguration, _ authSchemes: SmithyHTTPAuthAPI.AuthSchemes?, _ authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver, _ bearerTokenIdentityResolver: any SmithyIdentity.BearerTokenIdentityResolver, _ interceptorProviders: [ClientRuntime.InterceptorProvider], _ httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]) { + self.useFIPS = useFIPS + self.useDualStack = useDualStack + self.appID = appID + self.awsCredentialIdentityResolver = awsCredentialIdentityResolver + self.awsRetryMode = awsRetryMode + self.maxAttempts = maxAttempts + self.region = region + self.signingRegion = signingRegion + self.endpointResolver = endpointResolver + self.telemetryProvider = telemetryProvider + self.retryStrategyOptions = retryStrategyOptions + self.clientLogMode = clientLogMode + self.endpoint = endpoint + self.idempotencyTokenGenerator = idempotencyTokenGenerator + self.httpClientEngine = httpClientEngine + self.httpClientConfiguration = httpClientConfiguration + self.authSchemes = authSchemes + self.authSchemeResolver = authSchemeResolver + self.bearerTokenIdentityResolver = bearerTokenIdentityResolver + self.interceptorProviders = interceptorProviders + self.httpInterceptorProviders = httpInterceptorProviders + self.logger = telemetryProvider.loggerProvider.getLogger(name: NotificationsContactsClient.clientName) + } + + public convenience init(useFIPS: Swift.Bool? = nil, useDualStack: Swift.Bool? = nil, appID: Swift.String? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, awsRetryMode: AWSClientRuntime.AWSRetryMode? = nil, maxAttempts: Swift.Int? = nil, region: Swift.String? = nil, signingRegion: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, telemetryProvider: ClientRuntime.TelemetryProvider? = nil, retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions? = nil, clientLogMode: ClientRuntime.ClientLogMode? = nil, endpoint: Swift.String? = nil, idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator? = nil, httpClientEngine: SmithyHTTPAPI.HTTPClient? = nil, httpClientConfiguration: ClientRuntime.HttpClientConfiguration? = nil, authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil, interceptorProviders: [ClientRuntime.InterceptorProvider]? = nil, httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]? = nil) throws { + self.init(useFIPS, useDualStack, try appID ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try awsCredentialIdentityResolver ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(awsCredentialIdentityResolver), try awsRetryMode ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), maxAttempts, region, signingRegion, try endpointResolver ?? DefaultEndpointResolver(), telemetryProvider ?? ClientRuntime.DefaultTelemetry.provider, try retryStrategyOptions ?? AWSClientConfigDefaultsProvider.retryStrategyOptions(awsRetryMode, maxAttempts), clientLogMode ?? AWSClientConfigDefaultsProvider.clientLogMode(), endpoint, idempotencyTokenGenerator ?? AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), httpClientEngine ?? AWSClientConfigDefaultsProvider.httpClientEngine(), httpClientConfiguration ?? AWSClientConfigDefaultsProvider.httpClientConfiguration(), authSchemes ?? [AWSSDKHTTPAuth.SigV4AuthScheme()], authSchemeResolver ?? DefaultNotificationsContactsAuthSchemeResolver(), bearerTokenIdentityResolver ?? SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), interceptorProviders ?? [], httpInterceptorProviders ?? []) + } + + public convenience init(useFIPS: Swift.Bool? = nil, useDualStack: Swift.Bool? = nil, appID: Swift.String? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, awsRetryMode: AWSClientRuntime.AWSRetryMode? = nil, maxAttempts: Swift.Int? = nil, region: Swift.String? = nil, signingRegion: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, telemetryProvider: ClientRuntime.TelemetryProvider? = nil, retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions? = nil, clientLogMode: ClientRuntime.ClientLogMode? = nil, endpoint: Swift.String? = nil, idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator? = nil, httpClientEngine: SmithyHTTPAPI.HTTPClient? = nil, httpClientConfiguration: ClientRuntime.HttpClientConfiguration? = nil, authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil, interceptorProviders: [ClientRuntime.InterceptorProvider]? = nil, httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]? = nil) async throws { + self.init(useFIPS, useDualStack, try appID ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try awsCredentialIdentityResolver ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(awsCredentialIdentityResolver), try awsRetryMode ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), maxAttempts, try await AWSClientRuntime.AWSClientConfigDefaultsProvider.region(region), try await AWSClientRuntime.AWSClientConfigDefaultsProvider.region(region), try endpointResolver ?? DefaultEndpointResolver(), telemetryProvider ?? ClientRuntime.DefaultTelemetry.provider, try retryStrategyOptions ?? AWSClientConfigDefaultsProvider.retryStrategyOptions(awsRetryMode, maxAttempts), clientLogMode ?? AWSClientConfigDefaultsProvider.clientLogMode(), endpoint, idempotencyTokenGenerator ?? AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), httpClientEngine ?? AWSClientConfigDefaultsProvider.httpClientEngine(), httpClientConfiguration ?? AWSClientConfigDefaultsProvider.httpClientConfiguration(), authSchemes ?? [AWSSDKHTTPAuth.SigV4AuthScheme()], authSchemeResolver ?? DefaultNotificationsContactsAuthSchemeResolver(), bearerTokenIdentityResolver ?? SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), interceptorProviders ?? [], httpInterceptorProviders ?? []) + } + + public convenience required init() async throws { + try await self.init(useFIPS: nil, useDualStack: nil, appID: nil, awsCredentialIdentityResolver: nil, awsRetryMode: nil, maxAttempts: nil, region: nil, signingRegion: nil, endpointResolver: nil, telemetryProvider: nil, retryStrategyOptions: nil, clientLogMode: nil, endpoint: nil, idempotencyTokenGenerator: nil, httpClientEngine: nil, httpClientConfiguration: nil, authSchemes: nil, authSchemeResolver: nil, bearerTokenIdentityResolver: nil, interceptorProviders: nil, httpInterceptorProviders: nil) + } + + public convenience init(region: String) throws { + self.init(nil, nil, try AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(), try AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), nil, region, region, try DefaultEndpointResolver(), ClientRuntime.DefaultTelemetry.provider, try AWSClientConfigDefaultsProvider.retryStrategyOptions(), AWSClientConfigDefaultsProvider.clientLogMode(), nil, AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), AWSClientConfigDefaultsProvider.httpClientEngine(), AWSClientConfigDefaultsProvider.httpClientConfiguration(), [AWSSDKHTTPAuth.SigV4AuthScheme()], DefaultNotificationsContactsAuthSchemeResolver(), SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), [], []) + } + + public var partitionID: String? { + return "\(NotificationsContactsClient.clientName) - \(region ?? "")" + } + public func addInterceptorProvider(_ provider: ClientRuntime.InterceptorProvider) { + self.interceptorProviders.append(provider) + } + + public func addInterceptorProvider(_ provider: ClientRuntime.HttpInterceptorProvider) { + self.httpInterceptorProviders.append(provider) + } + + } + + public static func builder() -> ClientRuntime.ClientBuilder { + return ClientRuntime.ClientBuilder(defaultPlugins: [ + ClientRuntime.DefaultClientPlugin(), + AWSClientRuntime.DefaultAWSClientPlugin(clientName: self.clientName), + DefaultAWSAuthSchemePlugin() + ]) + } +} + +extension NotificationsContactsClient { + /// Performs the `ActivateEmailContact` operation on the `NotificationsContacts` service. + /// + /// Activates an email contact using an activation code. This code is in the activation email sent to the email address associated with this email contact. + /// + /// - Parameter ActivateEmailContactInput : [no documentation found] + /// + /// - Returns: `ActivateEmailContactOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Your request references a resource which does not exist. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an AWS service. + public func activateEmailContact(input: ActivateEmailContactInput) async throws -> ActivateEmailContactOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .put) + .withServiceName(value: serviceName) + .withOperation(value: "activateEmailContact") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications-contacts") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ActivateEmailContactInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ActivateEmailContactOutput.httpOutput(from:), ActivateEmailContactOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsContactsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "NotificationsContacts") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ActivateEmailContact") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `CreateEmailContact` operation on the `NotificationsContacts` service. + /// + /// Creates an email contact for the provided email address. + /// + /// - Parameter CreateEmailContactInput : [no documentation found] + /// + /// - Returns: `CreateEmailContactOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ServiceQuotaExceededException` : Request would cause a service quota to be exceeded. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an AWS service. + public func createEmailContact(input: CreateEmailContactInput) async throws -> CreateEmailContactOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createEmailContact") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications-contacts") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateEmailContactInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateEmailContactInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateEmailContactOutput.httpOutput(from:), CreateEmailContactOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsContactsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "NotificationsContacts") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateEmailContact") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeleteEmailContact` operation on the `NotificationsContacts` service. + /// + /// Deletes an email contact. Deleting an email contact removes it from all associated notification configurations. + /// + /// - Parameter DeleteEmailContactInput : [no documentation found] + /// + /// - Returns: `DeleteEmailContactOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Your request references a resource which does not exist. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an AWS service. + public func deleteEmailContact(input: DeleteEmailContactInput) async throws -> DeleteEmailContactOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteEmailContact") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications-contacts") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteEmailContactInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteEmailContactOutput.httpOutput(from:), DeleteEmailContactOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsContactsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "NotificationsContacts") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteEmailContact") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetEmailContact` operation on the `NotificationsContacts` service. + /// + /// Returns an email contact. + /// + /// - Parameter GetEmailContactInput : [no documentation found] + /// + /// - Returns: `GetEmailContactOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Your request references a resource which does not exist. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an AWS service. + public func getEmailContact(input: GetEmailContactInput) async throws -> GetEmailContactOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getEmailContact") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications-contacts") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetEmailContactInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetEmailContactOutput.httpOutput(from:), GetEmailContactOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsContactsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "NotificationsContacts") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetEmailContact") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListEmailContacts` operation on the `NotificationsContacts` service. + /// + /// Lists all email contacts created under the Account. + /// + /// - Parameter ListEmailContactsInput : [no documentation found] + /// + /// - Returns: `ListEmailContactsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an AWS service. + public func listEmailContacts(input: ListEmailContactsInput) async throws -> ListEmailContactsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listEmailContacts") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications-contacts") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListEmailContactsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListEmailContactsInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListEmailContactsOutput.httpOutput(from:), ListEmailContactsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsContactsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "NotificationsContacts") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListEmailContacts") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListTagsForResource` operation on the `NotificationsContacts` service. + /// + /// Lists all of the tags associated with the Amazon Resource Name (ARN) that you specify. The resource can be a user, server, or role. + /// + /// - Parameter ListTagsForResourceInput : [no documentation found] + /// + /// - Returns: `ListTagsForResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Your request references a resource which does not exist. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an AWS service. + public func listTagsForResource(input: ListTagsForResourceInput) async throws -> ListTagsForResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listTagsForResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications-contacts") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListTagsForResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListTagsForResourceOutput.httpOutput(from:), ListTagsForResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsContactsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "NotificationsContacts") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListTagsForResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `SendActivationCode` operation on the `NotificationsContacts` service. + /// + /// Sends an activation email to the email address associated with the specified email contact. It might take a few minutes for the activation email to arrive. If it doesn't arrive, check in your spam folder or try sending another activation email. + /// + /// - Parameter SendActivationCodeInput : [no documentation found] + /// + /// - Returns: `SendActivationCodeOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Your request references a resource which does not exist. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an AWS service. + public func sendActivationCode(input: SendActivationCodeInput) async throws -> SendActivationCodeOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "sendActivationCode") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications-contacts") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(SendActivationCodeInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(SendActivationCodeOutput.httpOutput(from:), SendActivationCodeOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsContactsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "NotificationsContacts") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "SendActivationCode") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `TagResource` operation on the `NotificationsContacts` service. + /// + /// Attaches a key-value pair to a resource, as identified by its Amazon Resource Name (ARN). Taggable resources in AWS User Notifications Contacts include email contacts. + /// + /// - Parameter TagResourceInput : [no documentation found] + /// + /// - Returns: `TagResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Your request references a resource which does not exist. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an AWS service. + public func tagResource(input: TagResourceInput) async throws -> TagResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "tagResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications-contacts") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(TagResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: TagResourceInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(TagResourceOutput.httpOutput(from:), TagResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsContactsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "NotificationsContacts") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "TagResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UntagResource` operation on the `NotificationsContacts` service. + /// + /// Detaches a key-value pair from a resource, as identified by its Amazon Resource Name (ARN). Taggable resources in AWS User Notifications Contacts include email contacts.. + /// + /// - Parameter UntagResourceInput : [no documentation found] + /// + /// - Returns: `UntagResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Your request references a resource which does not exist. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the constraints specified by an AWS service. + public func untagResource(input: UntagResourceInput) async throws -> UntagResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "untagResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "notifications-contacts") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UntagResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(UntagResourceInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UntagResourceOutput.httpOutput(from:), UntagResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: NotificationsContactsClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "NotificationsContacts") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UntagResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + +} diff --git a/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Plugins.swift b/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Plugins.swift new file mode 100644 index 00000000000..2d1e0f1f838 --- /dev/null +++ b/Sources/Services/AWSNotificationsContacts/Sources/AWSNotificationsContacts/Plugins.swift @@ -0,0 +1,82 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class AWSClientRuntime.AWSClientConfigDefaultsProvider +import protocol ClientRuntime.ClientConfiguration +import protocol ClientRuntime.Plugin +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyIdentity.AWSCredentialIdentityResolver +import protocol SmithyIdentity.BearerTokenIdentityResolver +import struct AWSSDKHTTPAuth.SigV4AuthScheme +import struct SmithyIdentity.BearerTokenIdentity +import struct SmithyIdentity.StaticBearerTokenIdentityResolver +import typealias SmithyHTTPAuthAPI.AuthSchemes + +public class NotificationsContactsClientEndpointPlugin: Plugin { + private var endpointResolver: EndpointResolver + + public init(endpointResolver: EndpointResolver) { + self.endpointResolver = endpointResolver + } + + public convenience init() throws { + self.init(endpointResolver: try DefaultEndpointResolver()) + } + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? NotificationsContactsClient.NotificationsContactsClientConfiguration { + config.endpointResolver = self.endpointResolver + } + } +} + +public class DefaultAWSAuthSchemePlugin: ClientRuntime.Plugin { + + public init() {} + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? NotificationsContactsClient.NotificationsContactsClientConfiguration { + config.authSchemeResolver = DefaultNotificationsContactsAuthSchemeResolver() + config.authSchemes = [AWSSDKHTTPAuth.SigV4AuthScheme()] + config.awsCredentialIdentityResolver = try AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver() + config.bearerTokenIdentityResolver = SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")) + } + } +} + +public class NotificationsContactsClientAuthSchemePlugin: ClientRuntime.Plugin { + private var authSchemes: SmithyHTTPAuthAPI.AuthSchemes? + private var authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? + private var awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? + private var bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? + + public init(authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: NotificationsContactsAuthSchemeResolver? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil) { + self.authSchemeResolver = authSchemeResolver + self.authSchemes = authSchemes + self.awsCredentialIdentityResolver = awsCredentialIdentityResolver + self.bearerTokenIdentityResolver = bearerTokenIdentityResolver + } + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? NotificationsContactsClient.NotificationsContactsClientConfiguration { + if (self.authSchemes != nil) { + config.authSchemes = self.authSchemes + } + if (self.authSchemeResolver != nil) { + config.authSchemeResolver = self.authSchemeResolver! + } + if (self.awsCredentialIdentityResolver != nil) { + config.awsCredentialIdentityResolver = self.awsCredentialIdentityResolver! + } + if (self.bearerTokenIdentityResolver != nil) { + config.bearerTokenIdentityResolver = self.bearerTokenIdentityResolver! + } + } + } +} diff --git a/Sources/Services/AWSNotificationsContacts/Tests/AWSNotificationsContactsTests/EndpointResolverTest.swift b/Sources/Services/AWSNotificationsContacts/Tests/AWSNotificationsContactsTests/EndpointResolverTest.swift new file mode 100644 index 00000000000..93d816337eb --- /dev/null +++ b/Sources/Services/AWSNotificationsContacts/Tests/AWSNotificationsContactsTests/EndpointResolverTest.swift @@ -0,0 +1,440 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +@testable import AWSNotificationsContacts +import XCTest +import enum ClientRuntime.EndpointError +import enum SmithyTestUtil.TestInitializer +import struct SmithyHTTPAPI.Endpoint +import struct SmithyHTTPAPI.Headers + +class EndpointResolverTest: XCTestCase { + + override class func setUp() { + SmithyTestUtil.TestInitializer.initialize() + } + + /// For custom endpoint with region not set and fips disabled + func testResolve1() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://example.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with fips enabled + func testResolve2() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: FIPS and custom endpoint are not supported", message) + default: + XCTFail() + } + } + } + + /// For region us-east-1 with FIPS enabled and DualStack enabled + func testResolve3() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts-fips.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack enabled + func testResolve4() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-northwest-1 with FIPS enabled and DualStack enabled + func testResolve5() throws { + let endpointParams = EndpointParams( + region: "cn-northwest-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "cn-northwest-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts-fips.cn-northwest-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-northwest-1 with FIPS disabled and DualStack enabled + func testResolve6() throws { + let endpointParams = EndpointParams( + region: "cn-northwest-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "cn-northwest-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts.cn-northwest-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-west-1 with FIPS enabled and DualStack enabled + func testResolve7() throws { + let endpointParams = EndpointParams( + region: "us-gov-west-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-gov-west-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts-fips.us-gov-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-west-1 with FIPS disabled and DualStack enabled + func testResolve8() throws { + let endpointParams = EndpointParams( + region: "us-gov-west-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-gov-west-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts.us-gov-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS enabled and DualStack enabled + func testResolve9() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-iso-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts-fips.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS disabled and DualStack enabled + func testResolve10() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-iso-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS enabled and DualStack enabled + func testResolve11() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-isob-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts-fips.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS disabled and DualStack enabled + func testResolve12() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-isob-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-isoe-west-1 with FIPS enabled and DualStack enabled + func testResolve13() throws { + let endpointParams = EndpointParams( + region: "eu-isoe-west-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts-fips.eu-isoe-west-1.cloud.adc-e.uk", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-isoe-west-1 with FIPS disabled and DualStack enabled + func testResolve14() throws { + let endpointParams = EndpointParams( + region: "eu-isoe-west-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts.eu-isoe-west-1.cloud.adc-e.uk", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isof-south-1 with FIPS enabled and DualStack enabled + func testResolve15() throws { + let endpointParams = EndpointParams( + region: "us-isof-south-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-isof-south-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts-fips.us-isof-south-1.csp.hci.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isof-south-1 with FIPS disabled and DualStack enabled + func testResolve16() throws { + let endpointParams = EndpointParams( + region: "us-isof-south-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-isof-south-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://notifications-contacts.us-isof-south-1.csp.hci.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// Missing region + func testResolve17() throws { + let endpointParams = EndpointParams( + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: Missing Region", message) + default: + XCTFail() + } + } + } + +} diff --git a/Sources/Services/AWSOAM/Sources/AWSOAM/OAMClient.swift b/Sources/Services/AWSOAM/Sources/AWSOAM/OAMClient.swift index d4c6a726a4e..4c82a480673 100644 --- a/Sources/Services/AWSOAM/Sources/AWSOAM/OAMClient.swift +++ b/Sources/Services/AWSOAM/Sources/AWSOAM/OAMClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class OAMClient: ClientRuntime.Client { public static let clientName = "OAMClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: OAMClient.OAMClientConfiguration let serviceName = "OAM" diff --git a/Sources/Services/AWSOSIS/Sources/AWSOSIS/OSISClient.swift b/Sources/Services/AWSOSIS/Sources/AWSOSIS/OSISClient.swift index 924a1fbfb29..2f93fa248db 100644 --- a/Sources/Services/AWSOSIS/Sources/AWSOSIS/OSISClient.swift +++ b/Sources/Services/AWSOSIS/Sources/AWSOSIS/OSISClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class OSISClient: ClientRuntime.Client { public static let clientName = "OSISClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: OSISClient.OSISClientConfiguration let serviceName = "OSIS" diff --git a/Sources/Services/AWSOmics/Sources/AWSOmics/OmicsClient.swift b/Sources/Services/AWSOmics/Sources/AWSOmics/OmicsClient.swift index 537f4cdb651..ffcee830911 100644 --- a/Sources/Services/AWSOmics/Sources/AWSOmics/OmicsClient.swift +++ b/Sources/Services/AWSOmics/Sources/AWSOmics/OmicsClient.swift @@ -70,7 +70,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class OmicsClient: ClientRuntime.Client { public static let clientName = "OmicsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: OmicsClient.OmicsClientConfiguration let serviceName = "Omics" diff --git a/Sources/Services/AWSOpenSearch/Sources/AWSOpenSearch/OpenSearchClient.swift b/Sources/Services/AWSOpenSearch/Sources/AWSOpenSearch/OpenSearchClient.swift index ef6dead405a..d00c33a9f72 100644 --- a/Sources/Services/AWSOpenSearch/Sources/AWSOpenSearch/OpenSearchClient.swift +++ b/Sources/Services/AWSOpenSearch/Sources/AWSOpenSearch/OpenSearchClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class OpenSearchClient: ClientRuntime.Client { public static let clientName = "OpenSearchClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: OpenSearchClient.OpenSearchClientConfiguration let serviceName = "OpenSearch" diff --git a/Sources/Services/AWSOpenSearchServerless/Sources/AWSOpenSearchServerless/OpenSearchServerlessClient.swift b/Sources/Services/AWSOpenSearchServerless/Sources/AWSOpenSearchServerless/OpenSearchServerlessClient.swift index 86f6a3f3055..eb3d1f4be80 100644 --- a/Sources/Services/AWSOpenSearchServerless/Sources/AWSOpenSearchServerless/OpenSearchServerlessClient.swift +++ b/Sources/Services/AWSOpenSearchServerless/Sources/AWSOpenSearchServerless/OpenSearchServerlessClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class OpenSearchServerlessClient: ClientRuntime.Client { public static let clientName = "OpenSearchServerlessClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: OpenSearchServerlessClient.OpenSearchServerlessClientConfiguration let serviceName = "OpenSearchServerless" diff --git a/Sources/Services/AWSOpsWorks/Sources/AWSOpsWorks/OpsWorksClient.swift b/Sources/Services/AWSOpsWorks/Sources/AWSOpsWorks/OpsWorksClient.swift index f770060a6f6..4b6ae0bf153 100644 --- a/Sources/Services/AWSOpsWorks/Sources/AWSOpsWorks/OpsWorksClient.swift +++ b/Sources/Services/AWSOpsWorks/Sources/AWSOpsWorks/OpsWorksClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class OpsWorksClient: ClientRuntime.Client { public static let clientName = "OpsWorksClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: OpsWorksClient.OpsWorksClientConfiguration let serviceName = "OpsWorks" diff --git a/Sources/Services/AWSOpsWorksCM/Sources/AWSOpsWorksCM/OpsWorksCMClient.swift b/Sources/Services/AWSOpsWorksCM/Sources/AWSOpsWorksCM/OpsWorksCMClient.swift index 4c32fe820c1..9c96135863f 100644 --- a/Sources/Services/AWSOpsWorksCM/Sources/AWSOpsWorksCM/OpsWorksCMClient.swift +++ b/Sources/Services/AWSOpsWorksCM/Sources/AWSOpsWorksCM/OpsWorksCMClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class OpsWorksCMClient: ClientRuntime.Client { public static let clientName = "OpsWorksCMClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: OpsWorksCMClient.OpsWorksCMClientConfiguration let serviceName = "OpsWorksCM" diff --git a/Sources/Services/AWSOrganizations/Sources/AWSOrganizations/OrganizationsClient.swift b/Sources/Services/AWSOrganizations/Sources/AWSOrganizations/OrganizationsClient.swift index 5b476b2e8b2..f80ebf40b3d 100644 --- a/Sources/Services/AWSOrganizations/Sources/AWSOrganizations/OrganizationsClient.swift +++ b/Sources/Services/AWSOrganizations/Sources/AWSOrganizations/OrganizationsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class OrganizationsClient: ClientRuntime.Client { public static let clientName = "OrganizationsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: OrganizationsClient.OrganizationsClientConfiguration let serviceName = "Organizations" diff --git a/Sources/Services/AWSOutposts/Sources/AWSOutposts/OutpostsClient.swift b/Sources/Services/AWSOutposts/Sources/AWSOutposts/OutpostsClient.swift index ca13d837517..883083eda1f 100644 --- a/Sources/Services/AWSOutposts/Sources/AWSOutposts/OutpostsClient.swift +++ b/Sources/Services/AWSOutposts/Sources/AWSOutposts/OutpostsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class OutpostsClient: ClientRuntime.Client { public static let clientName = "OutpostsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: OutpostsClient.OutpostsClientConfiguration let serviceName = "Outposts" diff --git a/Sources/Services/AWSPCS/Sources/AWSPCS/PCSClient.swift b/Sources/Services/AWSPCS/Sources/AWSPCS/PCSClient.swift index 82199de8802..586ddb70955 100644 --- a/Sources/Services/AWSPCS/Sources/AWSPCS/PCSClient.swift +++ b/Sources/Services/AWSPCS/Sources/AWSPCS/PCSClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PCSClient: ClientRuntime.Client { public static let clientName = "PCSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PCSClient.PCSClientConfiguration let serviceName = "PCS" diff --git a/Sources/Services/AWSPI/Sources/AWSPI/PIClient.swift b/Sources/Services/AWSPI/Sources/AWSPI/PIClient.swift index c914acd67a7..9eaf3d4142a 100644 --- a/Sources/Services/AWSPI/Sources/AWSPI/PIClient.swift +++ b/Sources/Services/AWSPI/Sources/AWSPI/PIClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PIClient: ClientRuntime.Client { public static let clientName = "PIClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PIClient.PIClientConfiguration let serviceName = "PI" diff --git a/Sources/Services/AWSPanorama/Sources/AWSPanorama/PanoramaClient.swift b/Sources/Services/AWSPanorama/Sources/AWSPanorama/PanoramaClient.swift index 7fcd2e63725..8a840420536 100644 --- a/Sources/Services/AWSPanorama/Sources/AWSPanorama/PanoramaClient.swift +++ b/Sources/Services/AWSPanorama/Sources/AWSPanorama/PanoramaClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PanoramaClient: ClientRuntime.Client { public static let clientName = "PanoramaClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PanoramaClient.PanoramaClientConfiguration let serviceName = "Panorama" diff --git a/Sources/Services/AWSPartnerCentralSelling/Sources/AWSPartnerCentralSelling/PartnerCentralSellingClient.swift b/Sources/Services/AWSPartnerCentralSelling/Sources/AWSPartnerCentralSelling/PartnerCentralSellingClient.swift index 4901ad8fe7e..28a409f2905 100644 --- a/Sources/Services/AWSPartnerCentralSelling/Sources/AWSPartnerCentralSelling/PartnerCentralSellingClient.swift +++ b/Sources/Services/AWSPartnerCentralSelling/Sources/AWSPartnerCentralSelling/PartnerCentralSellingClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PartnerCentralSellingClient: ClientRuntime.Client { public static let clientName = "PartnerCentralSellingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PartnerCentralSellingClient.PartnerCentralSellingClientConfiguration let serviceName = "PartnerCentral Selling" diff --git a/Sources/Services/AWSPaymentCryptography/Sources/AWSPaymentCryptography/PaymentCryptographyClient.swift b/Sources/Services/AWSPaymentCryptography/Sources/AWSPaymentCryptography/PaymentCryptographyClient.swift index 1a3c1e9bfac..aa42c9c3c13 100644 --- a/Sources/Services/AWSPaymentCryptography/Sources/AWSPaymentCryptography/PaymentCryptographyClient.swift +++ b/Sources/Services/AWSPaymentCryptography/Sources/AWSPaymentCryptography/PaymentCryptographyClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PaymentCryptographyClient: ClientRuntime.Client { public static let clientName = "PaymentCryptographyClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PaymentCryptographyClient.PaymentCryptographyClientConfiguration let serviceName = "Payment Cryptography" diff --git a/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/PaymentCryptographyDataClient.swift b/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/PaymentCryptographyDataClient.swift index 854771a7c1d..27d40ecf38f 100644 --- a/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/PaymentCryptographyDataClient.swift +++ b/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/PaymentCryptographyDataClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PaymentCryptographyDataClient: ClientRuntime.Client { public static let clientName = "PaymentCryptographyDataClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PaymentCryptographyDataClient.PaymentCryptographyDataClientConfiguration let serviceName = "Payment Cryptography Data" diff --git a/Sources/Services/AWSPcaConnectorAd/Sources/AWSPcaConnectorAd/PcaConnectorAdClient.swift b/Sources/Services/AWSPcaConnectorAd/Sources/AWSPcaConnectorAd/PcaConnectorAdClient.swift index 4d00862c1bc..10fc0605e5e 100644 --- a/Sources/Services/AWSPcaConnectorAd/Sources/AWSPcaConnectorAd/PcaConnectorAdClient.swift +++ b/Sources/Services/AWSPcaConnectorAd/Sources/AWSPcaConnectorAd/PcaConnectorAdClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PcaConnectorAdClient: ClientRuntime.Client { public static let clientName = "PcaConnectorAdClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PcaConnectorAdClient.PcaConnectorAdClientConfiguration let serviceName = "Pca Connector Ad" diff --git a/Sources/Services/AWSPcaConnectorScep/Sources/AWSPcaConnectorScep/PcaConnectorScepClient.swift b/Sources/Services/AWSPcaConnectorScep/Sources/AWSPcaConnectorScep/PcaConnectorScepClient.swift index 01809094ff4..dad174766b2 100644 --- a/Sources/Services/AWSPcaConnectorScep/Sources/AWSPcaConnectorScep/PcaConnectorScepClient.swift +++ b/Sources/Services/AWSPcaConnectorScep/Sources/AWSPcaConnectorScep/PcaConnectorScepClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PcaConnectorScepClient: ClientRuntime.Client { public static let clientName = "PcaConnectorScepClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PcaConnectorScepClient.PcaConnectorScepClientConfiguration let serviceName = "Pca Connector Scep" diff --git a/Sources/Services/AWSPersonalize/Sources/AWSPersonalize/PersonalizeClient.swift b/Sources/Services/AWSPersonalize/Sources/AWSPersonalize/PersonalizeClient.swift index 0b406cd1799..a2b8df2e8ab 100644 --- a/Sources/Services/AWSPersonalize/Sources/AWSPersonalize/PersonalizeClient.swift +++ b/Sources/Services/AWSPersonalize/Sources/AWSPersonalize/PersonalizeClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PersonalizeClient: ClientRuntime.Client { public static let clientName = "PersonalizeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PersonalizeClient.PersonalizeClientConfiguration let serviceName = "Personalize" diff --git a/Sources/Services/AWSPersonalizeEvents/Sources/AWSPersonalizeEvents/PersonalizeEventsClient.swift b/Sources/Services/AWSPersonalizeEvents/Sources/AWSPersonalizeEvents/PersonalizeEventsClient.swift index c1072f25e5e..26b8365f7b4 100644 --- a/Sources/Services/AWSPersonalizeEvents/Sources/AWSPersonalizeEvents/PersonalizeEventsClient.swift +++ b/Sources/Services/AWSPersonalizeEvents/Sources/AWSPersonalizeEvents/PersonalizeEventsClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PersonalizeEventsClient: ClientRuntime.Client { public static let clientName = "PersonalizeEventsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PersonalizeEventsClient.PersonalizeEventsClientConfiguration let serviceName = "Personalize Events" diff --git a/Sources/Services/AWSPersonalizeRuntime/Sources/AWSPersonalizeRuntime/PersonalizeRuntimeClient.swift b/Sources/Services/AWSPersonalizeRuntime/Sources/AWSPersonalizeRuntime/PersonalizeRuntimeClient.swift index 4ab89d51ba6..92dd83e5a73 100644 --- a/Sources/Services/AWSPersonalizeRuntime/Sources/AWSPersonalizeRuntime/PersonalizeRuntimeClient.swift +++ b/Sources/Services/AWSPersonalizeRuntime/Sources/AWSPersonalizeRuntime/PersonalizeRuntimeClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PersonalizeRuntimeClient: ClientRuntime.Client { public static let clientName = "PersonalizeRuntimeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PersonalizeRuntimeClient.PersonalizeRuntimeClientConfiguration let serviceName = "Personalize Runtime" diff --git a/Sources/Services/AWSPinpoint/Sources/AWSPinpoint/PinpointClient.swift b/Sources/Services/AWSPinpoint/Sources/AWSPinpoint/PinpointClient.swift index c72b873cf7b..7123a76a1f6 100644 --- a/Sources/Services/AWSPinpoint/Sources/AWSPinpoint/PinpointClient.swift +++ b/Sources/Services/AWSPinpoint/Sources/AWSPinpoint/PinpointClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PinpointClient: ClientRuntime.Client { public static let clientName = "PinpointClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PinpointClient.PinpointClientConfiguration let serviceName = "Pinpoint" diff --git a/Sources/Services/AWSPinpointEmail/Sources/AWSPinpointEmail/PinpointEmailClient.swift b/Sources/Services/AWSPinpointEmail/Sources/AWSPinpointEmail/PinpointEmailClient.swift index 7bcb28834fe..166a1ae6a54 100644 --- a/Sources/Services/AWSPinpointEmail/Sources/AWSPinpointEmail/PinpointEmailClient.swift +++ b/Sources/Services/AWSPinpointEmail/Sources/AWSPinpointEmail/PinpointEmailClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PinpointEmailClient: ClientRuntime.Client { public static let clientName = "PinpointEmailClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PinpointEmailClient.PinpointEmailClientConfiguration let serviceName = "Pinpoint Email" diff --git a/Sources/Services/AWSPinpointSMSVoice/Sources/AWSPinpointSMSVoice/PinpointSMSVoiceClient.swift b/Sources/Services/AWSPinpointSMSVoice/Sources/AWSPinpointSMSVoice/PinpointSMSVoiceClient.swift index 651773eca11..a4167507965 100644 --- a/Sources/Services/AWSPinpointSMSVoice/Sources/AWSPinpointSMSVoice/PinpointSMSVoiceClient.swift +++ b/Sources/Services/AWSPinpointSMSVoice/Sources/AWSPinpointSMSVoice/PinpointSMSVoiceClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PinpointSMSVoiceClient: ClientRuntime.Client { public static let clientName = "PinpointSMSVoiceClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PinpointSMSVoiceClient.PinpointSMSVoiceClientConfiguration let serviceName = "Pinpoint SMS Voice" diff --git a/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift b/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift index 46e255db470..fde1f40728e 100644 --- a/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift +++ b/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PinpointSMSVoiceV2Client: ClientRuntime.Client { public static let clientName = "PinpointSMSVoiceV2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PinpointSMSVoiceV2Client.PinpointSMSVoiceV2ClientConfiguration let serviceName = "Pinpoint SMS Voice V2" diff --git a/Sources/Services/AWSPipes/Sources/AWSPipes/PipesClient.swift b/Sources/Services/AWSPipes/Sources/AWSPipes/PipesClient.swift index ca56a1a2939..3603f41e664 100644 --- a/Sources/Services/AWSPipes/Sources/AWSPipes/PipesClient.swift +++ b/Sources/Services/AWSPipes/Sources/AWSPipes/PipesClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PipesClient: ClientRuntime.Client { public static let clientName = "PipesClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PipesClient.PipesClientConfiguration let serviceName = "Pipes" diff --git a/Sources/Services/AWSPolly/Sources/AWSPolly/PollyClient.swift b/Sources/Services/AWSPolly/Sources/AWSPolly/PollyClient.swift index 15f1e64bdd4..550611a65f7 100644 --- a/Sources/Services/AWSPolly/Sources/AWSPolly/PollyClient.swift +++ b/Sources/Services/AWSPolly/Sources/AWSPolly/PollyClient.swift @@ -69,7 +69,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PollyClient: ClientRuntime.Client { public static let clientName = "PollyClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PollyClient.PollyClientConfiguration let serviceName = "Polly" diff --git a/Sources/Services/AWSPricing/Sources/AWSPricing/PricingClient.swift b/Sources/Services/AWSPricing/Sources/AWSPricing/PricingClient.swift index 393e2650193..46a0ecaf094 100644 --- a/Sources/Services/AWSPricing/Sources/AWSPricing/PricingClient.swift +++ b/Sources/Services/AWSPricing/Sources/AWSPricing/PricingClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PricingClient: ClientRuntime.Client { public static let clientName = "PricingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PricingClient.PricingClientConfiguration let serviceName = "Pricing" diff --git a/Sources/Services/AWSPrivateNetworks/Sources/AWSPrivateNetworks/PrivateNetworksClient.swift b/Sources/Services/AWSPrivateNetworks/Sources/AWSPrivateNetworks/PrivateNetworksClient.swift index 954e3ace619..e6fa3fcdbb7 100644 --- a/Sources/Services/AWSPrivateNetworks/Sources/AWSPrivateNetworks/PrivateNetworksClient.swift +++ b/Sources/Services/AWSPrivateNetworks/Sources/AWSPrivateNetworks/PrivateNetworksClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class PrivateNetworksClient: ClientRuntime.Client { public static let clientName = "PrivateNetworksClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: PrivateNetworksClient.PrivateNetworksClientConfiguration let serviceName = "PrivateNetworks" diff --git a/Sources/Services/AWSProton/Sources/AWSProton/ProtonClient.swift b/Sources/Services/AWSProton/Sources/AWSProton/ProtonClient.swift index afc4d035829..f713cb42fde 100644 --- a/Sources/Services/AWSProton/Sources/AWSProton/ProtonClient.swift +++ b/Sources/Services/AWSProton/Sources/AWSProton/ProtonClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ProtonClient: ClientRuntime.Client { public static let clientName = "ProtonClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ProtonClient.ProtonClientConfiguration let serviceName = "Proton" diff --git a/Sources/Services/AWSQApps/Sources/AWSQApps/QAppsClient.swift b/Sources/Services/AWSQApps/Sources/AWSQApps/QAppsClient.swift index d17861a88eb..0293f1396f9 100644 --- a/Sources/Services/AWSQApps/Sources/AWSQApps/QAppsClient.swift +++ b/Sources/Services/AWSQApps/Sources/AWSQApps/QAppsClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class QAppsClient: ClientRuntime.Client { public static let clientName = "QAppsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: QAppsClient.QAppsClientConfiguration let serviceName = "QApps" diff --git a/Sources/Services/AWSQBusiness/Sources/AWSQBusiness/QBusinessClient.swift b/Sources/Services/AWSQBusiness/Sources/AWSQBusiness/QBusinessClient.swift index 82227bc2a27..58965c6df2f 100644 --- a/Sources/Services/AWSQBusiness/Sources/AWSQBusiness/QBusinessClient.swift +++ b/Sources/Services/AWSQBusiness/Sources/AWSQBusiness/QBusinessClient.swift @@ -68,7 +68,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class QBusinessClient: ClientRuntime.Client { public static let clientName = "QBusinessClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: QBusinessClient.QBusinessClientConfiguration let serviceName = "QBusiness" diff --git a/Sources/Services/AWSQConnect/Sources/AWSQConnect/QConnectClient.swift b/Sources/Services/AWSQConnect/Sources/AWSQConnect/QConnectClient.swift index 6bc5703e19b..9cf5736a84a 100644 --- a/Sources/Services/AWSQConnect/Sources/AWSQConnect/QConnectClient.swift +++ b/Sources/Services/AWSQConnect/Sources/AWSQConnect/QConnectClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class QConnectClient: ClientRuntime.Client { public static let clientName = "QConnectClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: QConnectClient.QConnectClientConfiguration let serviceName = "QConnect" diff --git a/Sources/Services/AWSQLDB/Sources/AWSQLDB/QLDBClient.swift b/Sources/Services/AWSQLDB/Sources/AWSQLDB/QLDBClient.swift index 157a9bdc9dc..1f4f64965bb 100644 --- a/Sources/Services/AWSQLDB/Sources/AWSQLDB/QLDBClient.swift +++ b/Sources/Services/AWSQLDB/Sources/AWSQLDB/QLDBClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class QLDBClient: ClientRuntime.Client { public static let clientName = "QLDBClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: QLDBClient.QLDBClientConfiguration let serviceName = "QLDB" diff --git a/Sources/Services/AWSQLDBSession/Sources/AWSQLDBSession/QLDBSessionClient.swift b/Sources/Services/AWSQLDBSession/Sources/AWSQLDBSession/QLDBSessionClient.swift index c2f338c835a..f1e503909ec 100644 --- a/Sources/Services/AWSQLDBSession/Sources/AWSQLDBSession/QLDBSessionClient.swift +++ b/Sources/Services/AWSQLDBSession/Sources/AWSQLDBSession/QLDBSessionClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class QLDBSessionClient: ClientRuntime.Client { public static let clientName = "QLDBSessionClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: QLDBSessionClient.QLDBSessionClientConfiguration let serviceName = "QLDB Session" diff --git a/Sources/Services/AWSQuickSight/Sources/AWSQuickSight/QuickSightClient.swift b/Sources/Services/AWSQuickSight/Sources/AWSQuickSight/QuickSightClient.swift index 625dec5dc76..65e675cd4d4 100644 --- a/Sources/Services/AWSQuickSight/Sources/AWSQuickSight/QuickSightClient.swift +++ b/Sources/Services/AWSQuickSight/Sources/AWSQuickSight/QuickSightClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class QuickSightClient: ClientRuntime.Client { public static let clientName = "QuickSightClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: QuickSightClient.QuickSightClientConfiguration let serviceName = "QuickSight" diff --git a/Sources/Services/AWSRAM/Sources/AWSRAM/RAMClient.swift b/Sources/Services/AWSRAM/Sources/AWSRAM/RAMClient.swift index 6ed4d3f1c4a..5c89478046b 100644 --- a/Sources/Services/AWSRAM/Sources/AWSRAM/RAMClient.swift +++ b/Sources/Services/AWSRAM/Sources/AWSRAM/RAMClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RAMClient: ClientRuntime.Client { public static let clientName = "RAMClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RAMClient.RAMClientConfiguration let serviceName = "RAM" diff --git a/Sources/Services/AWSRDS/Sources/AWSRDS/RDSClient.swift b/Sources/Services/AWSRDS/Sources/AWSRDS/RDSClient.swift index 829a218da4d..626cfbb05d6 100644 --- a/Sources/Services/AWSRDS/Sources/AWSRDS/RDSClient.swift +++ b/Sources/Services/AWSRDS/Sources/AWSRDS/RDSClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RDSClient: ClientRuntime.Client { public static let clientName = "RDSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RDSClient.RDSClientConfiguration let serviceName = "RDS" diff --git a/Sources/Services/AWSRDSData/Sources/AWSRDSData/RDSDataClient.swift b/Sources/Services/AWSRDSData/Sources/AWSRDSData/RDSDataClient.swift index 305933fbc2e..96cb9e654e7 100644 --- a/Sources/Services/AWSRDSData/Sources/AWSRDSData/RDSDataClient.swift +++ b/Sources/Services/AWSRDSData/Sources/AWSRDSData/RDSDataClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RDSDataClient: ClientRuntime.Client { public static let clientName = "RDSDataClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RDSDataClient.RDSDataClientConfiguration let serviceName = "RDS Data" diff --git a/Sources/Services/AWSRUM/Sources/AWSRUM/RUMClient.swift b/Sources/Services/AWSRUM/Sources/AWSRUM/RUMClient.swift index 805c4dc27a2..fd9e601265a 100644 --- a/Sources/Services/AWSRUM/Sources/AWSRUM/RUMClient.swift +++ b/Sources/Services/AWSRUM/Sources/AWSRUM/RUMClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RUMClient: ClientRuntime.Client { public static let clientName = "RUMClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RUMClient.RUMClientConfiguration let serviceName = "RUM" diff --git a/Sources/Services/AWSRbin/Sources/AWSRbin/RbinClient.swift b/Sources/Services/AWSRbin/Sources/AWSRbin/RbinClient.swift index e61f4c1a320..a874a59aecc 100644 --- a/Sources/Services/AWSRbin/Sources/AWSRbin/RbinClient.swift +++ b/Sources/Services/AWSRbin/Sources/AWSRbin/RbinClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RbinClient: ClientRuntime.Client { public static let clientName = "RbinClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RbinClient.RbinClientConfiguration let serviceName = "rbin" diff --git a/Sources/Services/AWSRedshift/Sources/AWSRedshift/RedshiftClient.swift b/Sources/Services/AWSRedshift/Sources/AWSRedshift/RedshiftClient.swift index d63f1af4907..546c80cd7c0 100644 --- a/Sources/Services/AWSRedshift/Sources/AWSRedshift/RedshiftClient.swift +++ b/Sources/Services/AWSRedshift/Sources/AWSRedshift/RedshiftClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RedshiftClient: ClientRuntime.Client { public static let clientName = "RedshiftClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RedshiftClient.RedshiftClientConfiguration let serviceName = "Redshift" diff --git a/Sources/Services/AWSRedshiftData/Sources/AWSRedshiftData/RedshiftDataClient.swift b/Sources/Services/AWSRedshiftData/Sources/AWSRedshiftData/RedshiftDataClient.swift index 3df65f70a75..80ca4d08a68 100644 --- a/Sources/Services/AWSRedshiftData/Sources/AWSRedshiftData/RedshiftDataClient.swift +++ b/Sources/Services/AWSRedshiftData/Sources/AWSRedshiftData/RedshiftDataClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RedshiftDataClient: ClientRuntime.Client { public static let clientName = "RedshiftDataClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RedshiftDataClient.RedshiftDataClientConfiguration let serviceName = "Redshift Data" diff --git a/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/RedshiftServerlessClient.swift b/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/RedshiftServerlessClient.swift index 65d3b1ed89a..25968a74838 100644 --- a/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/RedshiftServerlessClient.swift +++ b/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/RedshiftServerlessClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RedshiftServerlessClient: ClientRuntime.Client { public static let clientName = "RedshiftServerlessClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RedshiftServerlessClient.RedshiftServerlessClientConfiguration let serviceName = "Redshift Serverless" diff --git a/Sources/Services/AWSRekognition/Sources/AWSRekognition/RekognitionClient.swift b/Sources/Services/AWSRekognition/Sources/AWSRekognition/RekognitionClient.swift index 4a8805c734f..385a5f69415 100644 --- a/Sources/Services/AWSRekognition/Sources/AWSRekognition/RekognitionClient.swift +++ b/Sources/Services/AWSRekognition/Sources/AWSRekognition/RekognitionClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RekognitionClient: ClientRuntime.Client { public static let clientName = "RekognitionClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RekognitionClient.RekognitionClientConfiguration let serviceName = "Rekognition" diff --git a/Sources/Services/AWSRepostspace/Sources/AWSRepostspace/RepostspaceClient.swift b/Sources/Services/AWSRepostspace/Sources/AWSRepostspace/RepostspaceClient.swift index 827ec70e638..64cfb464e37 100644 --- a/Sources/Services/AWSRepostspace/Sources/AWSRepostspace/RepostspaceClient.swift +++ b/Sources/Services/AWSRepostspace/Sources/AWSRepostspace/RepostspaceClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RepostspaceClient: ClientRuntime.Client { public static let clientName = "RepostspaceClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RepostspaceClient.RepostspaceClientConfiguration let serviceName = "repostspace" diff --git a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Models.swift b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Models.swift index 613d29c2308..6860938caf1 100644 --- a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Models.swift +++ b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Models.swift @@ -185,7 +185,7 @@ public struct AcceptResourceGroupingRecommendationsInput: Swift.Sendable { /// Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. /// This member is required. public var appArn: Swift.String? - /// Indicates the list of resource grouping recommendations you want to include in your application. + /// List of resource grouping recommendations you want to include in your application. /// This member is required. public var entries: [ResiliencehubClientTypes.AcceptGroupingRecommendationEntry]? @@ -225,7 +225,7 @@ public struct AcceptResourceGroupingRecommendationsOutput: Swift.Sendable { /// Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. /// This member is required. public var appArn: Swift.String? - /// Indicates the list of resource grouping recommendations that could not be included in your application. + /// List of resource grouping recommendations that could not be included in your application. /// This member is required. public var failedEntries: [ResiliencehubClientTypes.FailedGroupingRecommendationEntry]? @@ -992,7 +992,7 @@ extension ResiliencehubClientTypes { public var awsApplicationArn: Swift.String? /// Current status of compliance for the resiliency policy. public var complianceStatus: ResiliencehubClientTypes.AppComplianceStatusType? - /// Date and time when the app was created. + /// Date and time when the application was created. /// This member is required. public var creationTime: Foundation.Date? /// Optional description for an application. @@ -1500,7 +1500,7 @@ extension ResiliencehubClientTypes { public var policy: [Swift.String: ResiliencehubClientTypes.FailurePolicy]? /// Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. public var policyArn: Swift.String? - /// The description for the policy. + /// Description of the resiliency policy. public var policyDescription: Swift.String? /// The name of the policy public var policyName: Swift.String? @@ -2847,9 +2847,9 @@ public struct CreateResiliencyPolicyInput: Swift.Sendable { /// The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. /// This member is required. public var policy: [Swift.String: ResiliencehubClientTypes.FailurePolicy]? - /// The description for the policy. + /// Description of the resiliency policy. public var policyDescription: Swift.String? - /// The name of the policy + /// Name of the resiliency policy. /// This member is required. public var policyName: Swift.String? /// Tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair. @@ -3679,6 +3679,80 @@ public struct DescribeDraftAppVersionResourcesImportStatusOutput: Swift.Sendable } } +public struct DescribeMetricsExportInput: Swift.Sendable { + /// Identifier of the metrics export task. + /// This member is required. + public var metricsExportId: Swift.String? + + public init( + metricsExportId: Swift.String? = nil + ) + { + self.metricsExportId = metricsExportId + } +} + +extension ResiliencehubClientTypes { + + public enum MetricsExportStatusType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case failed + case inProgress + case pending + case success + case sdkUnknown(Swift.String) + + public static var allCases: [MetricsExportStatusType] { + return [ + .failed, + .inProgress, + .pending, + .success + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .failed: return "Failed" + case .inProgress: return "InProgress" + case .pending: return "Pending" + case .success: return "Success" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct DescribeMetricsExportOutput: Swift.Sendable { + /// Explains the error that occurred while exporting the metrics. + public var errorMessage: Swift.String? + /// Specifies the name of the Amazon S3 bucket where the exported metrics is stored. + public var exportLocation: ResiliencehubClientTypes.S3Location? + /// Identifier for the metrics export task. + /// This member is required. + public var metricsExportId: Swift.String? + /// Indicates the status of the metrics export task. + /// This member is required. + public var status: ResiliencehubClientTypes.MetricsExportStatusType? + + public init( + errorMessage: Swift.String? = nil, + exportLocation: ResiliencehubClientTypes.S3Location? = nil, + metricsExportId: Swift.String? = nil, + status: ResiliencehubClientTypes.MetricsExportStatusType? = nil + ) + { + self.errorMessage = errorMessage + self.exportLocation = exportLocation + self.metricsExportId = metricsExportId + self.status = status + } +} + public struct DescribeResiliencyPolicyInput: Swift.Sendable { /// Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. /// This member is required. @@ -3709,7 +3783,7 @@ public struct DescribeResourceGroupingRecommendationTaskInput: Swift.Sendable { /// Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. /// This member is required. public var appArn: Swift.String? - /// Indicates the identifier of the grouping recommendation task. + /// Identifier of the grouping recommendation task. public var groupingId: Swift.String? public init( @@ -3758,9 +3832,9 @@ extension ResiliencehubClientTypes { } public struct DescribeResourceGroupingRecommendationTaskOutput: Swift.Sendable { - /// Indicates the error that occurred while generating a grouping recommendation. + /// Error that occurred while generating a grouping recommendation. public var errorMessage: Swift.String? - /// Indicates the identifier of the grouping recommendation task. + /// Identifier of the grouping recommendation task. /// This member is required. public var groupingId: Swift.String? /// Status of the action. @@ -3936,7 +4010,7 @@ public struct ListAppAssessmentComplianceDriftsInput: Swift.Sendable { /// Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. /// This member is required. public var assessmentArn: Swift.String? - /// Indicates the maximum number of compliance drifts requested. + /// Maximum number of compliance drifts requested. public var maxResults: Swift.Int? /// Null, or the token from a previous call to get the next set of results. public var nextToken: Swift.String? @@ -4087,7 +4161,7 @@ public struct ListAppAssessmentResourceDriftsInput: Swift.Sendable { /// Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. /// This member is required. public var assessmentArn: Swift.String? - /// Indicates the maximum number of drift results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + /// Maximum number of drift results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. public var maxResults: Swift.Int? /// Null, or the token from a previous call to get the next set of results. public var nextToken: Swift.String? @@ -4583,7 +4657,7 @@ public struct ListAppsInput: Swift.Sendable { public var appArn: Swift.String? /// Amazon Resource Name (ARN) of Resource Groups group that is integrated with an AppRegistry application. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. public var awsApplicationArn: Swift.String? - /// Indicates the lower limit of the range that is used to filter applications based on their last assessment times. + /// Lower limit of the range that is used to filter applications based on their last assessment times. public var fromLastAssessmentTime: Foundation.Date? /// Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. public var maxResults: Swift.Int? @@ -4593,7 +4667,7 @@ public struct ListAppsInput: Swift.Sendable { public var nextToken: Swift.String? /// The application list is sorted based on the values of lastAppComplianceEvaluationTime field. By default, application list is sorted in ascending order. To sort the application list in descending order, set this field to True. public var reverseOrder: Swift.Bool? - /// Indicates the upper limit of the range that is used to filter the applications based on their last assessment times. + /// Upper limit of the range that is used to filter the applications based on their last assessment times. public var toLastAssessmentTime: Foundation.Date? public init( @@ -4828,6 +4902,202 @@ public struct ListAppVersionsOutput: Swift.Sendable { } } +extension ResiliencehubClientTypes { + + public enum ConditionOperatorType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case equals + case greaterOrEquals + case greaterThen + case lessOrEquals + case lessThen + case notEquals + case sdkUnknown(Swift.String) + + public static var allCases: [ConditionOperatorType] { + return [ + .equals, + .greaterOrEquals, + .greaterThen, + .lessOrEquals, + .lessThen, + .notEquals + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .equals: return "Equals" + case .greaterOrEquals: return "GreaterOrEquals" + case .greaterThen: return "GreaterThen" + case .lessOrEquals: return "LessOrEquals" + case .lessThen: return "LessThen" + case .notEquals: return "NotEquals" + case let .sdkUnknown(s): return s + } + } + } +} + +extension ResiliencehubClientTypes { + + /// Indicates the condition based on which you want to filter the metrics. + public struct Condition: Swift.Sendable { + /// Indicates the field in the metric. + /// This member is required. + public var field: Swift.String? + /// Indicates the type of operator or comparison to be used when evaluating a condition against the specified field. + /// This member is required. + public var `operator`: ResiliencehubClientTypes.ConditionOperatorType? + /// Indicates the value or data against which a condition is evaluated. + public var value: Swift.String? + + public init( + field: Swift.String? = nil, + `operator`: ResiliencehubClientTypes.ConditionOperatorType? = nil, + value: Swift.String? = nil + ) + { + self.field = field + self.`operator` = `operator` + self.value = value + } + } +} + +extension ResiliencehubClientTypes { + + public enum FieldAggregationType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case avg + case count + case max + case min + case sum + case sdkUnknown(Swift.String) + + public static var allCases: [FieldAggregationType] { + return [ + .avg, + .count, + .max, + .min, + .sum + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .avg: return "Avg" + case .count: return "Count" + case .max: return "Max" + case .min: return "Min" + case .sum: return "Sum" + case let .sdkUnknown(s): return s + } + } + } +} + +extension ResiliencehubClientTypes { + + /// Indicates the field or attribute of a resource or data structure on which a condition is being applied or evaluated. + public struct Field: Swift.Sendable { + /// (Optional) Indicates the type of aggregation or summary operation (such as Sum, Average, and so on) to be performed on a particular field or set of data. + public var aggregation: ResiliencehubClientTypes.FieldAggregationType? + /// Name of the field. + /// This member is required. + public var name: Swift.String? + + public init( + aggregation: ResiliencehubClientTypes.FieldAggregationType? = nil, + name: Swift.String? = nil + ) + { + self.aggregation = aggregation + self.name = name + } + } +} + +extension ResiliencehubClientTypes { + + /// Indicates the sorting order of the fields in the metrics. + public struct Sort: Swift.Sendable { + /// Indicates the name or identifier of the field or attribute that should be used as the basis for sorting the metrics. + public var ascending: Swift.Bool? + /// Indicates the order in which you want to sort the metrics. By default, the list is sorted in ascending order. To sort the list in descending order, set this field to False. + /// This member is required. + public var field: Swift.String? + + public init( + ascending: Swift.Bool? = nil, + field: Swift.String? = nil + ) + { + self.ascending = ascending + self.field = field + } + } +} + +public struct ListMetricsInput: Swift.Sendable { + /// Indicates the list of all the conditions that were applied on the metrics. + public var conditions: [ResiliencehubClientTypes.Condition]? + /// Indicates the data source of the metrics. + public var dataSource: Swift.String? + /// Indicates the list of fields in the data source. + public var fields: [ResiliencehubClientTypes.Field]? + /// Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + public var maxResults: Swift.Int? + /// Null, or the token from a previous call to get the next set of results. + public var nextToken: Swift.String? + /// (Optional) Indicates the order in which you want to sort the fields in the metrics. By default, the fields are sorted in the ascending order. + public var sorts: [ResiliencehubClientTypes.Sort]? + + public init( + conditions: [ResiliencehubClientTypes.Condition]? = nil, + dataSource: Swift.String? = nil, + fields: [ResiliencehubClientTypes.Field]? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil, + sorts: [ResiliencehubClientTypes.Sort]? = nil + ) + { + self.conditions = conditions + self.dataSource = dataSource + self.fields = fields + self.maxResults = maxResults + self.nextToken = nextToken + self.sorts = sorts + } +} + +public struct ListMetricsOutput: Swift.Sendable { + /// Token for the next set of results, or null if there are no more results. + public var nextToken: Swift.String? + /// Specifies all the list of metric values for each row of metrics. + /// This member is required. + public var rows: [[Swift.String]]? + + public init( + nextToken: Swift.String? = nil, + rows: [[Swift.String]]? = nil + ) + { + self.nextToken = nextToken + self.rows = rows + } +} + public struct ListRecommendationTemplatesInput: Swift.Sendable { /// Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. public var assessmentArn: Swift.String? @@ -4885,7 +5155,7 @@ public struct ListResiliencyPoliciesInput: Swift.Sendable { public var maxResults: Swift.Int? /// Null, or the token from a previous call to get the next set of results. public var nextToken: Swift.String? - /// The name of the policy + /// Name of the resiliency policy. public var policyName: Swift.String? public init( @@ -5772,7 +6042,7 @@ public struct RejectResourceGroupingRecommendationsInput: Swift.Sendable { /// Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. /// This member is required. public var appArn: Swift.String? - /// Indicates the list of resource grouping recommendations you have selected to exclude from your application. + /// List of resource grouping recommendations you have selected to exclude from your application. /// This member is required. public var entries: [ResiliencehubClientTypes.RejectGroupingRecommendationEntry]? @@ -5790,7 +6060,7 @@ public struct RejectResourceGroupingRecommendationsOutput: Swift.Sendable { /// Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. /// This member is required. public var appArn: Swift.String? - /// Indicates the list of resource grouping recommendations that failed to get excluded in your application. + /// List of resource grouping recommendations that failed to get excluded in your application. /// This member is required. public var failedEntries: [ResiliencehubClientTypes.FailedGroupingRecommendationEntry]? @@ -5952,6 +6222,40 @@ public struct StartAppAssessmentOutput: Swift.Sendable { } } +public struct StartMetricsExportInput: Swift.Sendable { + /// (Optional) Specifies the name of the Amazon Simple Storage Service bucket where the exported metrics will be stored. + public var bucketName: Swift.String? + /// Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests. + public var clientToken: Swift.String? + + public init( + bucketName: Swift.String? = nil, + clientToken: Swift.String? = nil + ) + { + self.bucketName = bucketName + self.clientToken = clientToken + } +} + +public struct StartMetricsExportOutput: Swift.Sendable { + /// Identifier of the metrics export task. + /// This member is required. + public var metricsExportId: Swift.String? + /// Indicates the status of the metrics export task. + /// This member is required. + public var status: ResiliencehubClientTypes.MetricsExportStatusType? + + public init( + metricsExportId: Swift.String? = nil, + status: ResiliencehubClientTypes.MetricsExportStatusType? = nil + ) + { + self.metricsExportId = metricsExportId + self.status = status + } +} + public struct StartResourceGroupingRecommendationTaskInput: Swift.Sendable { /// Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. /// This member is required. @@ -5969,9 +6273,9 @@ public struct StartResourceGroupingRecommendationTaskOutput: Swift.Sendable { /// Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. /// This member is required. public var appArn: Swift.String? - /// Indicates the error that occurred while executing a grouping recommendation task. + /// Error that occurred while executing a grouping recommendation task. public var errorMessage: Swift.String? - /// Indicates the identifier of the grouping recommendation task. + /// Identifier of the grouping recommendation task. /// This member is required. public var groupingId: Swift.String? /// Status of the action. @@ -6263,14 +6567,14 @@ public struct UpdateAppVersionResourceOutput: Swift.Sendable { public struct UpdateResiliencyPolicyInput: Swift.Sendable { /// Specifies a high-level geographical location constraint for where your resilience policy data can be stored. public var dataLocationConstraint: ResiliencehubClientTypes.DataLocationConstraint? - /// The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. + /// Resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. public var policy: [Swift.String: ResiliencehubClientTypes.FailurePolicy]? /// Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. /// This member is required. public var policyArn: Swift.String? - /// The description for the policy. + /// Description of the resiliency policy. public var policyDescription: Swift.String? - /// The name of the policy + /// Name of the resiliency policy. public var policyName: Swift.String? /// The tier for this resiliency policy, ranging from the highest severity (MissionCritical) to lowest (NonCritical). public var tier: ResiliencehubClientTypes.ResiliencyPolicyTier? @@ -6294,7 +6598,7 @@ public struct UpdateResiliencyPolicyInput: Swift.Sendable { } public struct UpdateResiliencyPolicyOutput: Swift.Sendable { - /// The type of resiliency policy that was updated, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. + /// The resiliency policy that was updated, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. /// This member is required. public var policy: ResiliencehubClientTypes.ResiliencyPolicy? @@ -6467,6 +6771,13 @@ extension DescribeDraftAppVersionResourcesImportStatusInput { } } +extension DescribeMetricsExportInput { + + static func urlPathProvider(_ value: DescribeMetricsExportInput) -> Swift.String? { + return "/describe-metrics-export" + } +} + extension DescribeResiliencyPolicyInput { static func urlPathProvider(_ value: DescribeResiliencyPolicyInput) -> Swift.String? { @@ -6654,6 +6965,13 @@ extension ListAppVersionsInput { } } +extension ListMetricsInput { + + static func urlPathProvider(_ value: ListMetricsInput) -> Swift.String? { + return "/list-metrics" + } +} + extension ListRecommendationTemplatesInput { static func urlPathProvider(_ value: ListRecommendationTemplatesInput) -> Swift.String? { @@ -6849,6 +7167,13 @@ extension StartAppAssessmentInput { } } +extension StartMetricsExportInput { + + static func urlPathProvider(_ value: StartMetricsExportInput) -> Swift.String? { + return "/start-metrics-export" + } +} + extension StartResourceGroupingRecommendationTaskInput { static func urlPathProvider(_ value: StartResourceGroupingRecommendationTaskInput) -> Swift.String? { @@ -7178,6 +7503,14 @@ extension DescribeDraftAppVersionResourcesImportStatusInput { } } +extension DescribeMetricsExportInput { + + static func write(value: DescribeMetricsExportInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["metricsExportId"].write(value.metricsExportId) + } +} + extension DescribeResiliencyPolicyInput { static func write(value: DescribeResiliencyPolicyInput?, to writer: SmithyJSON.Writer) throws { @@ -7314,6 +7647,19 @@ extension ListAppVersionsInput { } } +extension ListMetricsInput { + + static func write(value: ListMetricsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["conditions"].writeList(value.conditions, memberWritingClosure: ResiliencehubClientTypes.Condition.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["dataSource"].write(value.dataSource) + try writer["fields"].writeList(value.fields, memberWritingClosure: ResiliencehubClientTypes.Field.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["maxResults"].write(value.maxResults) + try writer["nextToken"].write(value.nextToken) + try writer["sorts"].writeList(value.sorts, memberWritingClosure: ResiliencehubClientTypes.Sort.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + extension ListSopRecommendationsInput { static func write(value: ListSopRecommendationsInput?, to writer: SmithyJSON.Writer) throws { @@ -7408,6 +7754,15 @@ extension StartAppAssessmentInput { } } +extension StartMetricsExportInput { + + static func write(value: StartMetricsExportInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["bucketName"].write(value.bucketName) + try writer["clientToken"].write(value.clientToken) + } +} + extension StartResourceGroupingRecommendationTaskInput { static func write(value: StartResourceGroupingRecommendationTaskInput?, to writer: SmithyJSON.Writer) throws { @@ -7798,6 +8153,21 @@ extension DescribeDraftAppVersionResourcesImportStatusOutput { } } +extension DescribeMetricsExportOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeMetricsExportOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = DescribeMetricsExportOutput() + value.errorMessage = try reader["errorMessage"].readIfPresent() + value.exportLocation = try reader["exportLocation"].readIfPresent(with: ResiliencehubClientTypes.S3Location.read(from:)) + value.metricsExportId = try reader["metricsExportId"].readIfPresent() ?? "" + value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") + return value + } +} + extension DescribeResiliencyPolicyOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeResiliencyPolicyOutput { @@ -8000,6 +8370,19 @@ extension ListAppVersionsOutput { } } +extension ListMetricsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListMetricsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListMetricsOutput() + value.nextToken = try reader["nextToken"].readIfPresent() + value.rows = try reader["rows"].readListIfPresent(memberReadingClosure: SmithyReadWrite.listReadingClosure(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + extension ListRecommendationTemplatesOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListRecommendationTemplatesOutput { @@ -8185,6 +8568,19 @@ extension StartAppAssessmentOutput { } } +extension StartMetricsExportOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartMetricsExportOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = StartMetricsExportOutput() + value.metricsExportId = try reader["metricsExportId"].readIfPresent() ?? "" + value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") + return value + } +} + extension StartResourceGroupingRecommendationTaskOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartResourceGroupingRecommendationTaskOutput { @@ -8712,6 +9108,24 @@ enum DescribeDraftAppVersionResourcesImportStatusOutputError { } } +enum DescribeMetricsExportOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum DescribeResiliencyPolicyOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -8982,6 +9396,23 @@ enum ListAppVersionsOutputError { } } +enum ListMetricsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListRecommendationTemplatesOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -9242,6 +9673,25 @@ enum StartAppAssessmentOutputError { } } +enum StartMetricsExportOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum StartResourceGroupingRecommendationTaskOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -10299,6 +10749,34 @@ extension ResiliencehubClientTypes.UpdateRecommendationStatusRequestEntry { } } +extension ResiliencehubClientTypes.Field { + + static func write(value: ResiliencehubClientTypes.Field?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["aggregation"].write(value.aggregation) + try writer["name"].write(value.name) + } +} + +extension ResiliencehubClientTypes.Condition { + + static func write(value: ResiliencehubClientTypes.Condition?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["field"].write(value.field) + try writer["operator"].write(value.`operator`) + try writer["value"].write(value.value) + } +} + +extension ResiliencehubClientTypes.Sort { + + static func write(value: ResiliencehubClientTypes.Sort?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ascending"].write(value.ascending) + try writer["field"].write(value.field) + } +} + extension ResiliencehubClientTypes.RejectGroupingRecommendationEntry { static func write(value: ResiliencehubClientTypes.RejectGroupingRecommendationEntry?, to writer: SmithyJSON.Writer) throws { diff --git a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Paginators.swift b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Paginators.swift index d4ee17dc1a4..e62be283458 100644 --- a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Paginators.swift +++ b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Paginators.swift @@ -301,6 +301,40 @@ extension ListAppVersionsInput: ClientRuntime.PaginateToken { startTime: self.startTime )} } +extension ResiliencehubClient { + /// Paginate over `[ListMetricsOutput]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMetricsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMetricsOutput` + public func listMetricsPaginated(input: ListMetricsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listMetrics(input:)) + } +} + +extension ListMetricsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListMetricsInput { + return ListMetricsInput( + conditions: self.conditions, + dataSource: self.dataSource, + fields: self.fields, + maxResults: self.maxResults, + nextToken: token, + sorts: self.sorts + )} +} + +extension PaginatorSequence where OperationStackInput == ListMetricsInput, OperationStackOutput == ListMetricsOutput { + /// This paginator transforms the `AsyncSequence` returned by `listMetricsPaginated` + /// to access the nested member `[[Swift.String]]` + /// - Returns: `[[Swift.String]]` + public func rows() async throws -> [[Swift.String]] { + return try await self.asyncCompactMap { item in item.rows } + } +} extension ResiliencehubClient { /// Paginate over `[ListRecommendationTemplatesOutput]` results. /// diff --git a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/ResiliencehubClient.swift b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/ResiliencehubClient.swift index 9e4dbe83d80..8838da0a329 100644 --- a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/ResiliencehubClient.swift +++ b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/ResiliencehubClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ResiliencehubClient: ClientRuntime.Client { public static let clientName = "ResiliencehubClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ResiliencehubClient.ResiliencehubClientConfiguration let serviceName = "resiliencehub" @@ -1927,6 +1927,79 @@ extension ResiliencehubClient { return try await op.execute(input: input) } + /// Performs the `DescribeMetricsExport` operation on the `AwsResilienceHub` service. + /// + /// Describes the metrics of the application configuration being exported. + /// + /// - Parameter DescribeMetricsExportInput : [no documentation found] + /// + /// - Returns: `DescribeMetricsExportOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You don't have permissions to perform the requested operation. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. + /// - `InternalServerException` : This exception occurs when there is an internal failure in the Resilience Hub service. + /// - `ResourceNotFoundException` : This exception occurs when the specified resource could not be found. + /// - `ThrottlingException` : This exception occurs when you have exceeded the limit on the number of requests per second. + /// - `ValidationException` : This exception occurs when a request is not valid. + public func describeMetricsExport(input: DescribeMetricsExportInput) async throws -> DescribeMetricsExportOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "describeMetricsExport") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "resiliencehub") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DescribeMetricsExportInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DescribeMetricsExportInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DescribeMetricsExportOutput.httpOutput(from:), DescribeMetricsExportOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: ResiliencehubClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Resiliencehub") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DescribeMetricsExport") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DescribeResiliencyPolicy` operation on the `AwsResilienceHub` service. /// /// Describes a specified resiliency policy for an Resilience Hub application. The returned policy object includes creation time, data location constraints, the Amazon Resource Name (ARN) for the policy, tags, tier, and more. @@ -2223,7 +2296,7 @@ extension ResiliencehubClient { /// Performs the `ListAppAssessmentComplianceDrifts` operation on the `AwsResilienceHub` service. /// - /// Indicates the list of compliance drifts that were detected while running an assessment. + /// List of compliance drifts that were detected while running an assessment. /// /// - Parameter ListAppAssessmentComplianceDriftsInput : [no documentation found] /// @@ -2295,7 +2368,7 @@ extension ResiliencehubClient { /// Performs the `ListAppAssessmentResourceDrifts` operation on the `AwsResilienceHub` service. /// - /// Indicates the list of resource drifts that were detected while running an assessment. + /// List of resource drifts that were detected while running an assessment. /// /// - Parameter ListAppAssessmentResourceDriftsInput : [no documentation found] /// @@ -3018,6 +3091,78 @@ extension ResiliencehubClient { return try await op.execute(input: input) } + /// Performs the `ListMetrics` operation on the `AwsResilienceHub` service. + /// + /// Lists the metrics that can be exported. + /// + /// - Parameter ListMetricsInput : [no documentation found] + /// + /// - Returns: `ListMetricsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You don't have permissions to perform the requested operation. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. + /// - `InternalServerException` : This exception occurs when there is an internal failure in the Resilience Hub service. + /// - `ThrottlingException` : This exception occurs when you have exceeded the limit on the number of requests per second. + /// - `ValidationException` : This exception occurs when a request is not valid. + public func listMetrics(input: ListMetricsInput) async throws -> ListMetricsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listMetrics") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "resiliencehub") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListMetricsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListMetricsInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListMetricsOutput.httpOutput(from:), ListMetricsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: ResiliencehubClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Resiliencehub") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListMetrics") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListRecommendationTemplates` operation on the `AwsResilienceHub` service. /// /// Lists the recommendation templates for the Resilience Hub applications. @@ -4038,6 +4183,81 @@ extension ResiliencehubClient { return try await op.execute(input: input) } + /// Performs the `StartMetricsExport` operation on the `AwsResilienceHub` service. + /// + /// Initiates the export task of metrics. + /// + /// - Parameter StartMetricsExportInput : [no documentation found] + /// + /// - Returns: `StartMetricsExportOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You don't have permissions to perform the requested operation. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. + /// - `ConflictException` : This exception occurs when a conflict with a previous successful write is detected. This generally occurs when the previous write did not have time to propagate to the host serving the current request. A retry (with appropriate backoff logic) is the recommended response to this exception. + /// - `InternalServerException` : This exception occurs when there is an internal failure in the Resilience Hub service. + /// - `ServiceQuotaExceededException` : This exception occurs when you have exceeded your service quota. To perform the requested action, remove some of the relevant resources, or use Service Quotas to request a service quota increase. + /// - `ThrottlingException` : This exception occurs when you have exceeded the limit on the number of requests per second. + /// - `ValidationException` : This exception occurs when a request is not valid. + public func startMetricsExport(input: StartMetricsExportInput) async throws -> StartMetricsExportOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "startMetricsExport") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "resiliencehub") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.IdempotencyTokenMiddleware(keyPath: \.clientToken)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(StartMetricsExportInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: StartMetricsExportInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(StartMetricsExportOutput.httpOutput(from:), StartMetricsExportOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: ResiliencehubClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Resiliencehub") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "StartMetricsExport") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `StartResourceGroupingRecommendationTask` operation on the `AwsResilienceHub` service. /// /// Starts grouping recommendation task. diff --git a/Sources/Services/AWSResourceExplorer2/Sources/AWSResourceExplorer2/ResourceExplorer2Client.swift b/Sources/Services/AWSResourceExplorer2/Sources/AWSResourceExplorer2/ResourceExplorer2Client.swift index 9db6ba0801b..31ade8d3ad5 100644 --- a/Sources/Services/AWSResourceExplorer2/Sources/AWSResourceExplorer2/ResourceExplorer2Client.swift +++ b/Sources/Services/AWSResourceExplorer2/Sources/AWSResourceExplorer2/ResourceExplorer2Client.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ResourceExplorer2Client: ClientRuntime.Client { public static let clientName = "ResourceExplorer2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ResourceExplorer2Client.ResourceExplorer2ClientConfiguration let serviceName = "Resource Explorer 2" diff --git a/Sources/Services/AWSResourceGroups/Sources/AWSResourceGroups/ResourceGroupsClient.swift b/Sources/Services/AWSResourceGroups/Sources/AWSResourceGroups/ResourceGroupsClient.swift index 09934284d27..28e8f5bec9f 100644 --- a/Sources/Services/AWSResourceGroups/Sources/AWSResourceGroups/ResourceGroupsClient.swift +++ b/Sources/Services/AWSResourceGroups/Sources/AWSResourceGroups/ResourceGroupsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ResourceGroupsClient: ClientRuntime.Client { public static let clientName = "ResourceGroupsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ResourceGroupsClient.ResourceGroupsClientConfiguration let serviceName = "Resource Groups" diff --git a/Sources/Services/AWSResourceGroupsTaggingAPI/Sources/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.swift b/Sources/Services/AWSResourceGroupsTaggingAPI/Sources/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.swift index ec28b44d45b..52fc940036c 100644 --- a/Sources/Services/AWSResourceGroupsTaggingAPI/Sources/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.swift +++ b/Sources/Services/AWSResourceGroupsTaggingAPI/Sources/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ResourceGroupsTaggingAPIClient: ClientRuntime.Client { public static let clientName = "ResourceGroupsTaggingAPIClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ResourceGroupsTaggingAPIClient.ResourceGroupsTaggingAPIClientConfiguration let serviceName = "Resource Groups Tagging API" diff --git a/Sources/Services/AWSRoboMaker/Sources/AWSRoboMaker/RoboMakerClient.swift b/Sources/Services/AWSRoboMaker/Sources/AWSRoboMaker/RoboMakerClient.swift index a8c1447ba96..c4e53c27c3d 100644 --- a/Sources/Services/AWSRoboMaker/Sources/AWSRoboMaker/RoboMakerClient.swift +++ b/Sources/Services/AWSRoboMaker/Sources/AWSRoboMaker/RoboMakerClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RoboMakerClient: ClientRuntime.Client { public static let clientName = "RoboMakerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RoboMakerClient.RoboMakerClientConfiguration let serviceName = "RoboMaker" diff --git a/Sources/Services/AWSRolesAnywhere/Sources/AWSRolesAnywhere/RolesAnywhereClient.swift b/Sources/Services/AWSRolesAnywhere/Sources/AWSRolesAnywhere/RolesAnywhereClient.swift index d495532f3bc..85c99063ad1 100644 --- a/Sources/Services/AWSRolesAnywhere/Sources/AWSRolesAnywhere/RolesAnywhereClient.swift +++ b/Sources/Services/AWSRolesAnywhere/Sources/AWSRolesAnywhere/RolesAnywhereClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class RolesAnywhereClient: ClientRuntime.Client { public static let clientName = "RolesAnywhereClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: RolesAnywhereClient.RolesAnywhereClientConfiguration let serviceName = "RolesAnywhere" diff --git a/Sources/Services/AWSRoute53/Sources/AWSRoute53/Route53Client.swift b/Sources/Services/AWSRoute53/Sources/AWSRoute53/Route53Client.swift index 0b86c952972..4083bfcedee 100644 --- a/Sources/Services/AWSRoute53/Sources/AWSRoute53/Route53Client.swift +++ b/Sources/Services/AWSRoute53/Sources/AWSRoute53/Route53Client.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class Route53Client: ClientRuntime.Client { public static let clientName = "Route53Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: Route53Client.Route53ClientConfiguration let serviceName = "Route 53" diff --git a/Sources/Services/AWSRoute53Domains/Sources/AWSRoute53Domains/Route53DomainsClient.swift b/Sources/Services/AWSRoute53Domains/Sources/AWSRoute53Domains/Route53DomainsClient.swift index 5e968ddfa51..803c5524275 100644 --- a/Sources/Services/AWSRoute53Domains/Sources/AWSRoute53Domains/Route53DomainsClient.swift +++ b/Sources/Services/AWSRoute53Domains/Sources/AWSRoute53Domains/Route53DomainsClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class Route53DomainsClient: ClientRuntime.Client { public static let clientName = "Route53DomainsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: Route53DomainsClient.Route53DomainsClientConfiguration let serviceName = "Route 53 Domains" diff --git a/Sources/Services/AWSRoute53Profiles/Sources/AWSRoute53Profiles/Route53ProfilesClient.swift b/Sources/Services/AWSRoute53Profiles/Sources/AWSRoute53Profiles/Route53ProfilesClient.swift index a4844ba1dbe..2baf66dc4fe 100644 --- a/Sources/Services/AWSRoute53Profiles/Sources/AWSRoute53Profiles/Route53ProfilesClient.swift +++ b/Sources/Services/AWSRoute53Profiles/Sources/AWSRoute53Profiles/Route53ProfilesClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class Route53ProfilesClient: ClientRuntime.Client { public static let clientName = "Route53ProfilesClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: Route53ProfilesClient.Route53ProfilesClientConfiguration let serviceName = "Route53Profiles" diff --git a/Sources/Services/AWSRoute53RecoveryCluster/Sources/AWSRoute53RecoveryCluster/Route53RecoveryClusterClient.swift b/Sources/Services/AWSRoute53RecoveryCluster/Sources/AWSRoute53RecoveryCluster/Route53RecoveryClusterClient.swift index ab471f6d073..3f88fa6df49 100644 --- a/Sources/Services/AWSRoute53RecoveryCluster/Sources/AWSRoute53RecoveryCluster/Route53RecoveryClusterClient.swift +++ b/Sources/Services/AWSRoute53RecoveryCluster/Sources/AWSRoute53RecoveryCluster/Route53RecoveryClusterClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class Route53RecoveryClusterClient: ClientRuntime.Client { public static let clientName = "Route53RecoveryClusterClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: Route53RecoveryClusterClient.Route53RecoveryClusterClientConfiguration let serviceName = "Route53 Recovery Cluster" diff --git a/Sources/Services/AWSRoute53RecoveryControlConfig/Sources/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClient.swift b/Sources/Services/AWSRoute53RecoveryControlConfig/Sources/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClient.swift index c0f409199e4..db26d104da6 100644 --- a/Sources/Services/AWSRoute53RecoveryControlConfig/Sources/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClient.swift +++ b/Sources/Services/AWSRoute53RecoveryControlConfig/Sources/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class Route53RecoveryControlConfigClient: ClientRuntime.Client { public static let clientName = "Route53RecoveryControlConfigClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: Route53RecoveryControlConfigClient.Route53RecoveryControlConfigClientConfiguration let serviceName = "Route53 Recovery Control Config" diff --git a/Sources/Services/AWSRoute53RecoveryReadiness/Sources/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClient.swift b/Sources/Services/AWSRoute53RecoveryReadiness/Sources/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClient.swift index e27521cc217..04d366e9a03 100644 --- a/Sources/Services/AWSRoute53RecoveryReadiness/Sources/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClient.swift +++ b/Sources/Services/AWSRoute53RecoveryReadiness/Sources/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class Route53RecoveryReadinessClient: ClientRuntime.Client { public static let clientName = "Route53RecoveryReadinessClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: Route53RecoveryReadinessClient.Route53RecoveryReadinessClientConfiguration let serviceName = "Route53 Recovery Readiness" diff --git a/Sources/Services/AWSRoute53Resolver/Sources/AWSRoute53Resolver/Route53ResolverClient.swift b/Sources/Services/AWSRoute53Resolver/Sources/AWSRoute53Resolver/Route53ResolverClient.swift index 9ea3f16562a..229f9cd0515 100644 --- a/Sources/Services/AWSRoute53Resolver/Sources/AWSRoute53Resolver/Route53ResolverClient.swift +++ b/Sources/Services/AWSRoute53Resolver/Sources/AWSRoute53Resolver/Route53ResolverClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class Route53ResolverClient: ClientRuntime.Client { public static let clientName = "Route53ResolverClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: Route53ResolverClient.Route53ResolverClientConfiguration let serviceName = "Route53Resolver" diff --git a/Sources/Services/AWSS3/Sources/AWSS3/Models.swift b/Sources/Services/AWSS3/Sources/AWSS3/Models.swift index 37c53e63eea..62f1c066527 100644 --- a/Sources/Services/AWSS3/Sources/AWSS3/Models.swift +++ b/Sources/Services/AWSS3/Sources/AWSS3/Models.swift @@ -298,6 +298,8 @@ public struct AbortMultipartUploadInput: Swift.Sendable { public var bucket: Swift.String? /// The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied). public var expectedBucketOwner: Swift.String? + /// If present, this header aborts an in progress multipart upload only if it was initiated on the provided timestamp. If the initiated timestamp of the multipart upload does not match the provided value, the operation returns a 412 Precondition Failed error. If the initiated timestamp matches or if the multipart upload doesn’t exist, the operation returns a 204 Success (No Content) response. This functionality is only supported for directory buckets. + public var ifMatchInitiatedTime: Foundation.Date? /// Key of the object for which the multipart upload was initiated. /// This member is required. public var key: Swift.String? @@ -310,6 +312,7 @@ public struct AbortMultipartUploadInput: Swift.Sendable { public init( bucket: Swift.String? = nil, expectedBucketOwner: Swift.String? = nil, + ifMatchInitiatedTime: Foundation.Date? = nil, key: Swift.String? = nil, requestPayer: S3ClientTypes.RequestPayer? = nil, uploadId: Swift.String? = nil @@ -317,6 +320,7 @@ public struct AbortMultipartUploadInput: Swift.Sendable { { self.bucket = bucket self.expectedBucketOwner = expectedBucketOwner + self.ifMatchInitiatedTime = ifMatchInitiatedTime self.key = key self.requestPayer = requestPayer self.uploadId = uploadId @@ -2542,7 +2546,7 @@ public struct DeleteBucketLifecycleInput: Swift.Sendable { /// The bucket name of the lifecycle to delete. /// This member is required. public var bucket: Swift.String? - /// The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied). + /// The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied). This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public var expectedBucketOwner: Swift.String? public init( @@ -2670,6 +2674,12 @@ public struct DeleteObjectInput: Swift.Sendable { public var bypassGovernanceRetention: Swift.Bool? /// The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied). public var expectedBucketOwner: Swift.String? + /// The If-Match header field makes the request method conditional on ETags. If the ETag value does not match, the operation returns a 412 Precondition Failed error. If the ETag matches or if the object doesn't exist, the operation will return a 204 Success (No Content) response. For more information about conditional requests, see [RFC 7232](https://docs.aws.amazon.com/https:/tools.ietf.org/html/rfc7232). This functionality is only supported for directory buckets. + public var ifMatch: Swift.String? + /// If present, the object is deleted only if its modification times matches the provided Timestamp. If the Timestamp values do not match, the operation returns a 412 Precondition Failed error. If the Timestamp matches or if the object doesn’t exist, the operation returns a 204 Success (No Content) response. This functionality is only supported for directory buckets. + public var ifMatchLastModifiedTime: Foundation.Date? + /// If present, the object is deleted only if its size matches the provided size in bytes. If the Size value does not match, the operation returns a 412 Precondition Failed error. If the Size matches or if the object doesn’t exist, the operation returns a 204 Success (No Content) response. This functionality is only supported for directory buckets. You can use the If-Match, x-amz-if-match-last-modified-time and x-amz-if-match-size conditional headers in conjunction with each-other or individually. + public var ifMatchSize: Swift.Int? /// Key name of the object to delete. /// This member is required. public var key: Swift.String? @@ -2684,6 +2694,9 @@ public struct DeleteObjectInput: Swift.Sendable { bucket: Swift.String? = nil, bypassGovernanceRetention: Swift.Bool? = nil, expectedBucketOwner: Swift.String? = nil, + ifMatch: Swift.String? = nil, + ifMatchLastModifiedTime: Foundation.Date? = nil, + ifMatchSize: Swift.Int? = nil, key: Swift.String? = nil, mfa: Swift.String? = nil, requestPayer: S3ClientTypes.RequestPayer? = nil, @@ -2693,6 +2706,9 @@ public struct DeleteObjectInput: Swift.Sendable { self.bucket = bucket self.bypassGovernanceRetention = bypassGovernanceRetention self.expectedBucketOwner = expectedBucketOwner + self.ifMatch = ifMatch + self.ifMatchLastModifiedTime = ifMatchLastModifiedTime + self.ifMatchSize = ifMatchSize self.key = key self.mfa = mfa self.requestPayer = requestPayer @@ -2724,18 +2740,30 @@ extension S3ClientTypes { /// Object Identifier is unique value to identify objects. public struct ObjectIdentifier: Swift.Sendable { + /// An entity tag (ETag) is an identifier assigned by a web server to a specific version of a resource found at a URL. This header field makes the request method conditional on ETags. Entity tags (ETags) for S3 Express One Zone are random alphanumeric strings unique to the object. + public var eTag: Swift.String? /// Key name of the object. Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). /// This member is required. public var key: Swift.String? + /// If present, the objects are deleted only if its modification times matches the provided Timestamp. This functionality is only supported for directory buckets. + public var lastModifiedTime: Foundation.Date? + /// If present, the objects are deleted only if its size matches the provided size in bytes. This functionality is only supported for directory buckets. + public var size: Swift.Int? /// Version ID for the specific version of the object to delete. This functionality is not supported for directory buckets. public var versionId: Swift.String? public init( + eTag: Swift.String? = nil, key: Swift.String? = nil, + lastModifiedTime: Foundation.Date? = nil, + size: Swift.Int? = nil, versionId: Swift.String? = nil ) { + self.eTag = eTag self.key = key + self.lastModifiedTime = lastModifiedTime + self.size = size self.versionId = versionId } } @@ -5076,7 +5104,7 @@ public struct GetBucketLifecycleConfigurationInput: Swift.Sendable { /// The name of the bucket for which to get the lifecycle information. /// This member is required. public var bucket: Swift.String? - /// The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied). + /// The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied). This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public var expectedBucketOwner: Swift.String? public init( @@ -5093,11 +5121,11 @@ extension S3ClientTypes { /// Container for the expiration for the lifecycle of the object. For more information see, [Managing your storage lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) in the Amazon S3 User Guide. public struct LifecycleExpiration: Swift.Sendable { - /// Indicates at what date the object is to be moved or deleted. The date value must conform to the ISO 8601 format. The time is always midnight UTC. + /// Indicates at what date the object is to be moved or deleted. The date value must conform to the ISO 8601 format. The time is always midnight UTC. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public var date: Foundation.Date? /// Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer. public var days: Swift.Int? - /// Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. + /// Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public var expiredObjectDeleteMarker: Swift.Bool? public init( @@ -5153,7 +5181,7 @@ extension S3ClientTypes { public var objectSizeLessThan: Swift.Int? /// Prefix identifying one or more objects to which the rule applies. Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). public var `prefix`: Swift.String? - /// This tag must exist in the object's tag set in order for the rule to apply. + /// This tag must exist in the object's tag set in order for the rule to apply. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public var tag: S3ClientTypes.Tag? public init( @@ -5175,11 +5203,11 @@ extension S3ClientTypes { extension S3ClientTypes { - /// Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime. + /// Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public struct NoncurrentVersionExpiration: Swift.Sendable { - /// Specifies how many noncurrent versions Amazon S3 will retain. You can specify up to 100 noncurrent versions to retain. Amazon S3 will permanently delete any additional noncurrent versions beyond the specified number to retain. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the Amazon S3 User Guide. + /// Specifies how many noncurrent versions Amazon S3 will retain. You can specify up to 100 noncurrent versions to retain. Amazon S3 will permanently delete any additional noncurrent versions beyond the specified number to retain. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the Amazon S3 User Guide. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public var newerNoncurrentVersions: Swift.Int? - /// Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. The value must be a non-zero positive integer. For information about the noncurrent days calculations, see [How Amazon S3 Calculates When an Object Became Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the Amazon S3 User Guide. + /// Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. The value must be a non-zero positive integer. For information about the noncurrent days calculations, see [How Amazon S3 Calculates When an Object Became Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the Amazon S3 User Guide. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public var noncurrentDays: Swift.Int? public init( @@ -5319,13 +5347,13 @@ extension S3ClientTypes { public var abortIncompleteMultipartUpload: S3ClientTypes.AbortIncompleteMultipartUpload? /// Specifies the expiration for the lifecycle of the object in the form of date, days and, whether the object has a delete marker. public var expiration: S3ClientTypes.LifecycleExpiration? - /// The Filter is used to identify objects that a Lifecycle Rule applies to. A Filter must have exactly one of Prefix, Tag, or And specified. Filter is required if the LifecycleRule does not contain a Prefix element. + /// The Filter is used to identify objects that a Lifecycle Rule applies to. A Filter must have exactly one of Prefix, Tag, or And specified. Filter is required if the LifecycleRule does not contain a Prefix element. Tag filters are not supported for directory buckets. public var filter: S3ClientTypes.LifecycleRuleFilter? /// Unique identifier for the rule. The value cannot be longer than 255 characters. public var id: Swift.String? - /// Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime. + /// Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public var noncurrentVersionExpiration: S3ClientTypes.NoncurrentVersionExpiration? - /// Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime. + /// Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public var noncurrentVersionTransitions: [S3ClientTypes.NoncurrentVersionTransition]? /// Prefix identifying one or more objects to which the rule applies. This is no longer used; use Filter instead. Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). @available(*, deprecated) @@ -5333,7 +5361,7 @@ extension S3ClientTypes { /// If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied. /// This member is required. public var status: S3ClientTypes.ExpirationStatus? - /// Specifies when an Amazon S3 object transitions to a specified storage class. + /// Specifies when an Amazon S3 object transitions to a specified storage class. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public var transitions: [S3ClientTypes.Transition]? public init( @@ -5393,7 +5421,7 @@ extension S3ClientTypes { public struct GetBucketLifecycleConfigurationOutput: Swift.Sendable { /// Container for a lifecycle rule. public var rules: [S3ClientTypes.LifecycleRule]? - /// Indicates which default minimum object size behavior is applied to the lifecycle configuration. + /// Indicates which default minimum object size behavior is applied to the lifecycle configuration. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. /// /// * all_storage_classes_128K - Objects smaller than 128 KB will not transition to any storage class by default. /// @@ -7784,7 +7812,7 @@ public struct GetObjectAttributesOutput: Swift.Sendable { public var deleteMarker: Swift.Bool? /// An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL. public var eTag: Swift.String? - /// The creation date of the object. + /// Date and time when the object was last modified. public var lastModified: Foundation.Date? /// A collection of parts associated with a multipart upload. public var objectParts: S3ClientTypes.GetObjectAttributesParts? @@ -10125,11 +10153,11 @@ public struct PutBucketLifecycleConfigurationInput: Swift.Sendable { public var bucket: Swift.String? /// Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter. public var checksumAlgorithm: S3ClientTypes.ChecksumAlgorithm? - /// The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied). + /// The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied). This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. public var expectedBucketOwner: Swift.String? /// Container for lifecycle rules. You can add as many as 1,000 rules. public var lifecycleConfiguration: S3ClientTypes.BucketLifecycleConfiguration? - /// Indicates which default minimum object size behavior is applied to the lifecycle configuration. + /// Indicates which default minimum object size behavior is applied to the lifecycle configuration. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. /// /// * all_storage_classes_128K - Objects smaller than 128 KB will not transition to any storage class by default. /// @@ -10156,7 +10184,7 @@ public struct PutBucketLifecycleConfigurationInput: Swift.Sendable { } public struct PutBucketLifecycleConfigurationOutput: Swift.Sendable { - /// Indicates which default minimum object size behavior is applied to the lifecycle configuration. + /// Indicates which default minimum object size behavior is applied to the lifecycle configuration. This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations. /// /// * all_storage_classes_128K - Objects smaller than 128 KB will not transition to any storage class by default. /// @@ -10641,6 +10669,68 @@ public struct PutBucketWebsiteInput: Swift.Sendable { } } +/// The existing object was created with a different encryption type. Subsequent write requests must include the appropriate encryption parameters in the request or while creating the session. +public struct EncryptionTypeMismatch: ClientRuntime.ModeledError, AWSClientRuntime.AWSS3ServiceError, ClientRuntime.HTTPError, Swift.Error { + public static var typeName: Swift.String { "EncryptionTypeMismatch" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + public internal(set) var requestID2: Swift.String? + + public init() { } +} + +/// You may receive this error in multiple cases. Depending on the reason for the error, you may receive one of the messages below: +/// +/// * Cannot specify both a write offset value and user-defined object metadata for existing objects. +/// +/// * Checksum Type mismatch occurred, expected checksum Type: sha1, actual checksum Type: crc32c. +/// +/// * Request body cannot be empty when 'write offset' is specified. +public struct InvalidRequest: ClientRuntime.ModeledError, AWSClientRuntime.AWSS3ServiceError, ClientRuntime.HTTPError, Swift.Error { + public static var typeName: Swift.String { "InvalidRequest" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + public internal(set) var requestID2: Swift.String? + + public init() { } +} + +/// The write offset value that you specified does not match the current object size. +public struct InvalidWriteOffset: ClientRuntime.ModeledError, AWSClientRuntime.AWSS3ServiceError, ClientRuntime.HTTPError, Swift.Error { + public static var typeName: Swift.String { "InvalidWriteOffset" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + public internal(set) var requestID2: Swift.String? + + public init() { } +} + +/// You have attempted to add more parts than the maximum of 10000 that are allowed for this object. You can use the CopyObject operation to copy this object to another and then add more data to the newly copied object. +public struct TooManyParts: ClientRuntime.ModeledError, AWSClientRuntime.AWSS3ServiceError, ClientRuntime.HTTPError, Swift.Error { + public static var typeName: Swift.String { "TooManyParts" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + public internal(set) var requestID2: Swift.String? + + public init() { } +} + public struct PutObjectInput: Swift.Sendable { /// The canned ACL to apply to the object. For more information, see [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) in the Amazon S3 User Guide. When adding a new object, you can use headers to grant ACL-based permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. By default, all objects are private. Only the owner has full access control. For more information, see [Access Control List (ACL) Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) and [Managing ACLs Using the REST API](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html) in the Amazon S3 User Guide. If the bucket that you're uploading objects to uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting only accept PUT requests that don't specify an ACL or PUT requests that specify bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format. PUT requests that contain other ACLs (for example, custom grants to certain Amazon Web Services accounts) fail and return a 400 error with the error code AccessControlListNotSupported. For more information, see [ Controlling ownership of objects and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the Amazon S3 User Guide. /// @@ -10759,6 +10849,8 @@ public struct PutObjectInput: Swift.Sendable { public var tagging: Swift.String? /// If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. For information about object metadata, see [Object Key and Metadata](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html) in the Amazon S3 User Guide. In the following example, the request header sets the redirect to an object (anotherPage.html) in the same bucket: x-amz-website-redirect-location: /anotherPage.html In the following example, the request header sets the object redirect to another website: x-amz-website-redirect-location: http://www.example.com/ For more information about website hosting in Amazon S3, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) and [How to Configure Website Page Redirects](https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html) in the Amazon S3 User Guide. This functionality is not supported for directory buckets. public var websiteRedirectLocation: Swift.String? + /// Specifies the offset for appending data to existing objects in bytes. The offset must be equal to the size of the existing object being appended to. If no object exists, setting this header to 0 will create a new object. This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in directory buckets. + public var writeOffsetBytes: Swift.Int? public init( acl: S3ClientTypes.ObjectCannedACL? = nil, @@ -10798,7 +10890,8 @@ public struct PutObjectInput: Swift.Sendable { ssekmsKeyId: Swift.String? = nil, storageClass: S3ClientTypes.StorageClass? = nil, tagging: Swift.String? = nil, - websiteRedirectLocation: Swift.String? = nil + websiteRedirectLocation: Swift.String? = nil, + writeOffsetBytes: Swift.Int? = nil ) { self.acl = acl @@ -10839,12 +10932,13 @@ public struct PutObjectInput: Swift.Sendable { self.storageClass = storageClass self.tagging = tagging self.websiteRedirectLocation = websiteRedirectLocation + self.writeOffsetBytes = writeOffsetBytes } } extension PutObjectInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "PutObjectInput(acl: \(Swift.String(describing: acl)), body: \(Swift.String(describing: body)), bucket: \(Swift.String(describing: bucket)), bucketKeyEnabled: \(Swift.String(describing: bucketKeyEnabled)), cacheControl: \(Swift.String(describing: cacheControl)), checksumAlgorithm: \(Swift.String(describing: checksumAlgorithm)), checksumCRC32: \(Swift.String(describing: checksumCRC32)), checksumCRC32C: \(Swift.String(describing: checksumCRC32C)), checksumSHA1: \(Swift.String(describing: checksumSHA1)), checksumSHA256: \(Swift.String(describing: checksumSHA256)), contentDisposition: \(Swift.String(describing: contentDisposition)), contentEncoding: \(Swift.String(describing: contentEncoding)), contentLanguage: \(Swift.String(describing: contentLanguage)), contentLength: \(Swift.String(describing: contentLength)), contentMD5: \(Swift.String(describing: contentMD5)), contentType: \(Swift.String(describing: contentType)), expectedBucketOwner: \(Swift.String(describing: expectedBucketOwner)), expires: \(Swift.String(describing: expires)), grantFullControl: \(Swift.String(describing: grantFullControl)), grantRead: \(Swift.String(describing: grantRead)), grantReadACP: \(Swift.String(describing: grantReadACP)), grantWriteACP: \(Swift.String(describing: grantWriteACP)), ifNoneMatch: \(Swift.String(describing: ifNoneMatch)), key: \(Swift.String(describing: key)), metadata: \(Swift.String(describing: metadata)), objectLockLegalHoldStatus: \(Swift.String(describing: objectLockLegalHoldStatus)), objectLockMode: \(Swift.String(describing: objectLockMode)), objectLockRetainUntilDate: \(Swift.String(describing: objectLockRetainUntilDate)), requestPayer: \(Swift.String(describing: requestPayer)), serverSideEncryption: \(Swift.String(describing: serverSideEncryption)), sseCustomerAlgorithm: \(Swift.String(describing: sseCustomerAlgorithm)), sseCustomerKeyMD5: \(Swift.String(describing: sseCustomerKeyMD5)), storageClass: \(Swift.String(describing: storageClass)), tagging: \(Swift.String(describing: tagging)), websiteRedirectLocation: \(Swift.String(describing: websiteRedirectLocation)), sseCustomerKey: \"CONTENT_REDACTED\", ssekmsEncryptionContext: \"CONTENT_REDACTED\", ssekmsKeyId: \"CONTENT_REDACTED\")"} + "PutObjectInput(acl: \(Swift.String(describing: acl)), body: \(Swift.String(describing: body)), bucket: \(Swift.String(describing: bucket)), bucketKeyEnabled: \(Swift.String(describing: bucketKeyEnabled)), cacheControl: \(Swift.String(describing: cacheControl)), checksumAlgorithm: \(Swift.String(describing: checksumAlgorithm)), checksumCRC32: \(Swift.String(describing: checksumCRC32)), checksumCRC32C: \(Swift.String(describing: checksumCRC32C)), checksumSHA1: \(Swift.String(describing: checksumSHA1)), checksumSHA256: \(Swift.String(describing: checksumSHA256)), contentDisposition: \(Swift.String(describing: contentDisposition)), contentEncoding: \(Swift.String(describing: contentEncoding)), contentLanguage: \(Swift.String(describing: contentLanguage)), contentLength: \(Swift.String(describing: contentLength)), contentMD5: \(Swift.String(describing: contentMD5)), contentType: \(Swift.String(describing: contentType)), expectedBucketOwner: \(Swift.String(describing: expectedBucketOwner)), expires: \(Swift.String(describing: expires)), grantFullControl: \(Swift.String(describing: grantFullControl)), grantRead: \(Swift.String(describing: grantRead)), grantReadACP: \(Swift.String(describing: grantReadACP)), grantWriteACP: \(Swift.String(describing: grantWriteACP)), ifNoneMatch: \(Swift.String(describing: ifNoneMatch)), key: \(Swift.String(describing: key)), metadata: \(Swift.String(describing: metadata)), objectLockLegalHoldStatus: \(Swift.String(describing: objectLockLegalHoldStatus)), objectLockMode: \(Swift.String(describing: objectLockMode)), objectLockRetainUntilDate: \(Swift.String(describing: objectLockRetainUntilDate)), requestPayer: \(Swift.String(describing: requestPayer)), serverSideEncryption: \(Swift.String(describing: serverSideEncryption)), sseCustomerAlgorithm: \(Swift.String(describing: sseCustomerAlgorithm)), sseCustomerKeyMD5: \(Swift.String(describing: sseCustomerKeyMD5)), storageClass: \(Swift.String(describing: storageClass)), tagging: \(Swift.String(describing: tagging)), websiteRedirectLocation: \(Swift.String(describing: websiteRedirectLocation)), writeOffsetBytes: \(Swift.String(describing: writeOffsetBytes)), sseCustomerKey: \"CONTENT_REDACTED\", ssekmsEncryptionContext: \"CONTENT_REDACTED\", ssekmsKeyId: \"CONTENT_REDACTED\")"} } public struct PutObjectOutput: Swift.Sendable { @@ -10866,6 +10960,8 @@ public struct PutObjectOutput: Swift.Sendable { public var requestCharged: S3ClientTypes.RequestCharged? /// The server-side encryption algorithm used when you store this object in Amazon S3. public var serverSideEncryption: S3ClientTypes.ServerSideEncryption? + /// The size of the object in bytes. This will only be present if you append to an object. This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in directory buckets. + public var size: Swift.Int? /// If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used. This functionality is not supported for directory buckets. public var sseCustomerAlgorithm: Swift.String? /// If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key. This functionality is not supported for directory buckets. @@ -10887,6 +10983,7 @@ public struct PutObjectOutput: Swift.Sendable { expiration: Swift.String? = nil, requestCharged: S3ClientTypes.RequestCharged? = nil, serverSideEncryption: S3ClientTypes.ServerSideEncryption? = nil, + size: Swift.Int? = nil, sseCustomerAlgorithm: Swift.String? = nil, sseCustomerKeyMD5: Swift.String? = nil, ssekmsEncryptionContext: Swift.String? = nil, @@ -10903,6 +11000,7 @@ public struct PutObjectOutput: Swift.Sendable { self.expiration = expiration self.requestCharged = requestCharged self.serverSideEncryption = serverSideEncryption + self.size = size self.sseCustomerAlgorithm = sseCustomerAlgorithm self.sseCustomerKeyMD5 = sseCustomerKeyMD5 self.ssekmsEncryptionContext = ssekmsEncryptionContext @@ -10913,7 +11011,7 @@ public struct PutObjectOutput: Swift.Sendable { extension PutObjectOutput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "PutObjectOutput(bucketKeyEnabled: \(Swift.String(describing: bucketKeyEnabled)), checksumCRC32: \(Swift.String(describing: checksumCRC32)), checksumCRC32C: \(Swift.String(describing: checksumCRC32C)), checksumSHA1: \(Swift.String(describing: checksumSHA1)), checksumSHA256: \(Swift.String(describing: checksumSHA256)), eTag: \(Swift.String(describing: eTag)), expiration: \(Swift.String(describing: expiration)), requestCharged: \(Swift.String(describing: requestCharged)), serverSideEncryption: \(Swift.String(describing: serverSideEncryption)), sseCustomerAlgorithm: \(Swift.String(describing: sseCustomerAlgorithm)), sseCustomerKeyMD5: \(Swift.String(describing: sseCustomerKeyMD5)), versionId: \(Swift.String(describing: versionId)), ssekmsEncryptionContext: \"CONTENT_REDACTED\", ssekmsKeyId: \"CONTENT_REDACTED\")"} + "PutObjectOutput(bucketKeyEnabled: \(Swift.String(describing: bucketKeyEnabled)), checksumCRC32: \(Swift.String(describing: checksumCRC32)), checksumCRC32C: \(Swift.String(describing: checksumCRC32C)), checksumSHA1: \(Swift.String(describing: checksumSHA1)), checksumSHA256: \(Swift.String(describing: checksumSHA256)), eTag: \(Swift.String(describing: eTag)), expiration: \(Swift.String(describing: expiration)), requestCharged: \(Swift.String(describing: requestCharged)), serverSideEncryption: \(Swift.String(describing: serverSideEncryption)), size: \(Swift.String(describing: size)), sseCustomerAlgorithm: \(Swift.String(describing: sseCustomerAlgorithm)), sseCustomerKeyMD5: \(Swift.String(describing: sseCustomerKeyMD5)), versionId: \(Swift.String(describing: versionId)), ssekmsEncryptionContext: \"CONTENT_REDACTED\", ssekmsKeyId: \"CONTENT_REDACTED\")"} } public struct PutObjectAclInput: Swift.Sendable { @@ -12691,6 +12789,9 @@ extension AbortMultipartUploadInput { if let expectedBucketOwner = value.expectedBucketOwner { items.add(SmithyHTTPAPI.Header(name: "x-amz-expected-bucket-owner", value: Swift.String(expectedBucketOwner))) } + if let ifMatchInitiatedTime = value.ifMatchInitiatedTime { + items.add(SmithyHTTPAPI.Header(name: "x-amz-if-match-initiated-time", value: Swift.String(SmithyTimestamps.TimestampFormatter(format: .httpDate).string(from: ifMatchInitiatedTime)))) + } if let requestPayer = value.requestPayer { items.add(SmithyHTTPAPI.Header(name: "x-amz-request-payer", value: Swift.String(requestPayer.rawValue))) } @@ -13487,6 +13588,15 @@ extension DeleteObjectInput { if let expectedBucketOwner = value.expectedBucketOwner { items.add(SmithyHTTPAPI.Header(name: "x-amz-expected-bucket-owner", value: Swift.String(expectedBucketOwner))) } + if let ifMatch = value.ifMatch { + items.add(SmithyHTTPAPI.Header(name: "If-Match", value: Swift.String(ifMatch))) + } + if let ifMatchLastModifiedTime = value.ifMatchLastModifiedTime { + items.add(SmithyHTTPAPI.Header(name: "x-amz-if-match-last-modified-time", value: Swift.String(SmithyTimestamps.TimestampFormatter(format: .httpDate).string(from: ifMatchLastModifiedTime)))) + } + if let ifMatchSize = value.ifMatchSize { + items.add(SmithyHTTPAPI.Header(name: "x-amz-if-match-size", value: Swift.String(ifMatchSize))) + } if let mfa = value.mfa { items.add(SmithyHTTPAPI.Header(name: "x-amz-mfa", value: Swift.String(mfa))) } @@ -15851,6 +15961,9 @@ extension PutObjectInput { if let websiteRedirectLocation = value.websiteRedirectLocation { items.add(SmithyHTTPAPI.Header(name: "x-amz-website-redirect-location", value: Swift.String(websiteRedirectLocation))) } + if let writeOffsetBytes = value.writeOffsetBytes { + items.add(SmithyHTTPAPI.Header(name: "x-amz-write-offset-bytes", value: Swift.String(writeOffsetBytes))) + } if let metadata = value.metadata { for (prefixHeaderMapKey, prefixHeaderMapValue) in metadata { items.add(SmithyHTTPAPI.Header(name: "x-amz-meta-\(prefixHeaderMapKey)", value: Swift.String(prefixHeaderMapValue))) @@ -18123,6 +18236,9 @@ extension PutObjectOutput { if let serverSideEncryptionHeaderValue = httpResponse.headers.value(for: "x-amz-server-side-encryption") { value.serverSideEncryption = S3ClientTypes.ServerSideEncryption(rawValue: serverSideEncryptionHeaderValue) } + if let sizeHeaderValue = httpResponse.headers.value(for: "x-amz-object-size") { + value.size = Swift.Int(sizeHeaderValue) ?? 0 + } if let versionIdHeaderValue = httpResponse.headers.value(for: "x-amz-version-id") { value.versionId = versionIdHeaderValue } @@ -19491,6 +19607,10 @@ enum PutObjectOutputError { if let error = baseError.customError() { return error } if let error = try httpServiceError(baseError: baseError) { return error } switch baseError.code { + case "EncryptionTypeMismatch": return try EncryptionTypeMismatch.makeError(baseError: baseError) + case "InvalidRequest": return try InvalidRequest.makeError(baseError: baseError) + case "InvalidWriteOffset": return try InvalidWriteOffset.makeError(baseError: baseError) + case "TooManyParts": return try TooManyParts.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } @@ -19751,6 +19871,54 @@ extension NotFound { } } +extension EncryptionTypeMismatch { + + static func makeError(baseError: AWSClientRuntime.RestXMLError) throws -> EncryptionTypeMismatch { + var value = EncryptionTypeMismatch() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + value.requestID2 = baseError.requestID2 + return value + } +} + +extension InvalidWriteOffset { + + static func makeError(baseError: AWSClientRuntime.RestXMLError) throws -> InvalidWriteOffset { + var value = InvalidWriteOffset() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + value.requestID2 = baseError.requestID2 + return value + } +} + +extension InvalidRequest { + + static func makeError(baseError: AWSClientRuntime.RestXMLError) throws -> InvalidRequest { + var value = InvalidRequest() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + value.requestID2 = baseError.requestID2 + return value + } +} + +extension TooManyParts { + + static func makeError(baseError: AWSClientRuntime.RestXMLError) throws -> TooManyParts { + var value = TooManyParts() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + value.requestID2 = baseError.requestID2 + return value + } +} + extension ObjectAlreadyInActiveTierError { static func makeError(baseError: AWSClientRuntime.RestXMLError) throws -> ObjectAlreadyInActiveTierError { @@ -21638,7 +21806,10 @@ extension S3ClientTypes.ObjectIdentifier { static func write(value: S3ClientTypes.ObjectIdentifier?, to writer: SmithyXML.Writer) throws { guard let value else { return } + try writer["ETag"].write(value.eTag) try writer["Key"].write(value.key) + try writer["LastModifiedTime"].writeTimestamp(value.lastModifiedTime, format: SmithyTimestamps.TimestampFormat.httpDate) + try writer["Size"].write(value.size) try writer["VersionId"].write(value.versionId) } } diff --git a/Sources/Services/AWSS3/Sources/AWSS3/S3Client.swift b/Sources/Services/AWSS3/Sources/AWSS3/S3Client.swift index 4717278d7fb..d399b4e7655 100644 --- a/Sources/Services/AWSS3/Sources/AWSS3/S3Client.swift +++ b/Sources/Services/AWSS3/Sources/AWSS3/S3Client.swift @@ -80,7 +80,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class S3Client: ClientRuntime.Client { public static let clientName = "S3Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: S3Client.S3ClientConfiguration let serviceName = "S3" @@ -962,7 +962,7 @@ extension S3Client { /// Performs the `DeleteBucketAnalyticsConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Deletes an analytics configuration for the bucket (specified by the analytics configuration ID). To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about the Amazon S3 analytics feature, see [Amazon S3 Analytics – Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). The following operations are related to DeleteBucketAnalyticsConfiguration: + /// This operation is not supported for directory buckets. Deletes an analytics configuration for the bucket (specified by the analytics configuration ID). To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about the Amazon S3 analytics feature, see [Amazon S3 Analytics – Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). The following operations are related to DeleteBucketAnalyticsConfiguration: /// /// * [GetBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) /// @@ -1033,7 +1033,7 @@ extension S3Client { /// Performs the `DeleteBucketCors` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Deletes the cors configuration information set for the bucket. To use this operation, you must have permission to perform the s3:PutBucketCORS action. The bucket owner has this permission by default and can grant this permission to others. For information about cors, see [Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon S3 User Guide. Related Resources + /// This operation is not supported for directory buckets. Deletes the cors configuration information set for the bucket. To use this operation, you must have permission to perform the s3:PutBucketCORS action. The bucket owner has this permission by default and can grant this permission to others. For information about cors, see [Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon S3 User Guide. Related Resources /// /// * [PutBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) /// @@ -1185,7 +1185,7 @@ extension S3Client { /// Performs the `DeleteBucketIntelligentTieringConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Deletes the S3 Intelligent-Tiering configuration from the specified bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities. The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class. For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). Operations related to DeleteBucketIntelligentTieringConfiguration include: + /// This operation is not supported for directory buckets. Deletes the S3 Intelligent-Tiering configuration from the specified bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities. The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class. For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). Operations related to DeleteBucketIntelligentTieringConfiguration include: /// /// * [GetBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) /// @@ -1255,7 +1255,7 @@ extension S3Client { /// Performs the `DeleteBucketInventoryConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Deletes an inventory configuration (identified by the inventory ID) from the bucket. To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about the Amazon S3 inventory feature, see [Amazon S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). Operations related to DeleteBucketInventoryConfiguration include: + /// This operation is not supported for directory buckets. Deletes an inventory configuration (identified by the inventory ID) from the bucket. To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about the Amazon S3 inventory feature, see [Amazon S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). Operations related to DeleteBucketInventoryConfiguration include: /// /// * [GetBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) /// @@ -1326,7 +1326,17 @@ extension S3Client { /// Performs the `DeleteBucketLifecycle` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration. To use this operation, you must have permission to perform the s3:PutLifecycleConfiguration action. By default, the bucket owner has this permission and the bucket owner can grant this permission to others. There is usually some time lag before lifecycle configuration deletion is fully propagated to all the Amazon S3 systems. For more information about the object expiration, see [Elements to Describe Lifecycle Actions](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions). Related actions include: + /// Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration. Permissions + /// + /// * General purpose bucket permissions - By default, all Amazon S3 resources are private, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration). Only the resource owner (that is, the Amazon Web Services account that created it) can access the resource. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, a user must have the s3:PutLifecycleConfiguration permission. For more information about permissions, see [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + /// + /// + /// + /// + /// * Directory bucket permissions - You must have the s3express:PutLifecycleConfiguration permission in an IAM identity-based policy to use this operation. Cross-account access to this API operation isn't supported. The resource owner can optionally grant access permissions to others by creating a role or user for them as long as they are within the same account as the owner and resource. For more information about directory bucket policies and permissions, see [Authorizing Regional endpoint APIs with IAM](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) in the Amazon S3 User Guide. Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. For more information, see [Regional and Zonal endpoints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) in the Amazon S3 User Guide. + /// + /// + /// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com. For more information about the object expiration, see [Elements to Describe Lifecycle Actions](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions). Related actions include: /// /// * [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) /// @@ -1395,7 +1405,7 @@ extension S3Client { /// Performs the `DeleteBucketMetricsConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Deletes a metrics configuration for the Amazon CloudWatch request metrics (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics. To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about CloudWatch request metrics for Amazon S3, see [Monitoring Metrics with Amazon CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). The following operations are related to DeleteBucketMetricsConfiguration: + /// This operation is not supported for directory buckets. Deletes a metrics configuration for the Amazon CloudWatch request metrics (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics. To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about CloudWatch request metrics for Amazon S3, see [Monitoring Metrics with Amazon CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). The following operations are related to DeleteBucketMetricsConfiguration: /// /// * [GetBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) /// @@ -1468,7 +1478,7 @@ extension S3Client { /// Performs the `DeleteBucketOwnershipControls` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Removes OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketOwnershipControls permission. For more information about Amazon S3 permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). For information about Amazon S3 Object Ownership, see [Using Object Ownership](https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). The following operations are related to DeleteBucketOwnershipControls: + /// This operation is not supported for directory buckets. Removes OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketOwnershipControls permission. For more information about Amazon S3 permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). For information about Amazon S3 Object Ownership, see [Using Object Ownership](https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). The following operations are related to DeleteBucketOwnershipControls: /// /// * [GetBucketOwnershipControls] /// @@ -1613,7 +1623,7 @@ extension S3Client { /// Performs the `DeleteBucketReplication` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Deletes the replication configuration from the bucket. To use this operation, you must have permissions to perform the s3:PutReplicationConfiguration action. The bucket owner has these permissions by default and can grant it to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). It can take a while for the deletion of a replication configuration to fully propagate. For information about replication configuration, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the Amazon S3 User Guide. The following operations are related to DeleteBucketReplication: + /// This operation is not supported for directory buckets. Deletes the replication configuration from the bucket. To use this operation, you must have permissions to perform the s3:PutReplicationConfiguration action. The bucket owner has these permissions by default and can grant it to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). It can take a while for the deletion of a replication configuration to fully propagate. For information about replication configuration, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the Amazon S3 User Guide. The following operations are related to DeleteBucketReplication: /// /// * [PutBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) /// @@ -1682,7 +1692,7 @@ extension S3Client { /// Performs the `DeleteBucketTagging` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Deletes the tags from the bucket. To use this operation, you must have permission to perform the s3:PutBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others. The following operations are related to DeleteBucketTagging: + /// This operation is not supported for directory buckets. Deletes the tags from the bucket. To use this operation, you must have permission to perform the s3:PutBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others. The following operations are related to DeleteBucketTagging: /// /// * [GetBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) /// @@ -1751,7 +1761,7 @@ extension S3Client { /// Performs the `DeleteBucketWebsite` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. This action removes the website configuration for a bucket. Amazon S3 returns a 200 OK response upon successfully deleting a website configuration on the specified bucket. You will get a 200 OK response if the website configuration you are trying to delete does not exist on the bucket. Amazon S3 returns a 404 response if the bucket specified in the request does not exist. This DELETE action requires the S3:DeleteBucketWebsite permission. By default, only the bucket owner can delete the website configuration attached to a bucket. However, bucket owners can grant other users permission to delete the website configuration by writing a bucket policy granting them the S3:DeleteBucketWebsite permission. For more information about hosting websites, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). The following operations are related to DeleteBucketWebsite: + /// This operation is not supported for directory buckets. This action removes the website configuration for a bucket. Amazon S3 returns a 200 OK response upon successfully deleting a website configuration on the specified bucket. You will get a 200 OK response if the website configuration you are trying to delete does not exist on the bucket. Amazon S3 returns a 404 response if the bucket specified in the request does not exist. This DELETE action requires the S3:DeleteBucketWebsite permission. By default, only the bucket owner can delete the website configuration attached to a bucket. However, bucket owners can grant other users permission to delete the website configuration by writing a bucket policy granting them the S3:DeleteBucketWebsite permission. For more information about hosting websites, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). The following operations are related to DeleteBucketWebsite: /// /// * [GetBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html) /// @@ -1912,7 +1922,7 @@ extension S3Client { /// Performs the `DeleteObjectTagging` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Removes the entire tag set from the specified object. For more information about managing object tags, see [ Object Tagging](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). To use this operation, you must have permission to perform the s3:DeleteObjectTagging action. To delete tags of a specific object version, add the versionId query parameter in the request. You will need permission for the s3:DeleteObjectVersionTagging action. The following operations are related to DeleteObjectTagging: + /// This operation is not supported for directory buckets. Removes the entire tag set from the specified object. For more information about managing object tags, see [ Object Tagging](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). To use this operation, you must have permission to perform the s3:DeleteObjectTagging action. To delete tags of a specific object version, add the versionId query parameter in the request. You will need permission for the s3:DeleteObjectVersionTagging action. The following operations are related to DeleteObjectTagging: /// /// * [PutObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) /// @@ -2089,7 +2099,7 @@ extension S3Client { /// Performs the `DeletePublicAccessBlock` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). The following operations are related to DeletePublicAccessBlock: + /// This operation is not supported for directory buckets. Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). The following operations are related to DeletePublicAccessBlock: /// /// * [Using Amazon S3 Block Public Access](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) /// @@ -2162,7 +2172,7 @@ extension S3Client { /// Performs the `GetBucketAccelerateConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. This implementation of the GET action uses the accelerate subresource to return the Transfer Acceleration state of a bucket, which is either Enabled or Suspended. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to and from Amazon S3. To use this operation, you must have permission to perform the s3:GetAccelerateConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) in the Amazon S3 User Guide. You set the Transfer Acceleration state of an existing bucket to Enabled or Suspended by using the [PutBucketAccelerateConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) operation. A GET accelerate request does not return a state value for a bucket that has no transfer acceleration state. A bucket has no Transfer Acceleration state if a state has never been set on the bucket. For more information about transfer acceleration, see [Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the Amazon S3 User Guide. The following operations are related to GetBucketAccelerateConfiguration: + /// This operation is not supported for directory buckets. This implementation of the GET action uses the accelerate subresource to return the Transfer Acceleration state of a bucket, which is either Enabled or Suspended. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to and from Amazon S3. To use this operation, you must have permission to perform the s3:GetAccelerateConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) in the Amazon S3 User Guide. You set the Transfer Acceleration state of an existing bucket to Enabled or Suspended by using the [PutBucketAccelerateConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) operation. A GET accelerate request does not return a state value for a bucket that has no transfer acceleration state. A bucket has no Transfer Acceleration state if a state has never been set on the bucket. For more information about transfer acceleration, see [Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the Amazon S3 User Guide. The following operations are related to GetBucketAccelerateConfiguration: /// /// * [PutBucketAccelerateConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) /// @@ -2229,7 +2239,7 @@ extension S3Client { /// Performs the `GetBucketAcl` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. This implementation of the GET action uses the acl subresource to return the access control list (ACL) of a bucket. To use GET to return the ACL of the bucket, you must have the READ_ACP access to the bucket. If READ_ACP permission is granted to the anonymous user, you can return the ACL of the bucket without using an authorization header. When you use this API operation with an access point, provide the alias of the access point in place of the bucket name. When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see [List of Error Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the bucket-owner-full-control ACL with the owner being the account that created the bucket. For more information, see [ Controlling object ownership and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the Amazon S3 User Guide. The following operations are related to GetBucketAcl: + /// This operation is not supported for directory buckets. This implementation of the GET action uses the acl subresource to return the access control list (ACL) of a bucket. To use GET to return the ACL of the bucket, you must have the READ_ACP access to the bucket. If READ_ACP permission is granted to the anonymous user, you can return the ACL of the bucket without using an authorization header. When you use this API operation with an access point, provide the alias of the access point in place of the bucket name. When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see [List of Error Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the bucket-owner-full-control ACL with the owner being the account that created the bucket. For more information, see [ Controlling object ownership and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the Amazon S3 User Guide. The following operations are related to GetBucketAcl: /// /// * [ListObjects](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) /// @@ -2296,7 +2306,7 @@ extension S3Client { /// Performs the `GetBucketAnalyticsConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. This implementation of the GET action returns an analytics configuration (identified by the analytics configuration ID) from the bucket. To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [ Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) in the Amazon S3 User Guide. For information about Amazon S3 analytics feature, see [Amazon S3 Analytics – Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) in the Amazon S3 User Guide. The following operations are related to GetBucketAnalyticsConfiguration: + /// This operation is not supported for directory buckets. This implementation of the GET action returns an analytics configuration (identified by the analytics configuration ID) from the bucket. To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [ Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) in the Amazon S3 User Guide. For information about Amazon S3 analytics feature, see [Amazon S3 Analytics – Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) in the Amazon S3 User Guide. The following operations are related to GetBucketAnalyticsConfiguration: /// /// * [DeleteBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) /// @@ -2367,7 +2377,7 @@ extension S3Client { /// Performs the `GetBucketCors` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the bucket. To use this operation, you must have permission to perform the s3:GetBucketCORS action. By default, the bucket owner has this permission and can grant it to others. When you use this API operation with an access point, provide the alias of the access point in place of the bucket name. When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see [List of Error Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). For more information about CORS, see [ Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). The following operations are related to GetBucketCors: + /// This operation is not supported for directory buckets. Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the bucket. To use this operation, you must have permission to perform the s3:GetBucketCORS action. By default, the bucket owner has this permission and can grant it to others. When you use this API operation with an access point, provide the alias of the access point in place of the bucket name. When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see [List of Error Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). For more information about CORS, see [ Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). The following operations are related to GetBucketCors: /// /// * [PutBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) /// @@ -2519,7 +2529,7 @@ extension S3Client { /// Performs the `GetBucketIntelligentTieringConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Gets the S3 Intelligent-Tiering configuration from the specified bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities. The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class. For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). Operations related to GetBucketIntelligentTieringConfiguration include: + /// This operation is not supported for directory buckets. Gets the S3 Intelligent-Tiering configuration from the specified bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities. The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class. For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). Operations related to GetBucketIntelligentTieringConfiguration include: /// /// * [DeleteBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) /// @@ -2589,7 +2599,7 @@ extension S3Client { /// Performs the `GetBucketInventoryConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns an inventory configuration (identified by the inventory configuration ID) from the bucket. To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about the Amazon S3 inventory feature, see [Amazon S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). The following operations are related to GetBucketInventoryConfiguration: + /// This operation is not supported for directory buckets. Returns an inventory configuration (identified by the inventory configuration ID) from the bucket. To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about the Amazon S3 inventory feature, see [Amazon S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). The following operations are related to GetBucketInventoryConfiguration: /// /// * [DeleteBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) /// @@ -2660,7 +2670,17 @@ extension S3Client { /// Performs the `GetBucketLifecycleConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, object size, or any combination of these. Accordingly, this section describes the latest API. The previous version of the API supported filtering based only on an object key name prefix, which is supported for backward compatibility. For the related API description, see [GetBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html). Accordingly, this section describes the latest API. The response describes the new filter element that you can use to specify a filter to select a subset of objects to which the rule applies. If you are using a previous version of the lifecycle configuration, it still works. For the earlier action, Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration action. The bucket owner has this permission, by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). GetBucketLifecycleConfiguration has the following special error: + /// Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, object size, or any combination of these. Accordingly, this section describes the latest API, which is compatible with the new functionality. The previous version of the API supported filtering based only on an object key name prefix, which is supported for general purpose buckets for backward compatibility. For the related API description, see [GetBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html). Lifecyle configurations for directory buckets only support expiring objects and cancelling multipart uploads. Expiring of versioned objects, transitions and tag filters are not supported. Permissions + /// + /// * General purpose bucket permissions - By default, all Amazon S3 resources are private, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration). Only the resource owner (that is, the Amazon Web Services account that created it) can access the resource. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, a user must have the s3:GetLifecycleConfiguration permission. For more information about permissions, see [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + /// + /// + /// + /// + /// * Directory bucket permissions - You must have the s3express:GetLifecycleConfiguration permission in an IAM identity-based policy to use this operation. Cross-account access to this API operation isn't supported. The resource owner can optionally grant access permissions to others by creating a role or user for them as long as they are within the same account as the owner and resource. For more information about directory bucket policies and permissions, see [Authorizing Regional endpoint APIs with IAM](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) in the Amazon S3 User Guide. Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. For more information, see [Regional and Zonal endpoints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) in the Amazon S3 User Guide. + /// + /// + /// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com. GetBucketLifecycleConfiguration has the following special error: /// /// * Error code: NoSuchLifecycleConfiguration /// @@ -2745,7 +2765,7 @@ extension S3Client { /// Performs the `GetBucketLocation` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns the Region the bucket resides in. You set the bucket's Region using the LocationConstraint request parameter in a CreateBucket request. For more information, see [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). When you use this API operation with an access point, provide the alias of the access point in place of the bucket name. When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see [List of Error Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). We recommend that you use [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html) to return the Region that a bucket resides in. For backward compatibility, Amazon S3 continues to support GetBucketLocation. The following operations are related to GetBucketLocation: + /// This operation is not supported for directory buckets. Returns the Region the bucket resides in. You set the bucket's Region using the LocationConstraint request parameter in a CreateBucket request. For more information, see [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). When you use this API operation with an access point, provide the alias of the access point in place of the bucket name. When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see [List of Error Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). We recommend that you use [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html) to return the Region that a bucket resides in. For backward compatibility, Amazon S3 continues to support GetBucketLocation. The following operations are related to GetBucketLocation: /// /// * [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) /// @@ -2814,7 +2834,7 @@ extension S3Client { /// Performs the `GetBucketLogging` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns the logging status of a bucket and the permissions users have to view and modify that status. The following operations are related to GetBucketLogging: + /// This operation is not supported for directory buckets. Returns the logging status of a bucket and the permissions users have to view and modify that status. The following operations are related to GetBucketLogging: /// /// * [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) /// @@ -2883,7 +2903,7 @@ extension S3Client { /// Performs the `GetBucketMetricsConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Gets a metrics configuration (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics. To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about CloudWatch request metrics for Amazon S3, see [Monitoring Metrics with Amazon CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). The following operations are related to GetBucketMetricsConfiguration: + /// This operation is not supported for directory buckets. Gets a metrics configuration (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics. To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about CloudWatch request metrics for Amazon S3, see [Monitoring Metrics with Amazon CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). The following operations are related to GetBucketMetricsConfiguration: /// /// * [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) /// @@ -2956,7 +2976,7 @@ extension S3Client { /// Performs the `GetBucketNotificationConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns the notification configuration of a bucket. If notifications are not enabled on the bucket, the action returns an empty NotificationConfiguration element. By default, you must be the bucket owner to read the notification configuration of a bucket. However, the bucket owner can use a bucket policy to grant permission to other users to read this configuration with the s3:GetBucketNotification permission. When you use this API operation with an access point, provide the alias of the access point in place of the bucket name. When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see [List of Error Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). For more information about setting and reading the notification configuration on a bucket, see [Setting Up Notification of Bucket Events](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). For more information about bucket policies, see [Using Bucket Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). The following action is related to GetBucketNotification: + /// This operation is not supported for directory buckets. Returns the notification configuration of a bucket. If notifications are not enabled on the bucket, the action returns an empty NotificationConfiguration element. By default, you must be the bucket owner to read the notification configuration of a bucket. However, the bucket owner can use a bucket policy to grant permission to other users to read this configuration with the s3:GetBucketNotification permission. When you use this API operation with an access point, provide the alias of the access point in place of the bucket name. When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see [List of Error Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). For more information about setting and reading the notification configuration on a bucket, see [Setting Up Notification of Bucket Events](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). For more information about bucket policies, see [Using Bucket Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). The following action is related to GetBucketNotification: /// /// * [PutBucketNotification](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html) /// @@ -3023,7 +3043,7 @@ extension S3Client { /// Performs the `GetBucketOwnershipControls` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketOwnershipControls permission. For more information about Amazon S3 permissions, see [Specifying permissions in a policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html). For information about Amazon S3 Object Ownership, see [Using Object Ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html). The following operations are related to GetBucketOwnershipControls: + /// This operation is not supported for directory buckets. Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketOwnershipControls permission. For more information about Amazon S3 permissions, see [Specifying permissions in a policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html). For information about Amazon S3 Object Ownership, see [Using Object Ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html). The following operations are related to GetBucketOwnershipControls: /// /// * [PutBucketOwnershipControls] /// @@ -3166,7 +3186,7 @@ extension S3Client { /// Performs the `GetBucketPolicyStatus` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Retrieves the policy status for an Amazon S3 bucket, indicating whether the bucket is public. In order to use this operation, you must have the s3:GetBucketPolicyStatus permission. For more information about Amazon S3 permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). For more information about when Amazon S3 considers a bucket public, see [The Meaning of "Public"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). The following operations are related to GetBucketPolicyStatus: + /// This operation is not supported for directory buckets. Retrieves the policy status for an Amazon S3 bucket, indicating whether the bucket is public. In order to use this operation, you must have the s3:GetBucketPolicyStatus permission. For more information about Amazon S3 permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). For more information about when Amazon S3 considers a bucket public, see [The Meaning of "Public"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). The following operations are related to GetBucketPolicyStatus: /// /// * [Using Amazon S3 Block Public Access](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) /// @@ -3239,7 +3259,7 @@ extension S3Client { /// Performs the `GetBucketReplication` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns the replication configuration of a bucket. It can take a while to propagate the put or delete a replication configuration to all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong result. For information about replication configuration, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the Amazon S3 User Guide. This action requires permissions for the s3:GetReplicationConfiguration action. For more information about permissions, see [Using Bucket Policies and User Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). If you include the Filter element in a replication configuration, you must also include the DeleteMarkerReplication and Priority elements. The response also returns those elements. For information about GetBucketReplication errors, see [List of replication-related error codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) The following operations are related to GetBucketReplication: + /// This operation is not supported for directory buckets. Returns the replication configuration of a bucket. It can take a while to propagate the put or delete a replication configuration to all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong result. For information about replication configuration, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the Amazon S3 User Guide. This action requires permissions for the s3:GetReplicationConfiguration action. For more information about permissions, see [Using Bucket Policies and User Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). If you include the Filter element in a replication configuration, you must also include the DeleteMarkerReplication and Priority elements. The response also returns those elements. For information about GetBucketReplication errors, see [List of replication-related error codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) The following operations are related to GetBucketReplication: /// /// * [PutBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) /// @@ -3308,7 +3328,7 @@ extension S3Client { /// Performs the `GetBucketRequestPayment` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns the request payment configuration of a bucket. To use this version of the operation, you must be the bucket owner. For more information, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). The following operations are related to GetBucketRequestPayment: + /// This operation is not supported for directory buckets. Returns the request payment configuration of a bucket. To use this version of the operation, you must be the bucket owner. For more information, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). The following operations are related to GetBucketRequestPayment: /// /// * [ListObjects](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) /// @@ -3375,7 +3395,7 @@ extension S3Client { /// Performs the `GetBucketTagging` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns the tag set associated with the bucket. To use this operation, you must have permission to perform the s3:GetBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others. GetBucketTagging has the following special error: + /// This operation is not supported for directory buckets. Returns the tag set associated with the bucket. To use this operation, you must have permission to perform the s3:GetBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others. GetBucketTagging has the following special error: /// /// * Error code: NoSuchTagSet /// @@ -3454,7 +3474,7 @@ extension S3Client { /// Performs the `GetBucketVersioning` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns the versioning state of a bucket. To retrieve the versioning state of a bucket, you must be the bucket owner. This implementation also returns the MFA Delete status of the versioning state. If the MFA Delete status is enabled, the bucket owner must use an authentication device to change the versioning state of the bucket. The following operations are related to GetBucketVersioning: + /// This operation is not supported for directory buckets. Returns the versioning state of a bucket. To retrieve the versioning state of a bucket, you must be the bucket owner. This implementation also returns the MFA Delete status of the versioning state. If the MFA Delete status is enabled, the bucket owner must use an authentication device to change the versioning state of the bucket. The following operations are related to GetBucketVersioning: /// /// * [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) /// @@ -3525,7 +3545,7 @@ extension S3Client { /// Performs the `GetBucketWebsite` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns the website configuration for a bucket. To host website on Amazon S3, you can configure a bucket as website by adding a website configuration. For more information about hosting websites, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). This GET action requires the S3:GetBucketWebsite permission. By default, only the bucket owner can read the bucket website configuration. However, bucket owners can allow other users to read the website configuration by writing a bucket policy granting them the S3:GetBucketWebsite permission. The following operations are related to GetBucketWebsite: + /// This operation is not supported for directory buckets. Returns the website configuration for a bucket. To host website on Amazon S3, you can configure a bucket as website by adding a website configuration. For more information about hosting websites, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). This GET action requires the S3:GetBucketWebsite permission. By default, only the bucket owner can read the bucket website configuration. However, bucket owners can allow other users to read the website configuration by writing a bucket policy granting them the S3:GetBucketWebsite permission. The following operations are related to GetBucketWebsite: /// /// * [DeleteBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html) /// @@ -3698,7 +3718,7 @@ extension S3Client { /// Performs the `GetObjectAcl` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns the access control list (ACL) of an object. To use this operation, you must have s3:GetObjectAcl permissions or READ_ACP access to the object. For more information, see [Mapping of ACL permissions and access policy permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping) in the Amazon S3 User Guide This functionality is not supported for Amazon S3 on Outposts. By default, GET returns ACL information about the current version of an object. To return ACL information about a different version, use the versionId subresource. If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the bucket-owner-full-control ACL with the owner being the account that created the bucket. For more information, see [ Controlling object ownership and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the Amazon S3 User Guide. The following operations are related to GetObjectAcl: + /// This operation is not supported for directory buckets. Returns the access control list (ACL) of an object. To use this operation, you must have s3:GetObjectAcl permissions or READ_ACP access to the object. For more information, see [Mapping of ACL permissions and access policy permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping) in the Amazon S3 User Guide This functionality is not supported for Amazon S3 on Outposts. By default, GET returns ACL information about the current version of an object. To return ACL information about a different version, use the versionId subresource. If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the bucket-owner-full-control ACL with the owner being the account that created the bucket. For more information, see [ Controlling object ownership and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the Amazon S3 User Guide. The following operations are related to GetObjectAcl: /// /// * [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) /// @@ -3906,7 +3926,7 @@ extension S3Client { /// Performs the `GetObjectLegalHold` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Gets an object's current legal hold status. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). This functionality is not supported for Amazon S3 on Outposts. The following action is related to GetObjectLegalHold: + /// This operation is not supported for directory buckets. Gets an object's current legal hold status. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). This functionality is not supported for Amazon S3 on Outposts. The following action is related to GetObjectLegalHold: /// /// * [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) /// @@ -3973,7 +3993,7 @@ extension S3Client { /// Performs the `GetObjectLockConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). The following action is related to GetObjectLockConfiguration: + /// This operation is not supported for directory buckets. Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). The following action is related to GetObjectLockConfiguration: /// /// * [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) /// @@ -4040,7 +4060,7 @@ extension S3Client { /// Performs the `GetObjectRetention` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Retrieves an object's retention settings. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). This functionality is not supported for Amazon S3 on Outposts. The following action is related to GetObjectRetention: + /// This operation is not supported for directory buckets. Retrieves an object's retention settings. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). This functionality is not supported for Amazon S3 on Outposts. The following action is related to GetObjectRetention: /// /// * [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) /// @@ -4107,7 +4127,7 @@ extension S3Client { /// Performs the `GetObjectTagging` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns the tag-set of an object. You send the GET request against the tagging subresource associated with the object. To use this operation, you must have permission to perform the s3:GetObjectTagging action. By default, the GET action returns information about current version of an object. For a versioned bucket, you can have multiple versions of an object in your bucket. To retrieve tags of any other version, use the versionId query parameter. You also need permission for the s3:GetObjectVersionTagging action. By default, the bucket owner has this permission and can grant this permission to others. For information about the Amazon S3 object tagging feature, see [Object Tagging](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). The following actions are related to GetObjectTagging: + /// This operation is not supported for directory buckets. Returns the tag-set of an object. You send the GET request against the tagging subresource associated with the object. To use this operation, you must have permission to perform the s3:GetObjectTagging action. By default, the GET action returns information about current version of an object. For a versioned bucket, you can have multiple versions of an object in your bucket. To retrieve tags of any other version, use the versionId query parameter. You also need permission for the s3:GetObjectVersionTagging action. By default, the bucket owner has this permission and can grant this permission to others. For information about the Amazon S3 object tagging feature, see [Object Tagging](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). The following actions are related to GetObjectTagging: /// /// * [DeleteObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html) /// @@ -4178,7 +4198,7 @@ extension S3Client { /// Performs the `GetObjectTorrent` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're distributing large files. You can get torrent only for objects that are less than 5 GB in size, and that are not encrypted using server-side encryption with a customer-provided encryption key. To use GET, you must have READ access to the object. This functionality is not supported for Amazon S3 on Outposts. The following action is related to GetObjectTorrent: + /// This operation is not supported for directory buckets. Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're distributing large files. You can get torrent only for objects that are less than 5 GB in size, and that are not encrypted using server-side encryption with a customer-provided encryption key. To use GET, you must have READ access to the object. This functionality is not supported for Amazon S3 on Outposts. The following action is related to GetObjectTorrent: /// /// * [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) /// @@ -4244,7 +4264,7 @@ extension S3Client { /// Performs the `GetPublicAccessBlock` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock settings are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings. For more information about when Amazon S3 considers a bucket or an object public, see [The Meaning of "Public"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). The following operations are related to GetPublicAccessBlock: + /// This operation is not supported for directory buckets. Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock settings are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings. For more information about when Amazon S3 considers a bucket or an object public, see [The Meaning of "Public"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). The following operations are related to GetPublicAccessBlock: /// /// * [Using Amazon S3 Block Public Access](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) /// @@ -4425,7 +4445,7 @@ extension S3Client { /// /// /// - /// * Directory buckets - Delete marker is not supported by directory buckets. + /// * Directory buckets - Delete marker is not supported for directory buckets. /// /// * Directory buckets - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null to the versionId query parameter in the request. /// @@ -4504,7 +4524,7 @@ extension S3Client { /// Performs the `ListBucketAnalyticsConfigurations` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Lists the analytics configurations for the bucket. You can have up to 1,000 analytics configurations per bucket. This action supports list pagination and does not return more than 100 configurations at a time. You should always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there will be a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page. To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about Amazon S3 analytics feature, see [Amazon S3 Analytics – Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). The following operations are related to ListBucketAnalyticsConfigurations: + /// This operation is not supported for directory buckets. Lists the analytics configurations for the bucket. You can have up to 1,000 analytics configurations per bucket. This action supports list pagination and does not return more than 100 configurations at a time. You should always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there will be a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page. To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about Amazon S3 analytics feature, see [Amazon S3 Analytics – Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). The following operations are related to ListBucketAnalyticsConfigurations: /// /// * [GetBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) /// @@ -4575,7 +4595,7 @@ extension S3Client { /// Performs the `ListBucketIntelligentTieringConfigurations` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Lists the S3 Intelligent-Tiering configuration from the specified bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities. The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class. For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). Operations related to ListBucketIntelligentTieringConfigurations include: + /// This operation is not supported for directory buckets. Lists the S3 Intelligent-Tiering configuration from the specified bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities. The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class. For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). Operations related to ListBucketIntelligentTieringConfigurations include: /// /// * [DeleteBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) /// @@ -4645,7 +4665,7 @@ extension S3Client { /// Performs the `ListBucketInventoryConfigurations` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns a list of inventory configurations for the bucket. You can have up to 1,000 analytics configurations per bucket. This action supports list pagination and does not return more than 100 configurations at a time. Always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there is a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page. To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about the Amazon S3 inventory feature, see [Amazon S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) The following operations are related to ListBucketInventoryConfigurations: + /// This operation is not supported for directory buckets. Returns a list of inventory configurations for the bucket. You can have up to 1,000 analytics configurations per bucket. This action supports list pagination and does not return more than 100 configurations at a time. Always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there is a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page. To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about the Amazon S3 inventory feature, see [Amazon S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) The following operations are related to ListBucketInventoryConfigurations: /// /// * [GetBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) /// @@ -4716,7 +4736,7 @@ extension S3Client { /// Performs the `ListBucketMetricsConfigurations` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Lists the metrics configurations for the bucket. The metrics configurations are only for the request metrics of the bucket and do not provide information on daily storage metrics. You can have up to 1,000 configurations per bucket. This action supports list pagination and does not return more than 100 configurations at a time. Always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there is a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page. To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For more information about metrics configurations and CloudWatch request metrics, see [Monitoring Metrics with Amazon CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). The following operations are related to ListBucketMetricsConfigurations: + /// This operation is not supported for directory buckets. Lists the metrics configurations for the bucket. The metrics configurations are only for the request metrics of the bucket and do not provide information on daily storage metrics. You can have up to 1,000 configurations per bucket. This action supports list pagination and does not return more than 100 configurations at a time. Always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there is a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page. To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For more information about metrics configurations and CloudWatch request metrics, see [Monitoring Metrics with Amazon CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). The following operations are related to ListBucketMetricsConfigurations: /// /// * [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) /// @@ -4787,7 +4807,7 @@ extension S3Client { /// Performs the `ListBuckets` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns a list of all buckets owned by the authenticated sender of the request. To use this operation, you must have the s3:ListAllMyBuckets permission. For information about Amazon S3 buckets, see [Creating, configuring, and working with Amazon S3 buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html). We strongly recommend using only paginated requests. Unpaginated requests are only supported for Amazon Web Services accounts set to the default general purpose bucket quota of 10,000. If you have an approved general purpose bucket quota above 10,000, you must send paginated requests to list your account’s buckets. All unpaginated ListBuckets requests will be rejected for Amazon Web Services accounts with a general purpose bucket quota greater than 10,000. + /// This operation is not supported for directory buckets. Returns a list of all buckets owned by the authenticated sender of the request. To grant IAM permission to use this operation, you must add the s3:ListAllMyBuckets policy action. For information about Amazon S3 buckets, see [Creating, configuring, and working with Amazon S3 buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html). We strongly recommend using only paginated ListBuckets requests. Unpaginated ListBuckets requests are only supported for Amazon Web Services accounts set to the default general purpose bucket quota of 10,000. If you have an approved general purpose bucket quota above 10,000, you must send paginated ListBuckets requests to list your account’s buckets. All unpaginated ListBuckets requests will be rejected for Amazon Web Services accounts with a general purpose bucket quota greater than 10,000. /// /// - Parameter ListBucketsInput : [no documentation found] /// @@ -5011,7 +5031,7 @@ extension S3Client { /// Performs the `ListObjectVersions` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns metadata about all versions of the objects in a bucket. You can also use request parameters as selection criteria to return metadata about a subset of all the object versions. To use this operation, you must have permission to perform the s3:ListBucketVersions action. Be aware of the name difference. A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately. To use this operation, you must have READ access to the bucket. The following operations are related to ListObjectVersions: + /// This operation is not supported for directory buckets. Returns metadata about all versions of the objects in a bucket. You can also use request parameters as selection criteria to return metadata about a subset of all the object versions. To use this operation, you must have permission to perform the s3:ListBucketVersions action. Be aware of the name difference. A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately. To use this operation, you must have READ access to the bucket. The following operations are related to ListObjectVersions: /// /// * [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) /// @@ -5084,7 +5104,7 @@ extension S3Client { /// Performs the `ListObjects` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Be sure to design your application to parse the contents of the response and handle it appropriately. This action has been revised. We recommend that you use the newer version, [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), when developing applications. For backward compatibility, Amazon S3 continues to support ListObjects. The following operations are related to ListObjects: + /// This operation is not supported for directory buckets. Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Be sure to design your application to parse the contents of the response and handle it appropriately. This action has been revised. We recommend that you use the newer version, [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), when developing applications. For backward compatibility, Amazon S3 continues to support ListObjects. The following operations are related to ListObjects: /// /// * [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) /// @@ -5347,7 +5367,7 @@ extension S3Client { /// Performs the `PutBucketAccelerateConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to Amazon S3. To use this operation, you must have permission to perform the s3:PutAccelerateConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). The Transfer Acceleration state of a bucket can be set to one of the following two values: + /// This operation is not supported for directory buckets. Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to Amazon S3. To use this operation, you must have permission to perform the s3:PutAccelerateConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). The Transfer Acceleration state of a bucket can be set to one of the following two values: /// /// * Enabled – Enables accelerated data transfers to the bucket. /// @@ -5427,7 +5447,7 @@ extension S3Client { /// Performs the `PutBucketAcl` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Sets the permissions on an existing bucket using access control lists (ACL). For more information, see [Using ACLs](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). To set the ACL of a bucket, you must have the WRITE_ACP permission. You can use one of the following two ways to set a bucket's permissions: + /// This operation is not supported for directory buckets. Sets the permissions on an existing bucket using access control lists (ACL). For more information, see [Using ACLs](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). To set the ACL of a bucket, you must have the WRITE_ACP permission. You can use one of the following two ways to set a bucket's permissions: /// /// * Specify the ACL in the request body /// @@ -5573,7 +5593,7 @@ extension S3Client { /// Performs the `PutBucketAnalyticsConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Sets an analytics configuration for the bucket (specified by the analytics configuration ID). You can have up to 1,000 analytics configurations per bucket. You can choose to have storage class analysis export analysis reports sent to a comma-separated values (CSV) flat file. See the DataExport request element. Reports are updated daily and are based on the object filters that you configure. When selecting data export, you specify a destination bucket and an optional destination prefix where the file is written. You can export the data to a destination bucket in a different account. However, the destination bucket must be in the same Region as the bucket that you are making the PUT analytics configuration to. For more information, see [Amazon S3 Analytics – Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). You must create a bucket policy on the destination bucket where the exported file is written to grant permissions to Amazon S3 to write objects to the bucket. For an example policy, see [Granting Permissions for Amazon S3 Inventory and Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9). To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). PutBucketAnalyticsConfiguration has the following special errors: + /// This operation is not supported for directory buckets. Sets an analytics configuration for the bucket (specified by the analytics configuration ID). You can have up to 1,000 analytics configurations per bucket. You can choose to have storage class analysis export analysis reports sent to a comma-separated values (CSV) flat file. See the DataExport request element. Reports are updated daily and are based on the object filters that you configure. When selecting data export, you specify a destination bucket and an optional destination prefix where the file is written. You can export the data to a destination bucket in a different account. However, the destination bucket must be in the same Region as the bucket that you are making the PUT analytics configuration to. For more information, see [Amazon S3 Analytics – Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). You must create a bucket policy on the destination bucket where the exported file is written to grant permissions to Amazon S3 to write objects to the bucket. For an example policy, see [Granting Permissions for Amazon S3 Inventory and Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9). To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). PutBucketAnalyticsConfiguration has the following special errors: /// /// /// * HTTP Error: HTTP 400 Bad Request @@ -5680,7 +5700,7 @@ extension S3Client { /// Performs the `PutBucketCors` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces it. To use this operation, you must be allowed to perform the s3:PutBucketCORS action. By default, the bucket owner has this permission and can grant it to others. You set this configuration on a bucket so that the bucket can service cross-origin requests. For example, you might want to enable a request whose origin is http://www.example.com to access your Amazon S3 bucket at my.example.bucket.com by using the browser's XMLHttpRequest capability. To enable cross-origin resource sharing (CORS) on a bucket, you add the cors subresource to the bucket. The cors subresource is an XML document in which you configure rules that identify origins and the HTTP methods that can be executed on your bucket. The document is limited to 64 KB in size. When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a bucket, it evaluates the cors configuration on the bucket and uses the first CORSRule rule that matches the incoming browser request to enable a cross-origin request. For a rule to match, the following conditions must be met: + /// This operation is not supported for directory buckets. Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces it. To use this operation, you must be allowed to perform the s3:PutBucketCORS action. By default, the bucket owner has this permission and can grant it to others. You set this configuration on a bucket so that the bucket can service cross-origin requests. For example, you might want to enable a request whose origin is http://www.example.com to access your Amazon S3 bucket at my.example.bucket.com by using the browser's XMLHttpRequest capability. To enable cross-origin resource sharing (CORS) on a bucket, you add the cors subresource to the bucket. The cors subresource is an XML document in which you configure rules that identify origins and the HTTP methods that can be executed on your bucket. The document is limited to 64 KB in size. When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a bucket, it evaluates the cors configuration on the bucket and uses the first CORSRule rule that matches the incoming browser request to enable a cross-origin request. For a rule to match, the following conditions must be met: /// /// * The request's Origin header must match AllowedOrigin elements. /// @@ -5873,7 +5893,7 @@ extension S3Client { /// Performs the `PutBucketIntelligentTieringConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can have up to 1,000 S3 Intelligent-Tiering configurations per bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities. The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class. For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). Operations related to PutBucketIntelligentTieringConfiguration include: + /// This operation is not supported for directory buckets. Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can have up to 1,000 S3 Intelligent-Tiering configurations per bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities. The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class. For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). Operations related to PutBucketIntelligentTieringConfiguration include: /// /// * [DeleteBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) /// @@ -5949,7 +5969,7 @@ extension S3Client { /// Performs the `PutBucketInventoryConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. This implementation of the PUT action adds an inventory configuration (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory configurations per bucket. Amazon S3 inventory generates inventories of the objects in the bucket on a daily or weekly basis, and the results are published to a flat file. The bucket that is inventoried is called the source bucket, and the bucket where the inventory flat file is stored is called the destination bucket. The destination bucket must be in the same Amazon Web Services Region as the source bucket. When you configure an inventory for a source bucket, you specify the destination bucket where you want the inventory to be stored, and whether to generate the inventory daily or weekly. You can also configure what object metadata to include and whether to inventory all object versions or only current versions. For more information, see [Amazon S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) in the Amazon S3 User Guide. You must create a bucket policy on the destination bucket to grant permissions to Amazon S3 to write objects to the bucket in the defined location. For an example policy, see [ Granting Permissions for Amazon S3 Inventory and Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9). Permissions To use this operation, you must have permission to perform the s3:PutInventoryConfiguration action. The bucket owner has this permission by default and can grant this permission to others. The s3:PutInventoryConfiguration permission allows a user to create an [S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html) report that includes all object metadata fields available and to specify the destination bucket to store the inventory. A user with read access to objects in the destination bucket can also access all object metadata fields that are available in the inventory report. To restrict access to an inventory report, see [Restricting access to an Amazon S3 Inventory report](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-use-case-10) in the Amazon S3 User Guide. For more information about the metadata fields available in S3 Inventory, see [Amazon S3 Inventory lists](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html#storage-inventory-contents) in the Amazon S3 User Guide. For more information about permissions, see [Permissions related to bucket subresource operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Identity and access management in Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) in the Amazon S3 User Guide. PutBucketInventoryConfiguration has the following special errors: HTTP 400 Bad Request Error Code: InvalidArgument Cause: Invalid Argument HTTP 400 Bad Request Error Code: TooManyConfigurations Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit. HTTP 403 Forbidden Error Cause: You are not the owner of the specified bucket, or you do not have the s3:PutInventoryConfiguration bucket permission to set the configuration on the bucket. The following operations are related to PutBucketInventoryConfiguration: + /// This operation is not supported for directory buckets. This implementation of the PUT action adds an inventory configuration (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory configurations per bucket. Amazon S3 inventory generates inventories of the objects in the bucket on a daily or weekly basis, and the results are published to a flat file. The bucket that is inventoried is called the source bucket, and the bucket where the inventory flat file is stored is called the destination bucket. The destination bucket must be in the same Amazon Web Services Region as the source bucket. When you configure an inventory for a source bucket, you specify the destination bucket where you want the inventory to be stored, and whether to generate the inventory daily or weekly. You can also configure what object metadata to include and whether to inventory all object versions or only current versions. For more information, see [Amazon S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) in the Amazon S3 User Guide. You must create a bucket policy on the destination bucket to grant permissions to Amazon S3 to write objects to the bucket in the defined location. For an example policy, see [ Granting Permissions for Amazon S3 Inventory and Storage Class Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9). Permissions To use this operation, you must have permission to perform the s3:PutInventoryConfiguration action. The bucket owner has this permission by default and can grant this permission to others. The s3:PutInventoryConfiguration permission allows a user to create an [S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html) report that includes all object metadata fields available and to specify the destination bucket to store the inventory. A user with read access to objects in the destination bucket can also access all object metadata fields that are available in the inventory report. To restrict access to an inventory report, see [Restricting access to an Amazon S3 Inventory report](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-use-case-10) in the Amazon S3 User Guide. For more information about the metadata fields available in S3 Inventory, see [Amazon S3 Inventory lists](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html#storage-inventory-contents) in the Amazon S3 User Guide. For more information about permissions, see [Permissions related to bucket subresource operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Identity and access management in Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) in the Amazon S3 User Guide. PutBucketInventoryConfiguration has the following special errors: HTTP 400 Bad Request Error Code: InvalidArgument Cause: Invalid Argument HTTP 400 Bad Request Error Code: TooManyConfigurations Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit. HTTP 403 Forbidden Error Cause: You are not the owner of the specified bucket, or you do not have the s3:PutInventoryConfiguration bucket permission to set the configuration on the bucket. The following operations are related to PutBucketInventoryConfiguration: /// /// * [GetBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) /// @@ -6023,7 +6043,7 @@ extension S3Client { /// Performs the `PutBucketLifecycleConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. Keep in mind that this will overwrite an existing lifecycle configuration, so if you want to retain any configuration details, they must be included in the new lifecycle configuration. For information about lifecycle configuration, see [Managing your storage lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). Rules You specify the lifecycle configuration in your request body. The lifecycle configuration is specified as XML consisting of one or more rules. An Amazon S3 Lifecycle configuration can have up to 1,000 rules. This limit is not adjustable. Bucket lifecycle configuration supports specifying a lifecycle rule using an object key name prefix, one or more object tags, object size, or any combination of these. Accordingly, this section describes the latest API. The previous version of the API supported filtering based only on an object key name prefix, which is supported for backward compatibility. For the related API description, see [PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html). A lifecycle rule consists of the following: + /// Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. Keep in mind that this will overwrite an existing lifecycle configuration, so if you want to retain any configuration details, they must be included in the new lifecycle configuration. For information about lifecycle configuration, see [Managing your storage lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). Rules Permissions HTTP Host header syntax You specify the lifecycle configuration in your request body. The lifecycle configuration is specified as XML consisting of one or more rules. An Amazon S3 Lifecycle configuration can have up to 1,000 rules. This limit is not adjustable. Bucket lifecycle configuration supports specifying a lifecycle rule using an object key name prefix, one or more object tags, object size, or any combination of these. Accordingly, this section describes the latest API. The previous version of the API supported filtering based only on an object key name prefix, which is supported for backward compatibility for general purpose buckets. For the related API description, see [PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html). Lifecyle configurations for directory buckets only support expiring objects and cancelling multipart uploads. Expiring of versioned objects,transitions and tag filters are not supported. A lifecycle rule consists of the following: /// /// * A filter identifying a subset of objects to which the rule applies. The filter can be based on a key name prefix, object tags, object size, or any combination of these. /// @@ -6032,18 +6052,26 @@ extension S3Client { /// * One or more lifecycle transition and expiration actions that you want Amazon S3 to perform on the objects identified by the filter. If the state of your bucket is versioning-enabled or versioning-suspended, you can have many versions of the same object (one current version and zero or more noncurrent versions). Amazon S3 provides predefined actions that you can specify for current and noncurrent object versions. /// /// - /// For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) and [Lifecycle Configuration Elements](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html). Permissions By default, all Amazon S3 resources are private, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration). Only the resource owner (that is, the Amazon Web Services account that created it) can access the resource. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, a user must get the s3:PutLifecycleConfiguration permission. You can also explicitly deny permissions. An explicit deny also supersedes any other permissions. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them permissions for the following actions: + /// For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) and [Lifecycle Configuration Elements](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html). + /// + /// * General purpose bucket permissions - By default, all Amazon S3 resources are private, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration). Only the resource owner (that is, the Amazon Web Services account that created it) can access the resource. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, a user must have the s3:PutLifecycleConfiguration permission. You can also explicitly deny permissions. An explicit deny also supersedes any other permissions. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them permissions for the following actions: /// /// * s3:DeleteObject /// /// * s3:DeleteObjectVersion /// - /// * s3:PutLifecycleConfiguration + /// * s3:PutLifecycleConfiguration For more information about permissions, see [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + /// /// /// - /// For more information about permissions, see [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). The following operations are related to PutBucketLifecycleConfiguration: /// - /// * [Examples of Lifecycle Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html) + /// + /// + /// + /// * Directory bucket permissions - You must have the s3express:PutLifecycleConfiguration permission in an IAM identity-based policy to use this operation. Cross-account access to this API operation isn't supported. The resource owner can optionally grant access permissions to others by creating a role or user for them as long as they are within the same account as the owner and resource. For more information about directory bucket policies and permissions, see [Authorizing Regional endpoint APIs with IAM](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) in the Amazon S3 User Guide. Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. For more information, see [Regional and Zonal endpoints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) in the Amazon S3 User Guide. + /// + /// + /// Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com. The following operations are related to PutBucketLifecycleConfiguration: /// /// * [GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) /// @@ -6117,7 +6145,7 @@ extension S3Client { /// Performs the `PutBucketLogging` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. All logs are saved to buckets in the same Amazon Web Services Region as the source bucket. To set the logging status of a bucket, you must be the bucket owner. The bucket owner is automatically granted FULL_CONTROL to all logs. You use the Grantee request element to grant access to other people. The Permissions request element specifies the kind of access the grantee has to the logs. If the target bucket for log delivery uses the bucket owner enforced setting for S3 Object Ownership, you can't use the Grantee request element to grant access to others. Permissions can only be granted using policies. For more information, see [Permissions for server access log delivery](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general) in the Amazon S3 User Guide. Grantee Values You can specify the person (grantee) to whom you're assigning access rights (by using request elements) in the following ways: + /// This operation is not supported for directory buckets. Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. All logs are saved to buckets in the same Amazon Web Services Region as the source bucket. To set the logging status of a bucket, you must be the bucket owner. The bucket owner is automatically granted FULL_CONTROL to all logs. You use the Grantee request element to grant access to other people. The Permissions request element specifies the kind of access the grantee has to the logs. If the target bucket for log delivery uses the bucket owner enforced setting for S3 Object Ownership, you can't use the Grantee request element to grant access to others. Permissions can only be granted using policies. For more information, see [Permissions for server access log delivery](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general) in the Amazon S3 User Guide. Grantee Values You can specify the person (grantee) to whom you're assigning access rights (by using request elements) in the following ways: /// /// * By the person's ID: <>ID<><>GranteesEmail<> DisplayName is optional and ignored in the request. /// @@ -6204,7 +6232,7 @@ extension S3Client { /// Performs the `PutBucketMetricsConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. You can have up to 1,000 metrics configurations per bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about CloudWatch request metrics for Amazon S3, see [Monitoring Metrics with Amazon CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). The following operations are related to PutBucketMetricsConfiguration: + /// This operation is not supported for directory buckets. Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. You can have up to 1,000 metrics configurations per bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). For information about CloudWatch request metrics for Amazon S3, see [Monitoring Metrics with Amazon CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). The following operations are related to PutBucketMetricsConfiguration: /// /// * [DeleteBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) /// @@ -6287,7 +6315,7 @@ extension S3Client { /// Performs the `PutBucketNotificationConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Enables notifications of specified events for a bucket. For more information about event notifications, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). Using this API, you can replace an existing notification configuration. The configuration is an XML file that defines the event types that you want Amazon S3 to publish and the destination where you want Amazon S3 to publish an event notification when it detects an event of the specified type. By default, your bucket has no event notifications configured. That is, the notification configuration will be an empty NotificationConfiguration. This action replaces the existing notification configuration with the configuration you include in the request body. After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and that the bucket owner has permission to publish to it by sending a test notification. In the case of Lambda destinations, Amazon S3 verifies that the Lambda function permissions grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information, see [Configuring Notifications for Amazon S3 Events](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). You can disable notifications by adding the empty NotificationConfiguration element. For more information about the number of event notification configurations that you can create per bucket, see [Amazon S3 service quotas](https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3) in Amazon Web Services General Reference. By default, only the bucket owner can configure notifications on a bucket. However, bucket owners can use a bucket policy to grant permission to other users to set this configuration with the required s3:PutBucketNotification permission. The PUT notification is an atomic operation. For example, suppose your notification configuration includes SNS topic, SQS queue, and Lambda function configurations. When you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS topic. If the message fails, the entire PUT action will fail, and Amazon S3 will not add the configuration to your bucket. If the configuration in the request body includes only one TopicConfiguration specifying only the s3:ReducedRedundancyLostObject event type, the response will also include the x-amz-sns-test-message-id header containing the message ID of the test notification sent to the topic. The following action is related to PutBucketNotificationConfiguration: + /// This operation is not supported for directory buckets. Enables notifications of specified events for a bucket. For more information about event notifications, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). Using this API, you can replace an existing notification configuration. The configuration is an XML file that defines the event types that you want Amazon S3 to publish and the destination where you want Amazon S3 to publish an event notification when it detects an event of the specified type. By default, your bucket has no event notifications configured. That is, the notification configuration will be an empty NotificationConfiguration. This action replaces the existing notification configuration with the configuration you include in the request body. After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and that the bucket owner has permission to publish to it by sending a test notification. In the case of Lambda destinations, Amazon S3 verifies that the Lambda function permissions grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information, see [Configuring Notifications for Amazon S3 Events](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). You can disable notifications by adding the empty NotificationConfiguration element. For more information about the number of event notification configurations that you can create per bucket, see [Amazon S3 service quotas](https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3) in Amazon Web Services General Reference. By default, only the bucket owner can configure notifications on a bucket. However, bucket owners can use a bucket policy to grant permission to other users to set this configuration with the required s3:PutBucketNotification permission. The PUT notification is an atomic operation. For example, suppose your notification configuration includes SNS topic, SQS queue, and Lambda function configurations. When you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS topic. If the message fails, the entire PUT action will fail, and Amazon S3 will not add the configuration to your bucket. If the configuration in the request body includes only one TopicConfiguration specifying only the s3:ReducedRedundancyLostObject event type, the response will also include the x-amz-sns-test-message-id header containing the message ID of the test notification sent to the topic. The following action is related to PutBucketNotificationConfiguration: /// /// * [GetBucketNotificationConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) /// @@ -6357,7 +6385,7 @@ extension S3Client { /// Performs the `PutBucketOwnershipControls` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketOwnershipControls permission. For more information about Amazon S3 permissions, see [Specifying permissions in a policy](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-with-s3-actions.html). For information about Amazon S3 Object Ownership, see [Using object ownership](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/about-object-ownership.html). The following operations are related to PutBucketOwnershipControls: + /// This operation is not supported for directory buckets. Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketOwnershipControls permission. For more information about Amazon S3 permissions, see [Specifying permissions in a policy](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-with-s3-actions.html). For information about Amazon S3 Object Ownership, see [Using object ownership](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/about-object-ownership.html). The following operations are related to PutBucketOwnershipControls: /// /// * [GetBucketOwnershipControls] /// @@ -6511,7 +6539,7 @@ extension S3Client { /// Performs the `PutBucketReplication` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Creates a replication configuration or replaces an existing one. For more information, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the Amazon S3 User Guide. Specify the replication configuration in the request body. In the replication configuration, you provide the name of the destination bucket or buckets where you want Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your behalf, and other relevant information. You can invoke this request for a specific Amazon Web Services Region by using the [aws:RequestedRegion](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion) condition key. A replication configuration must include at least one rule, and can contain a maximum of 1,000. Each rule identifies a subset of objects to replicate by filtering the objects in the source bucket. To choose additional subsets of objects to replicate, add a rule for each subset. To specify a subset of the objects in the source bucket to apply a replication rule to, add the Filter element as a child of the Rule element. You can filter objects based on an object key prefix, one or more object tags, or both. When you add the Filter element in the configuration, you must also add the following elements: DeleteMarkerReplication, Status, and Priority. If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). For information about enabling versioning on a bucket, see [Using Versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). Handling Replication of Encrypted Objects By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side encryption with KMS keys. To replicate Amazon Web Services KMS-encrypted objects, add the following: SourceSelectionCriteria, SseKmsEncryptedObjects, Status, EncryptionConfiguration, and ReplicaKmsKeyID. For information about replication configuration, see [Replicating Objects Created with SSE Using KMS keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html). For information on PutBucketReplication errors, see [List of replication-related error codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) Permissions To create a PutBucketReplication request, you must have s3:PutReplicationConfiguration permissions for the bucket. By default, a resource owner, in this case the Amazon Web Services account that created the bucket, can perform this operation. The resource owner can also grant others permissions to perform the operation. For more information about permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). To perform this operation, the user or role performing the action must have the [iam:PassRole](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) permission. The following operations are related to PutBucketReplication: + /// This operation is not supported for directory buckets. Creates a replication configuration or replaces an existing one. For more information, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the Amazon S3 User Guide. Specify the replication configuration in the request body. In the replication configuration, you provide the name of the destination bucket or buckets where you want Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your behalf, and other relevant information. You can invoke this request for a specific Amazon Web Services Region by using the [aws:RequestedRegion](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion) condition key. A replication configuration must include at least one rule, and can contain a maximum of 1,000. Each rule identifies a subset of objects to replicate by filtering the objects in the source bucket. To choose additional subsets of objects to replicate, add a rule for each subset. To specify a subset of the objects in the source bucket to apply a replication rule to, add the Filter element as a child of the Rule element. You can filter objects based on an object key prefix, one or more object tags, or both. When you add the Filter element in the configuration, you must also add the following elements: DeleteMarkerReplication, Status, and Priority. If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). For information about enabling versioning on a bucket, see [Using Versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). Handling Replication of Encrypted Objects By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side encryption with KMS keys. To replicate Amazon Web Services KMS-encrypted objects, add the following: SourceSelectionCriteria, SseKmsEncryptedObjects, Status, EncryptionConfiguration, and ReplicaKmsKeyID. For information about replication configuration, see [Replicating Objects Created with SSE Using KMS keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html). For information on PutBucketReplication errors, see [List of replication-related error codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) Permissions To create a PutBucketReplication request, you must have s3:PutReplicationConfiguration permissions for the bucket. By default, a resource owner, in this case the Amazon Web Services account that created the bucket, can perform this operation. The resource owner can also grant others permissions to perform the operation. For more information about permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). To perform this operation, the user or role performing the action must have the [iam:PassRole](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) permission. The following operations are related to PutBucketReplication: /// /// * [GetBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) /// @@ -6585,7 +6613,7 @@ extension S3Client { /// Performs the `PutBucketRequestPayment` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. For more information, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). The following operations are related to PutBucketRequestPayment: + /// This operation is not supported for directory buckets. Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. For more information, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). The following operations are related to PutBucketRequestPayment: /// /// * [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) /// @@ -6659,7 +6687,7 @@ extension S3Client { /// Performs the `PutBucketTagging` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Sets the tags for a bucket. Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see [Cost Allocation and Tagging](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) and [Using Cost Allocation in Amazon S3 Bucket Tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html). When this operation sets the tags for a bucket, it will overwrite any current tags the bucket already has. You cannot use this operation to add tags to an existing list of tags. To use this operation, you must have permissions to perform the s3:PutBucketTagging action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). PutBucketTagging has the following special errors. For more Amazon S3 errors see, [Error Responses](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html). + /// This operation is not supported for directory buckets. Sets the tags for a bucket. Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see [Cost Allocation and Tagging](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) and [Using Cost Allocation in Amazon S3 Bucket Tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html). When this operation sets the tags for a bucket, it will overwrite any current tags the bucket already has. You cannot use this operation to add tags to an existing list of tags. To use this operation, you must have permissions to perform the s3:PutBucketTagging action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing Access Permissions to Your Amazon S3 Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). PutBucketTagging has the following special errors. For more Amazon S3 errors see, [Error Responses](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html). /// /// * InvalidTag - The tag provided was not a valid tag. This error can occur if the tag did not pass input validation. For more information, see [Using Cost Allocation in Amazon S3 Bucket Tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html). /// @@ -6744,7 +6772,7 @@ extension S3Client { /// Performs the `PutBucketVersioning` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (PUT or DELETE) on objects in the bucket. Sets the versioning state of an existing bucket. You can set the versioning state with one of the following values: Enabled—Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID. Suspended—Disables versioning for the objects in the bucket. All objects added to the bucket receive the version ID null. If the versioning state has never been set on a bucket, it has no versioning state; a [GetBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) request does not return a versioning state value. In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner and want to enable MFA Delete in the bucket versioning configuration, you must include the x-amz-mfa request header and the Status and the MfaDelete request elements in a request to set the versioning state of the bucket. If you have an object expiration lifecycle configuration in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle configuration will manage the deletes of the noncurrent object versions in the version-enabled bucket. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see [Lifecycle and Versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config). The following operations are related to PutBucketVersioning: + /// This operation is not supported for directory buckets. When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (PUT or DELETE) on objects in the bucket. Sets the versioning state of an existing bucket. You can set the versioning state with one of the following values: Enabled—Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID. Suspended—Disables versioning for the objects in the bucket. All objects added to the bucket receive the version ID null. If the versioning state has never been set on a bucket, it has no versioning state; a [GetBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) request does not return a versioning state value. In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner and want to enable MFA Delete in the bucket versioning configuration, you must include the x-amz-mfa request header and the Status and the MfaDelete request elements in a request to set the versioning state of the bucket. If you have an object expiration lifecycle configuration in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle configuration will manage the deletes of the noncurrent object versions in the version-enabled bucket. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see [Lifecycle and Versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config). The following operations are related to PutBucketVersioning: /// /// * [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) /// @@ -6820,7 +6848,7 @@ extension S3Client { /// Performs the `PutBucketWebsite` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Sets the configuration of the website that is specified in the website subresource. To configure a bucket as a website, you can add this subresource on the bucket with website configuration information such as the file name of the index document and any redirect rules. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). This PUT action requires the S3:PutBucketWebsite permission. By default, only the bucket owner can configure the website attached to a bucket; however, bucket owners can allow other users to set the website configuration by writing a bucket policy that grants them the S3:PutBucketWebsite permission. To redirect all website requests sent to the bucket's website endpoint, you add a website configuration with the following elements. Because all requests are sent to another website, you don't need to provide index document name for the bucket. + /// This operation is not supported for directory buckets. Sets the configuration of the website that is specified in the website subresource. To configure a bucket as a website, you can add this subresource on the bucket with website configuration information such as the file name of the index document and any redirect rules. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). This PUT action requires the S3:PutBucketWebsite permission. By default, only the bucket owner can configure the website attached to a bucket; however, bucket owners can allow other users to set the website configuration by writing a bucket policy that grants them the S3:PutBucketWebsite permission. To redirect all website requests sent to the bucket's website endpoint, you add a website configuration with the following elements. Because all requests are sent to another website, you don't need to provide index document name for the bucket. /// /// * WebsiteConfiguration /// @@ -6984,6 +7012,20 @@ extension S3Client { /// - Parameter PutObjectInput : [no documentation found] /// /// - Returns: `PutObjectOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `EncryptionTypeMismatch` : The existing object was created with a different encryption type. Subsequent write requests must include the appropriate encryption parameters in the request or while creating the session. + /// - `InvalidRequest` : You may receive this error in multiple cases. Depending on the reason for the error, you may receive one of the messages below: + /// + /// * Cannot specify both a write offset value and user-defined object metadata for existing objects. + /// + /// * Checksum Type mismatch occurred, expected checksum Type: sha1, actual checksum Type: crc32c. + /// + /// * Request body cannot be empty when 'write offset' is specified. + /// - `InvalidWriteOffset` : The write offset value that you specified does not match the current object size. + /// - `TooManyParts` : You have attempted to add more parts than the maximum of 10000 that are allowed for this object. You can use the CopyObject operation to copy this object to another and then add more data to the newly copied object. public func putObject(input: PutObjectInput) async throws -> PutObjectOutput { let context = Smithy.ContextBuilder() .withMethod(value: .put) @@ -7048,7 +7090,7 @@ extension S3Client { /// Performs the `PutObjectAcl` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Uses the acl subresource to set the access control list (ACL) permissions for a new or existing object in an S3 bucket. You must have the WRITE_ACP permission to set the ACL of an object. For more information, see [What permissions can I grant?](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions) in the Amazon S3 User Guide. This functionality is not supported for Amazon S3 on Outposts. Depending on your application needs, you can choose to set the ACL on an object using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, you can continue to use that approach. For more information, see [Access Control List (ACL) Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) in the Amazon S3 User Guide. If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return the AccessControlListNotSupported error code. Requests to read ACLs are still supported. For more information, see [Controlling object ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the Amazon S3 User Guide. Permissions You can set access permissions using one of the following methods: + /// This operation is not supported for directory buckets. Uses the acl subresource to set the access control list (ACL) permissions for a new or existing object in an S3 bucket. You must have the WRITE_ACP permission to set the ACL of an object. For more information, see [What permissions can I grant?](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions) in the Amazon S3 User Guide. This functionality is not supported for Amazon S3 on Outposts. Depending on your application needs, you can choose to set the ACL on an object using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, you can continue to use that approach. For more information, see [Access Control List (ACL) Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) in the Amazon S3 User Guide. If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return the AccessControlListNotSupported error code. Requests to read ACLs are still supported. For more information, see [Controlling object ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the Amazon S3 User Guide. Permissions You can set access permissions using one of the following methods: /// /// * Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and permissions. Specify the canned ACL name as the value of x-amz-acl. If you use this header, you cannot use other access control-specific headers in your request. For more information, see [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). /// @@ -7190,7 +7232,7 @@ extension S3Client { /// Performs the `PutObjectLegalHold` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Applies a legal hold configuration to the specified object. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). This functionality is not supported for Amazon S3 on Outposts. + /// This operation is not supported for directory buckets. Applies a legal hold configuration to the specified object. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). This functionality is not supported for Amazon S3 on Outposts. /// /// - Parameter PutObjectLegalHoldInput : [no documentation found] /// @@ -7260,7 +7302,7 @@ extension S3Client { /// Performs the `PutObjectLockConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + /// This operation is not supported for directory buckets. Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). /// /// * The DefaultRetention settings require both a mode and a period. /// @@ -7336,7 +7378,7 @@ extension S3Client { /// Performs the `PutObjectRetention` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Places an Object Retention configuration on an object. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). Users or accounts require the s3:PutObjectRetention permission in order to place an Object Retention configuration on objects. Bypassing a Governance Retention configuration requires the s3:BypassGovernanceRetention permission. This functionality is not supported for Amazon S3 on Outposts. + /// This operation is not supported for directory buckets. Places an Object Retention configuration on an object. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). Users or accounts require the s3:PutObjectRetention permission in order to place an Object Retention configuration on objects. Bypassing a Governance Retention configuration requires the s3:BypassGovernanceRetention permission. This functionality is not supported for Amazon S3 on Outposts. /// /// - Parameter PutObjectRetentionInput : [no documentation found] /// @@ -7406,7 +7448,7 @@ extension S3Client { /// Performs the `PutObjectTagging` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Sets the supplied tag-set to an object that already exists in a bucket. A tag is a key-value pair. For more information, see [Object Tagging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html). You can associate tags with an object by sending a PUT request against the tagging subresource that is associated with the object. You can retrieve tags by sending a GET request. For more information, see [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html). For tagging-related restrictions related to characters and encodings, see [Tag Restrictions](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html). Note that Amazon S3 limits the maximum number of tags to 10 tags per object. To use this operation, you must have permission to perform the s3:PutObjectTagging action. By default, the bucket owner has this permission and can grant this permission to others. To put tags of any other version, use the versionId query parameter. You also need permission for the s3:PutObjectVersionTagging action. PutObjectTagging has the following special errors. For more Amazon S3 errors see, [Error Responses](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html). + /// This operation is not supported for directory buckets. Sets the supplied tag-set to an object that already exists in a bucket. A tag is a key-value pair. For more information, see [Object Tagging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html). You can associate tags with an object by sending a PUT request against the tagging subresource that is associated with the object. You can retrieve tags by sending a GET request. For more information, see [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html). For tagging-related restrictions related to characters and encodings, see [Tag Restrictions](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html). Note that Amazon S3 limits the maximum number of tags to 10 tags per object. To use this operation, you must have permission to perform the s3:PutObjectTagging action. By default, the bucket owner has this permission and can grant this permission to others. To put tags of any other version, use the versionId query parameter. You also need permission for the s3:PutObjectVersionTagging action. PutObjectTagging has the following special errors. For more Amazon S3 errors see, [Error Responses](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html). /// /// * InvalidTag - The tag provided was not a valid tag. This error can occur if the tag did not pass input validation. For more information, see [Object Tagging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html). /// @@ -7491,7 +7533,7 @@ extension S3Client { /// Performs the `PutPublicAccessBlock` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings. For more information about when Amazon S3 considers a bucket or an object public, see [The Meaning of "Public"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). The following operations are related to PutPublicAccessBlock: + /// This operation is not supported for directory buckets. Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings. For more information about when Amazon S3 considers a bucket or an object public, see [The Meaning of "Public"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). The following operations are related to PutPublicAccessBlock: /// /// * [GetPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) /// @@ -7569,7 +7611,7 @@ extension S3Client { /// Performs the `RestoreObject` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Restores an archived copy of an object back into Amazon S3 This functionality is not supported for Amazon S3 on Outposts. This action performs the following types of requests: + /// This operation is not supported for directory buckets. Restores an archived copy of an object back into Amazon S3 This functionality is not supported for Amazon S3 on Outposts. This action performs the following types of requests: /// /// * restore an archive - Restore an archived object /// @@ -7705,7 +7747,7 @@ extension S3Client { /// Performs the `SelectObjectContent` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. This action filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response. This functionality is not supported for Amazon S3 on Outposts. For more information about Amazon S3 Select, see [Selecting Content from Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html) and [SELECT Command](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html) in the Amazon S3 User Guide. Permissions You must have the s3:GetObject permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) in the Amazon S3 User Guide. Object Data Formats You can use Amazon S3 Select to query objects that have the following format properties: + /// This operation is not supported for directory buckets. This action filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response. This functionality is not supported for Amazon S3 on Outposts. For more information about Amazon S3 Select, see [Selecting Content from Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html) and [SELECT Command](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html) in the Amazon S3 User Guide. Permissions You must have the s3:GetObject permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see [Specifying Permissions in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) in the Amazon S3 User Guide. Object Data Formats You can use Amazon S3 Select to query objects that have the following format properties: /// /// * CSV, JSON, and Parquet - Objects must be in CSV, JSON, or Parquet format. /// @@ -7940,13 +7982,7 @@ extension S3Client { /// /// * General purpose buckets - For information about using server-side encryption with customer-provided encryption keys with the UploadPartCopy operation, see [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) and [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html). /// - /// * Directory buckets - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). For more information, see [Protecting data with server-side encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) in the Amazon S3 User Guide. For directory buckets, when you perform a CreateMultipartUpload operation and an UploadPartCopy operation, - /// - /// - /// the request headers you provide in the CreateMultipartUpload request must match the default encryption configuration of the destination bucket. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets - /// - /// - /// to directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html). In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object. + /// * Directory buckets - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). For more information, see [Protecting data with server-side encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) in the Amazon S3 User Guide. For directory buckets, when you perform a CreateMultipartUpload operation and an UploadPartCopy operation, the request headers you provide in the CreateMultipartUpload request must match the default encryption configuration of the destination bucket. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets to directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html). In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object. /// /// /// Special errors @@ -8047,7 +8083,7 @@ extension S3Client { /// Performs the `WriteGetObjectResponse` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Passes transformed objects to a GetObject operation when using Object Lambda access points. For information about Object Lambda access points, see [Transforming objects with Object Lambda access points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html) in the Amazon S3 User Guide. This operation supports metadata that can be returned by [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html), in addition to RequestRoute, RequestToken, StatusCode, ErrorCode, and ErrorMessage. The GetObject response metadata is supported so that the WriteGetObjectResponse caller, typically an Lambda function, can provide the same metadata when it internally invokes GetObject. When WriteGetObjectResponse is called by a customer-owned Lambda function, the metadata returned to the end user GetObject call might differ from what Amazon S3 would normally return. You can include any number of metadata headers. When including a metadata header, it should be prefaced with x-amz-meta. For example, x-amz-meta-my-custom-header: MyCustomValue. The primary use case for this is to forward GetObject metadata. Amazon Web Services provides some prebuilt Lambda functions that you can use with S3 Object Lambda to detect and redact personally identifiable information (PII) and decompress S3 objects. These Lambda functions are available in the Amazon Web Services Serverless Application Repository, and can be selected through the Amazon Web Services Management Console when you create your Object Lambda access point. Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically detects personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket. Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically redacts personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket. Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects stored in S3 in one of six compressed file formats including bzip2, gzip, snappy, zlib, zstandard and ZIP. For information on how to view and use these functions, see [Using Amazon Web Services built Lambda functions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html) in the Amazon S3 User Guide. + /// This operation is not supported for directory buckets. Passes transformed objects to a GetObject operation when using Object Lambda access points. For information about Object Lambda access points, see [Transforming objects with Object Lambda access points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html) in the Amazon S3 User Guide. This operation supports metadata that can be returned by [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html), in addition to RequestRoute, RequestToken, StatusCode, ErrorCode, and ErrorMessage. The GetObject response metadata is supported so that the WriteGetObjectResponse caller, typically an Lambda function, can provide the same metadata when it internally invokes GetObject. When WriteGetObjectResponse is called by a customer-owned Lambda function, the metadata returned to the end user GetObject call might differ from what Amazon S3 would normally return. You can include any number of metadata headers. When including a metadata header, it should be prefaced with x-amz-meta. For example, x-amz-meta-my-custom-header: MyCustomValue. The primary use case for this is to forward GetObject metadata. Amazon Web Services provides some prebuilt Lambda functions that you can use with S3 Object Lambda to detect and redact personally identifiable information (PII) and decompress S3 objects. These Lambda functions are available in the Amazon Web Services Serverless Application Repository, and can be selected through the Amazon Web Services Management Console when you create your Object Lambda access point. Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically detects personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket. Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically redacts personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket. Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects stored in S3 in one of six compressed file formats including bzip2, gzip, snappy, zlib, zstandard and ZIP. For information on how to view and use these functions, see [Using Amazon Web Services built Lambda functions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html) in the Amazon S3 User Guide. /// /// - Parameter WriteGetObjectResponseInput : [no documentation found] /// diff --git a/Sources/Services/AWSS3Control/Sources/AWSS3Control/S3ControlClient.swift b/Sources/Services/AWSS3Control/Sources/AWSS3Control/S3ControlClient.swift index 138130f91b5..16fc0d61de8 100644 --- a/Sources/Services/AWSS3Control/Sources/AWSS3Control/S3ControlClient.swift +++ b/Sources/Services/AWSS3Control/Sources/AWSS3Control/S3ControlClient.swift @@ -68,7 +68,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class S3ControlClient: ClientRuntime.Client { public static let clientName = "S3ControlClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: S3ControlClient.S3ControlClientConfiguration let serviceName = "S3 Control" diff --git a/Sources/Services/AWSS3Outposts/Sources/AWSS3Outposts/S3OutpostsClient.swift b/Sources/Services/AWSS3Outposts/Sources/AWSS3Outposts/S3OutpostsClient.swift index 72f8c47f228..adbfa00e468 100644 --- a/Sources/Services/AWSS3Outposts/Sources/AWSS3Outposts/S3OutpostsClient.swift +++ b/Sources/Services/AWSS3Outposts/Sources/AWSS3Outposts/S3OutpostsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class S3OutpostsClient: ClientRuntime.Client { public static let clientName = "S3OutpostsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: S3OutpostsClient.S3OutpostsClientConfiguration let serviceName = "S3Outposts" diff --git a/Sources/Services/AWSSES/Sources/AWSSES/SESClient.swift b/Sources/Services/AWSSES/Sources/AWSSES/SESClient.swift index 544c0e50a0d..70b60533c8a 100644 --- a/Sources/Services/AWSSES/Sources/AWSSES/SESClient.swift +++ b/Sources/Services/AWSSES/Sources/AWSSES/SESClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SESClient: ClientRuntime.Client { public static let clientName = "SESClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SESClient.SESClientConfiguration let serviceName = "SES" diff --git a/Sources/Services/AWSSESv2/Sources/AWSSESv2/SESv2Client.swift b/Sources/Services/AWSSESv2/Sources/AWSSESv2/SESv2Client.swift index 0c4d0d0b878..0929f6b0f72 100644 --- a/Sources/Services/AWSSESv2/Sources/AWSSESv2/SESv2Client.swift +++ b/Sources/Services/AWSSESv2/Sources/AWSSESv2/SESv2Client.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SESv2Client: ClientRuntime.Client { public static let clientName = "SESv2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SESv2Client.SESv2ClientConfiguration let serviceName = "SESv2" diff --git a/Sources/Services/AWSSFN/Sources/AWSSFN/SFNClient.swift b/Sources/Services/AWSSFN/Sources/AWSSFN/SFNClient.swift index 14ced8bb3b5..138c5c320ac 100644 --- a/Sources/Services/AWSSFN/Sources/AWSSFN/SFNClient.swift +++ b/Sources/Services/AWSSFN/Sources/AWSSFN/SFNClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SFNClient: ClientRuntime.Client { public static let clientName = "SFNClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SFNClient.SFNClientConfiguration let serviceName = "SFN" diff --git a/Sources/Services/AWSSMS/Sources/AWSSMS/SMSClient.swift b/Sources/Services/AWSSMS/Sources/AWSSMS/SMSClient.swift index d3d28bec4ac..fefa4496d96 100644 --- a/Sources/Services/AWSSMS/Sources/AWSSMS/SMSClient.swift +++ b/Sources/Services/AWSSMS/Sources/AWSSMS/SMSClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SMSClient: ClientRuntime.Client { public static let clientName = "SMSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SMSClient.SMSClientConfiguration let serviceName = "SMS" diff --git a/Sources/Services/AWSSNS/Sources/AWSSNS/SNSClient.swift b/Sources/Services/AWSSNS/Sources/AWSSNS/SNSClient.swift index a522f745cd9..889a77995c0 100644 --- a/Sources/Services/AWSSNS/Sources/AWSSNS/SNSClient.swift +++ b/Sources/Services/AWSSNS/Sources/AWSSNS/SNSClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SNSClient: ClientRuntime.Client { public static let clientName = "SNSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SNSClient.SNSClientConfiguration let serviceName = "SNS" diff --git a/Sources/Services/AWSSQS/Sources/AWSSQS/SQSClient.swift b/Sources/Services/AWSSQS/Sources/AWSSQS/SQSClient.swift index 623caa0e451..f2f5ade4813 100644 --- a/Sources/Services/AWSSQS/Sources/AWSSQS/SQSClient.swift +++ b/Sources/Services/AWSSQS/Sources/AWSSQS/SQSClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SQSClient: ClientRuntime.Client { public static let clientName = "SQSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SQSClient.SQSClientConfiguration let serviceName = "SQS" diff --git a/Sources/Services/AWSSSM/Sources/AWSSSM/Models.swift b/Sources/Services/AWSSSM/Sources/AWSSSM/Models.swift index c6c01b6d537..b6c37a601c9 100644 --- a/Sources/Services/AWSSSM/Sources/AWSSSM/Models.swift +++ b/Sources/Services/AWSSSM/Sources/AWSSSM/Models.swift @@ -3419,7 +3419,7 @@ public struct CreatePatchBaselineInput: Swift.Sendable { public var clientToken: Swift.String? /// A description of the patch baseline. public var description: Swift.String? - /// A set of global filters used to include patches in the baseline. + /// A set of global filters used to include patches in the baseline. The GlobalFilters parameter can be configured only by using the CLI or an Amazon Web Services SDK. It can't be configured from the Patch Manager console, and its value isn't displayed in the console. public var globalFilters: SSMClientTypes.PatchFilterGroup? /// The name of the patch baseline. /// This member is required. @@ -3764,7 +3764,7 @@ public struct InvalidActivation: ClientRuntime.ModeledError, AWSClientRuntime.AW } } -/// The activation ID isn't valid. Verify the you entered the correct ActivationId or ActivationCode and try again. +/// The activation ID isn't valid. Verify that you entered the correct ActivationId or ActivationCode and try again. public struct InvalidActivationId: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -4696,7 +4696,7 @@ public struct DeregisterTaskFromMaintenanceWindowOutput: Swift.Sendable { } } -/// The filter name isn't valid. Verify the you entered the correct name and try again. +/// The filter name isn't valid. Verify that you entered the correct name and try again. public struct InvalidFilter: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -7871,7 +7871,7 @@ extension SSMClientTypes { public var pingStatus: SSMClientTypes.PingStatus? /// The name of the operating system platform running on your managed node. public var platformName: Swift.String? - /// The operating system platform type of the managed node. For example, Windows. + /// The operating system platform type of the managed node. For example, Windows Server or Amazon Linux 2. public var platformType: SSMClientTypes.PlatformType? /// The version of the OS platform running on your managed node. public var platformVersion: Swift.String? @@ -9665,7 +9665,7 @@ extension SSMClientTypes { public struct ParameterMetadata: Swift.Sendable { /// A parameter name can include only the following letters and symbols. a-zA-Z0-9_.- public var allowedPattern: Swift.String? - /// The (ARN) of the last user to update the parameter. + /// The Amazon Resource Name (ARN) of the parameter. public var arn: Swift.String? /// The data type of the parameter, such as text or aws:ec2:image. The default is text. public var dataType: Swift.String? @@ -11263,7 +11263,179 @@ public struct GetDocumentOutput: Swift.Sendable { } } -/// The specified aggregator isn't valid for inventory groups. Verify that the aggregator uses a valid inventory type such as AWS:Application or AWS:InstanceInformation. +public struct GetExecutionPreviewInput: Swift.Sendable { + /// The ID of the existing execution preview. + /// This member is required. + public var executionPreviewId: Swift.String? + + public init( + executionPreviewId: Swift.String? = nil + ) + { + self.executionPreviewId = executionPreviewId + } +} + +extension SSMClientTypes { + + public enum ImpactType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case `mutating` + case nonMutating + case undetermined + case sdkUnknown(Swift.String) + + public static var allCases: [ImpactType] { + return [ + .mutating, + .nonMutating, + .undetermined + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .mutating: return "Mutating" + case .nonMutating: return "NonMutating" + case .undetermined: return "Undetermined" + case let .sdkUnknown(s): return s + } + } + } +} + +extension SSMClientTypes { + + /// Information about the resources that would be included in the actual runbook execution, if it were to be run. + public struct TargetPreview: Swift.Sendable { + /// The number of resources of a certain type included in an execution preview. + public var count: Swift.Int + /// A type of resource that was included in the execution preview. + public var targetType: Swift.String? + + public init( + count: Swift.Int = 0, + targetType: Swift.String? = nil + ) + { + self.count = count + self.targetType = targetType + } + } +} + +extension SSMClientTypes { + + /// Information about the results of the execution preview. + public struct AutomationExecutionPreview: Swift.Sendable { + /// Information about the Amazon Web Services Regions targeted by the execution preview. + public var regions: [Swift.String]? + /// Information about the type of impact a runbook step would have on a resource. + /// + /// * Mutating: The runbook step would make changes to the targets through actions that create, modify, or delete resources. + /// + /// * Non_Mutating: The runbook step would retrieve data about resources but not make changes to them. This category generally includes Describe*, List*, Get*, and similar read-only API actions. + /// + /// * Undetermined: An undetermined step invokes executions performed by another orchestration service like Lambda, Step Functions, or Amazon Web Services Systems Manager Run Command. An undetermined step might also call a third-party API. Systems Manager Automation doesn't know the outcome of the orchestration processes or third-party API executions, so the results of the steps are undetermined. + public var stepPreviews: [Swift.String: Swift.Int]? + /// Information that provides a preview of what the impact of running the specified Automation runbook would be. + public var targetPreviews: [SSMClientTypes.TargetPreview]? + /// Information about the Amazon Web Services accounts that were included in the execution preview. + public var totalAccounts: Swift.Int + + public init( + regions: [Swift.String]? = nil, + stepPreviews: [Swift.String: Swift.Int]? = nil, + targetPreviews: [SSMClientTypes.TargetPreview]? = nil, + totalAccounts: Swift.Int = 0 + ) + { + self.regions = regions + self.stepPreviews = stepPreviews + self.targetPreviews = targetPreviews + self.totalAccounts = totalAccounts + } + } +} + +extension SSMClientTypes { + + /// Information about the changes that would be made if an execution were run. + public enum ExecutionPreview: Swift.Sendable { + /// Information about the changes that would be made if an Automation workflow were run. + case automation(SSMClientTypes.AutomationExecutionPreview) + case sdkUnknown(Swift.String) + } +} + +extension SSMClientTypes { + + public enum ExecutionPreviewStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case failed + case inProgress + case pending + case success + case sdkUnknown(Swift.String) + + public static var allCases: [ExecutionPreviewStatus] { + return [ + .failed, + .inProgress, + .pending, + .success + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .failed: return "Failed" + case .inProgress: return "InProgress" + case .pending: return "Pending" + case .success: return "Success" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct GetExecutionPreviewOutput: Swift.Sendable { + /// A UTC timestamp indicating when the execution preview operation ended. + public var endedAt: Foundation.Date? + /// Information about the changes that would be made if an execution were run. + public var executionPreview: SSMClientTypes.ExecutionPreview? + /// The generated ID for the existing execution preview. + public var executionPreviewId: Swift.String? + /// The current status of the execution preview operation. + public var status: SSMClientTypes.ExecutionPreviewStatus? + /// Supplemental information about the current status of the execution preview. + public var statusMessage: Swift.String? + + public init( + endedAt: Foundation.Date? = nil, + executionPreview: SSMClientTypes.ExecutionPreview? = nil, + executionPreviewId: Swift.String? = nil, + status: SSMClientTypes.ExecutionPreviewStatus? = nil, + statusMessage: Swift.String? = nil + ) + { + self.endedAt = endedAt + self.executionPreview = executionPreview + self.executionPreviewId = executionPreviewId + self.status = status + self.statusMessage = statusMessage + } +} + +/// The specified aggregator isn't valid for the group type. Verify that the aggregator you provided is supported. public struct InvalidAggregatorException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -13152,16 +13324,20 @@ public struct ServiceSettingNotFound: ClientRuntime.ModeledError, AWSClientRunti public struct GetServiceSettingInput: Swift.Sendable { /// The ID of the service setting to get. The setting ID can be one of the following. /// - /// * /ssm/managed-instance/default-ec2-instance-management-role + /// * /ssm/appmanager/appmanager-enabled /// /// * /ssm/automation/customer-script-log-destination /// /// * /ssm/automation/customer-script-log-group-name /// + /// * /ssm/automation/enable-adaptive-concurrency + /// /// * /ssm/documents/console/public-sharing-permission /// /// * /ssm/managed-instance/activation-tier /// + /// * /ssm/managed-instance/default-ec2-instance-management-role + /// /// * /ssm/opsinsights/opscenter /// /// * /ssm/parameter-store/default-parameter-tier @@ -15162,15 +15338,67 @@ public struct ListInventoryEntriesOutput: Swift.Sendable { } } +/// This operation is not supported for the current account. You must first enable the Systems Manager integrated experience in your account. +public struct UnsupportedOperationException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "UnsupportedOperation" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + extension SSMClientTypes { - public enum OpsItemEventFilterKey: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { - case opsitemId + public enum NodeFilterKey: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case accountId + case agentType + case agentVersion + case computerName + case instanceId + case instanceStatus + case ipAddress + case managedStatus + case organizationalUnitId + case organizationalUnitPath + case platformName + case platformType + case platformVersion + case region + case resourceType case sdkUnknown(Swift.String) - public static var allCases: [OpsItemEventFilterKey] { + public static var allCases: [NodeFilterKey] { return [ - .opsitemId + .accountId, + .agentType, + .agentVersion, + .computerName, + .instanceId, + .instanceStatus, + .ipAddress, + .managedStatus, + .organizationalUnitId, + .organizationalUnitPath, + .platformName, + .platformType, + .platformVersion, + .region, + .resourceType ] } @@ -15181,7 +15409,21 @@ extension SSMClientTypes { public var rawValue: Swift.String { switch self { - case .opsitemId: return "OpsItemId" + case .accountId: return "AccountId" + case .agentType: return "AgentType" + case .agentVersion: return "AgentVersion" + case .computerName: return "ComputerName" + case .instanceId: return "InstanceId" + case .instanceStatus: return "InstanceStatus" + case .ipAddress: return "IpAddress" + case .managedStatus: return "ManagedStatus" + case .organizationalUnitId: return "OrganizationalUnitId" + case .organizationalUnitPath: return "OrganizationalUnitPath" + case .platformName: return "PlatformName" + case .platformType: return "PlatformType" + case .platformVersion: return "PlatformVersion" + case .region: return "Region" + case .resourceType: return "ResourceType" case let .sdkUnknown(s): return s } } @@ -15190,13 +15432,17 @@ extension SSMClientTypes { extension SSMClientTypes { - public enum OpsItemEventFilterOperator: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + public enum NodeFilterOperatorType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case beginWith case equal + case notEqual case sdkUnknown(Swift.String) - public static var allCases: [OpsItemEventFilterOperator] { + public static var allCases: [NodeFilterOperatorType] { return [ - .equal + .beginWith, + .equal, + .notEqual ] } @@ -15207,7 +15453,9 @@ extension SSMClientTypes { public var rawValue: Swift.String { switch self { + case .beginWith: return "BeginWith" case .equal: return "Equal" + case .notEqual: return "NotEqual" case let .sdkUnknown(s): return s } } @@ -15216,105 +15464,487 @@ extension SSMClientTypes { extension SSMClientTypes { - /// Describes a filter for a specific list of OpsItem events. You can filter event information by using tags. You specify tags by using a key-value pair mapping. - public struct OpsItemEventFilter: Swift.Sendable { - /// The name of the filter key. Currently, the only supported value is OpsItemId. - /// This member is required. - public var key: SSMClientTypes.OpsItemEventFilterKey? - /// The operator used by the filter call. Currently, the only supported value is Equal. + /// The filters for the operation. + public struct NodeFilter: Swift.Sendable { + /// The name of the filter. /// This member is required. - public var `operator`: SSMClientTypes.OpsItemEventFilterOperator? - /// The values for the filter, consisting of one or more OpsItem IDs. + public var key: SSMClientTypes.NodeFilterKey? + /// The type of filter operator. + public var type: SSMClientTypes.NodeFilterOperatorType? + /// A filter value supported by the specified key. For example, for the key PlatformType, supported values include Linux and Windows. /// This member is required. public var values: [Swift.String]? public init( - key: SSMClientTypes.OpsItemEventFilterKey? = nil, - `operator`: SSMClientTypes.OpsItemEventFilterOperator? = nil, + key: SSMClientTypes.NodeFilterKey? = nil, + type: SSMClientTypes.NodeFilterOperatorType? = nil, values: [Swift.String]? = nil ) { self.key = key - self.`operator` = `operator` + self.type = type self.values = values } } } -public struct ListOpsItemEventsInput: Swift.Sendable { - /// One or more OpsItem filters. Use a filter to return a more specific list of results. - public var filters: [SSMClientTypes.OpsItemEventFilter]? +public struct ListNodesInput: Swift.Sendable { + /// One or more filters. Use a filter to return a more specific list of managed nodes. + public var filters: [SSMClientTypes.NodeFilter]? /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. public var maxResults: Swift.Int? - /// A token to start the list. Use this token to get the next set of results. + /// The token for the next set of items to return. (You received this token from a previous call.) public var nextToken: Swift.String? + /// The name of the resource data sync to retrieve information about. Required for cross-account/cross-Region configurations. Optional for single account/single-Region configurations. + public var syncName: Swift.String? public init( - filters: [SSMClientTypes.OpsItemEventFilter]? = nil, + filters: [SSMClientTypes.NodeFilter]? = nil, maxResults: Swift.Int? = nil, - nextToken: Swift.String? = nil + nextToken: Swift.String? = nil, + syncName: Swift.String? = nil ) { self.filters = filters self.maxResults = maxResults self.nextToken = nextToken + self.syncName = syncName } } extension SSMClientTypes { - /// Information about the user or resource that created an OpsItem event. - public struct OpsItemIdentity: Swift.Sendable { - /// The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem event. - public var arn: Swift.String? + public enum ManagedStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case all + case managed + case unmanaged + case sdkUnknown(Swift.String) - public init( - arn: Swift.String? = nil - ) - { - self.arn = arn + public static var allCases: [ManagedStatus] { + return [ + .all, + .managed, + .unmanaged + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .all: return "All" + case .managed: return "Managed" + case .unmanaged: return "Unmanaged" + case let .sdkUnknown(s): return s + } } } } extension SSMClientTypes { - /// Summary information about an OpsItem event or that associated an OpsItem with a related item. - public struct OpsItemEventSummary: Swift.Sendable { - /// Information about the user or resource that created the OpsItem event. - public var createdBy: SSMClientTypes.OpsItemIdentity? - /// The date and time the OpsItem event was created. - public var createdTime: Foundation.Date? - /// Specific information about the OpsItem event. - public var detail: Swift.String? - /// The type of information provided as a detail. - public var detailType: Swift.String? - /// The ID of the OpsItem event. - public var eventId: Swift.String? - /// The ID of the OpsItem. - public var opsItemId: Swift.String? - /// The source of the OpsItem event. - public var source: Swift.String? + /// Details about a specific managed node. + public struct InstanceInfo: Swift.Sendable { + /// The type of agent installed on the node. + public var agentType: Swift.String? + /// The version number of the agent installed on the node. + public var agentVersion: Swift.String? + /// The fully qualified host name of the managed node. + public var computerName: Swift.String? + /// The current status of the managed node. + public var instanceStatus: Swift.String? + /// The IP address of the managed node. + public var ipAddress: Swift.String? + /// Indicates whether the node is managed by Systems Manager. + public var managedStatus: SSMClientTypes.ManagedStatus? + /// The name of the operating system platform running on your managed node. + public var platformName: Swift.String? + /// The operating system platform type of the managed node. + public var platformType: SSMClientTypes.PlatformType? + /// The version of the OS platform running on your managed node. + public var platformVersion: Swift.String? + /// The type of instance, either an EC2 instance or another supported machine type in a hybrid fleet. + public var resourceType: SSMClientTypes.ResourceType? public init( - createdBy: SSMClientTypes.OpsItemIdentity? = nil, - createdTime: Foundation.Date? = nil, - detail: Swift.String? = nil, - detailType: Swift.String? = nil, - eventId: Swift.String? = nil, - opsItemId: Swift.String? = nil, - source: Swift.String? = nil + agentType: Swift.String? = nil, + agentVersion: Swift.String? = nil, + computerName: Swift.String? = nil, + instanceStatus: Swift.String? = nil, + ipAddress: Swift.String? = nil, + managedStatus: SSMClientTypes.ManagedStatus? = nil, + platformName: Swift.String? = nil, + platformType: SSMClientTypes.PlatformType? = nil, + platformVersion: Swift.String? = nil, + resourceType: SSMClientTypes.ResourceType? = nil ) { - self.createdBy = createdBy - self.createdTime = createdTime - self.detail = detail - self.detailType = detailType - self.eventId = eventId - self.opsItemId = opsItemId - self.source = source - } - } + self.agentType = agentType + self.agentVersion = agentVersion + self.computerName = computerName + self.instanceStatus = instanceStatus + self.ipAddress = ipAddress + self.managedStatus = managedStatus + self.platformName = platformName + self.platformType = platformType + self.platformVersion = platformVersion + self.resourceType = resourceType + } + } +} + +extension SSMClientTypes.InstanceInfo: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "InstanceInfo(agentType: \(Swift.String(describing: agentType)), agentVersion: \(Swift.String(describing: agentVersion)), computerName: \(Swift.String(describing: computerName)), instanceStatus: \(Swift.String(describing: instanceStatus)), managedStatus: \(Swift.String(describing: managedStatus)), platformName: \(Swift.String(describing: platformName)), platformType: \(Swift.String(describing: platformType)), platformVersion: \(Swift.String(describing: platformVersion)), resourceType: \(Swift.String(describing: resourceType)), ipAddress: \"CONTENT_REDACTED\")"} +} + +extension SSMClientTypes { + + /// Information about a managed node's type. + public enum NodeType: Swift.Sendable { + /// Information about a specific managed node. + case instance(SSMClientTypes.InstanceInfo) + case sdkUnknown(Swift.String) + } +} + +extension SSMClientTypes { + + /// Information about ownership of a managed node. + public struct NodeOwnerInfo: Swift.Sendable { + /// The ID of the Amazon Web Services account that owns the managed node. + public var accountId: Swift.String? + /// The ID of the organization unit (OU) that the account is part of. + public var organizationalUnitId: Swift.String? + /// The path for the organizational unit (OU) that owns the managed node. The path for the OU is built using the IDs of the organization, root, and all OUs in the path down to and including the OU. For example: o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/ou-jkl0-awsddddd/ + public var organizationalUnitPath: Swift.String? + + public init( + accountId: Swift.String? = nil, + organizationalUnitId: Swift.String? = nil, + organizationalUnitPath: Swift.String? = nil + ) + { + self.accountId = accountId + self.organizationalUnitId = organizationalUnitId + self.organizationalUnitPath = organizationalUnitPath + } + } +} + +extension SSMClientTypes { + + /// Details about an individual managed node. + public struct Node: Swift.Sendable { + /// The UTC timestamp for when the managed node data was last captured. + public var captureTime: Foundation.Date? + /// The ID of the managed node. + public var id: Swift.String? + /// Information about the type of node. + public var nodeType: SSMClientTypes.NodeType? + /// Information about the ownership of the managed node. + public var owner: SSMClientTypes.NodeOwnerInfo? + /// The Amazon Web Services Region that a managed node was created in or assigned to. + public var region: Swift.String? + + public init( + captureTime: Foundation.Date? = nil, + id: Swift.String? = nil, + nodeType: SSMClientTypes.NodeType? = nil, + owner: SSMClientTypes.NodeOwnerInfo? = nil, + region: Swift.String? = nil + ) + { + self.captureTime = captureTime + self.id = id + self.nodeType = nodeType + self.owner = owner + self.region = region + } + } +} + +public struct ListNodesOutput: Swift.Sendable { + /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. + public var nextToken: Swift.String? + /// A list of managed nodes that match the specified filter criteria. + public var nodes: [SSMClientTypes.Node]? + + public init( + nextToken: Swift.String? = nil, + nodes: [SSMClientTypes.Node]? = nil + ) + { + self.nextToken = nextToken + self.nodes = nodes + } +} + +extension SSMClientTypes { + + public enum NodeAggregatorType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case count + case sdkUnknown(Swift.String) + + public static var allCases: [NodeAggregatorType] { + return [ + .count + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .count: return "Count" + case let .sdkUnknown(s): return s + } + } + } +} + +extension SSMClientTypes { + + public enum NodeAttributeName: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case agentVersion + case platformName + case platformType + case platformVersion + case region + case resourceType + case sdkUnknown(Swift.String) + + public static var allCases: [NodeAttributeName] { + return [ + .agentVersion, + .platformName, + .platformType, + .platformVersion, + .region, + .resourceType + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .agentVersion: return "AgentVersion" + case .platformName: return "PlatformName" + case .platformType: return "PlatformType" + case .platformVersion: return "PlatformVersion" + case .region: return "Region" + case .resourceType: return "ResourceType" + case let .sdkUnknown(s): return s + } + } + } +} + +extension SSMClientTypes { + + public enum NodeTypeName: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case instance + case sdkUnknown(Swift.String) + + public static var allCases: [NodeTypeName] { + return [ + .instance + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .instance: return "Instance" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct ListNodesSummaryOutput: Swift.Sendable { + /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. + public var nextToken: Swift.String? + /// A collection of objects reporting information about your managed nodes, such as the count of nodes by operating system. + public var summary: [[Swift.String: Swift.String]]? + + public init( + nextToken: Swift.String? = nil, + summary: [[Swift.String: Swift.String]]? = nil + ) + { + self.nextToken = nextToken + self.summary = summary + } +} + +extension SSMClientTypes { + + public enum OpsItemEventFilterKey: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case opsitemId + case sdkUnknown(Swift.String) + + public static var allCases: [OpsItemEventFilterKey] { + return [ + .opsitemId + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .opsitemId: return "OpsItemId" + case let .sdkUnknown(s): return s + } + } + } +} + +extension SSMClientTypes { + + public enum OpsItemEventFilterOperator: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case equal + case sdkUnknown(Swift.String) + + public static var allCases: [OpsItemEventFilterOperator] { + return [ + .equal + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .equal: return "Equal" + case let .sdkUnknown(s): return s + } + } + } +} + +extension SSMClientTypes { + + /// Describes a filter for a specific list of OpsItem events. You can filter event information by using tags. You specify tags by using a key-value pair mapping. + public struct OpsItemEventFilter: Swift.Sendable { + /// The name of the filter key. Currently, the only supported value is OpsItemId. + /// This member is required. + public var key: SSMClientTypes.OpsItemEventFilterKey? + /// The operator used by the filter call. Currently, the only supported value is Equal. + /// This member is required. + public var `operator`: SSMClientTypes.OpsItemEventFilterOperator? + /// The values for the filter, consisting of one or more OpsItem IDs. + /// This member is required. + public var values: [Swift.String]? + + public init( + key: SSMClientTypes.OpsItemEventFilterKey? = nil, + `operator`: SSMClientTypes.OpsItemEventFilterOperator? = nil, + values: [Swift.String]? = nil + ) + { + self.key = key + self.`operator` = `operator` + self.values = values + } + } +} + +public struct ListOpsItemEventsInput: Swift.Sendable { + /// One or more OpsItem filters. Use a filter to return a more specific list of results. + public var filters: [SSMClientTypes.OpsItemEventFilter]? + /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + public var maxResults: Swift.Int? + /// A token to start the list. Use this token to get the next set of results. + public var nextToken: Swift.String? + + public init( + filters: [SSMClientTypes.OpsItemEventFilter]? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.filters = filters + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +extension SSMClientTypes { + + /// Information about the user or resource that created an OpsItem event. + public struct OpsItemIdentity: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem event. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } + } +} + +extension SSMClientTypes { + + /// Summary information about an OpsItem event or that associated an OpsItem with a related item. + public struct OpsItemEventSummary: Swift.Sendable { + /// Information about the user or resource that created the OpsItem event. + public var createdBy: SSMClientTypes.OpsItemIdentity? + /// The date and time the OpsItem event was created. + public var createdTime: Foundation.Date? + /// Specific information about the OpsItem event. + public var detail: Swift.String? + /// The type of information provided as a detail. + public var detailType: Swift.String? + /// The ID of the OpsItem event. + public var eventId: Swift.String? + /// The ID of the OpsItem. + public var opsItemId: Swift.String? + /// The source of the OpsItem event. + public var source: Swift.String? + + public init( + createdBy: SSMClientTypes.OpsItemIdentity? = nil, + createdTime: Foundation.Date? = nil, + detail: Swift.String? = nil, + detailType: Swift.String? = nil, + eventId: Swift.String? = nil, + opsItemId: Swift.String? = nil, + source: Swift.String? = nil + ) + { + self.createdBy = createdBy + self.createdTime = createdTime + self.detail = detail + self.detailType = detailType + self.eventId = eventId + self.opsItemId = opsItemId + self.source = source + } + } } public struct ListOpsItemEventsOutput: Swift.Sendable { @@ -17115,16 +17745,20 @@ public struct RemoveTagsFromResourceOutput: Swift.Sendable { public struct ResetServiceSettingInput: Swift.Sendable { /// The Amazon Resource Name (ARN) of the service setting to reset. The setting ID can be one of the following. /// - /// * /ssm/managed-instance/default-ec2-instance-management-role + /// * /ssm/appmanager/appmanager-enabled /// /// * /ssm/automation/customer-script-log-destination /// /// * /ssm/automation/customer-script-log-group-name /// + /// * /ssm/automation/enable-adaptive-concurrency + /// /// * /ssm/documents/console/public-sharing-permission /// /// * /ssm/managed-instance/activation-tier /// + /// * /ssm/managed-instance/default-ec2-instance-management-role + /// /// * /ssm/opsinsights/opscenter /// /// * /ssm/parameter-store/default-parameter-tier @@ -17775,6 +18409,113 @@ public struct StartChangeRequestExecutionOutput: Swift.Sendable { } } +/// The request isn't valid. Verify that you entered valid contents for the command and try again. +public struct ValidationException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + public internal(set) var message: Swift.String? = nil + /// The reason code for the invalid request. + public internal(set) var reasonCode: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ValidationException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil, + reasonCode: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.reasonCode = reasonCode + } +} + +extension SSMClientTypes { + + /// Information about the optional inputs that can be specified for an automation execution preview. + public struct AutomationExecutionInputs: Swift.Sendable { + /// Information about parameters that can be specified for the preview operation. + public var parameters: [Swift.String: [Swift.String]]? + /// Information about the Amazon Web Services Regions and Amazon Web Services accounts targeted by the Automation execution preview operation. + public var targetLocations: [SSMClientTypes.TargetLocation]? + /// A publicly accessible URL for a file that contains the TargetLocations body. Currently, only files in presigned Amazon S3 buckets are supported. + public var targetLocationsURL: Swift.String? + /// A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together. + public var targetMaps: [[Swift.String: [Swift.String]]]? + /// The name of the parameter used as the target resource for the rate-controlled execution. Required if you specify targets. + public var targetParameterName: Swift.String? + /// Information about the resources that would be included in the actual runbook execution, if it were to be run. Both Targets and TargetMaps can't be specified together. + public var targets: [SSMClientTypes.Target]? + + public init( + parameters: [Swift.String: [Swift.String]]? = nil, + targetLocations: [SSMClientTypes.TargetLocation]? = nil, + targetLocationsURL: Swift.String? = nil, + targetMaps: [[Swift.String: [Swift.String]]]? = nil, + targetParameterName: Swift.String? = nil, + targets: [SSMClientTypes.Target]? = nil + ) + { + self.parameters = parameters + self.targetLocations = targetLocations + self.targetLocationsURL = targetLocationsURL + self.targetMaps = targetMaps + self.targetParameterName = targetParameterName + self.targets = targets + } + } +} + +extension SSMClientTypes { + + /// Information about the inputs for an execution preview. + public enum ExecutionInputs: Swift.Sendable { + /// Information about the optional inputs that can be specified for an automation execution preview. + case automation(SSMClientTypes.AutomationExecutionInputs) + case sdkUnknown(Swift.String) + } +} + +public struct StartExecutionPreviewInput: Swift.Sendable { + /// The name of the Automation runbook to run. The result of the execution preview indicates what the impact would be of running this runbook. + /// This member is required. + public var documentName: Swift.String? + /// The version of the Automation runbook to run. The default value is $DEFAULT. + public var documentVersion: Swift.String? + /// Information about the inputs that can be specified for the preview operation. + public var executionInputs: SSMClientTypes.ExecutionInputs? + + public init( + documentName: Swift.String? = nil, + documentVersion: Swift.String? = nil, + executionInputs: SSMClientTypes.ExecutionInputs? = nil + ) + { + self.documentName = documentName + self.documentVersion = documentVersion + self.executionInputs = executionInputs + } +} + +public struct StartExecutionPreviewOutput: Swift.Sendable { + /// The ID of the execution preview generated by the system. + public var executionPreviewId: Swift.String? + + public init( + executionPreviewId: Swift.String? = nil + ) + { + self.executionPreviewId = executionPreviewId + } +} + /// The specified target managed node for the session isn't fully configured for use with Session Manager. For more information, see [Setting up Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html) in the Amazon Web Services Systems Manager User Guide. This error is also returned if you attempt to start a session on a managed node that is located in a different account or Region public struct TargetNotConnected: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -18998,7 +19739,7 @@ public struct UpdatePatchBaselineInput: Swift.Sendable { public var baselineId: Swift.String? /// A description of the patch baseline. public var description: Swift.String? - /// A set of global filters used to include patches in the baseline. + /// A set of global filters used to include patches in the baseline. The GlobalFilters parameter can be configured only by using the CLI or an Amazon Web Services SDK. It can't be configured from the Patch Manager console, and its value isn't displayed in the console. public var globalFilters: SSMClientTypes.PatchFilterGroup? /// The name of the patch baseline. public var name: Swift.String? @@ -19161,16 +19902,20 @@ public struct UpdateResourceDataSyncOutput: Swift.Sendable { public struct UpdateServiceSettingInput: Swift.Sendable { /// The Amazon Resource Name (ARN) of the service setting to update. For example, arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled. The setting ID can be one of the following. /// - /// * /ssm/managed-instance/default-ec2-instance-management-role + /// * /ssm/appmanager/appmanager-enabled /// /// * /ssm/automation/customer-script-log-destination /// /// * /ssm/automation/customer-script-log-group-name /// + /// * /ssm/automation/enable-adaptive-concurrency + /// /// * /ssm/documents/console/public-sharing-permission /// /// * /ssm/managed-instance/activation-tier /// + /// * /ssm/managed-instance/default-ec2-instance-management-role + /// /// * /ssm/opsinsights/opscenter /// /// * /ssm/parameter-store/default-parameter-tier @@ -19183,7 +19928,7 @@ public struct UpdateServiceSettingInput: Swift.Sendable { public var settingId: Swift.String? /// The new value to specify for the service setting. The following list specifies the available values for each setting. /// - /// * For /ssm/managed-instance/default-ec2-instance-management-role, enter the name of an IAM role. + /// * For /ssm/appmanager/appmanager-enabled, enter True or False. /// /// * For /ssm/automation/customer-script-log-destination, enter CloudWatch. /// @@ -19193,6 +19938,8 @@ public struct UpdateServiceSettingInput: Swift.Sendable { /// /// * For /ssm/managed-instance/activation-tier, enter standard or advanced. /// + /// * For /ssm/managed-instance/default-ec2-instance-management-role, enter the name of an IAM role. + /// /// * For /ssm/opsinsights/opscenter, enter Enabled or Disabled. /// /// * For /ssm/parameter-store/default-parameter-tier, enter Standard, Advanced, or Intelligent-Tiering @@ -19241,6 +19988,37 @@ extension SSMClientTypes { } } +extension SSMClientTypes { + + /// One or more aggregators for viewing counts of nodes using different dimensions. + public struct NodeAggregator: Swift.Sendable { + /// The aggregator type for limiting a node summary. Currently, only Count is supported. + /// This member is required. + public var aggregatorType: SSMClientTypes.NodeAggregatorType? + /// Information about aggregators used to refine a node summary. + public var aggregators: [SSMClientTypes.NodeAggregator]? + /// The name of a node attribute on which to limit the count of nodes. + /// This member is required. + public var attributeName: SSMClientTypes.NodeAttributeName? + /// The data type name to use for viewing counts of nodes. Currently, only Instance is supported. + /// This member is required. + public var typeName: SSMClientTypes.NodeTypeName? + + public init( + aggregatorType: SSMClientTypes.NodeAggregatorType? = nil, + aggregators: [SSMClientTypes.NodeAggregator]? = nil, + attributeName: SSMClientTypes.NodeAttributeName? = nil, + typeName: SSMClientTypes.NodeTypeName? = nil + ) + { + self.aggregatorType = aggregatorType + self.aggregators = aggregators + self.attributeName = attributeName + self.typeName = typeName + } + } +} + extension SSMClientTypes { /// One or more aggregators for viewing counts of OpsData using different dimensions such as Source, CreatedTime, or Source and CreatedTime, to name a few. @@ -19320,11 +20098,41 @@ public struct GetOpsSummaryInput: Swift.Sendable { public var syncName: Swift.String? public init( - aggregators: [SSMClientTypes.OpsAggregator]? = nil, - filters: [SSMClientTypes.OpsFilter]? = nil, + aggregators: [SSMClientTypes.OpsAggregator]? = nil, + filters: [SSMClientTypes.OpsFilter]? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil, + resultAttributes: [SSMClientTypes.OpsResultAttribute]? = nil, + syncName: Swift.String? = nil + ) + { + self.aggregators = aggregators + self.filters = filters + self.maxResults = maxResults + self.nextToken = nextToken + self.resultAttributes = resultAttributes + self.syncName = syncName + } +} + +public struct ListNodesSummaryInput: Swift.Sendable { + /// Specify one or more aggregators to return a count of managed nodes that match that expression. For example, a count of managed nodes by operating system. + /// This member is required. + public var aggregators: [SSMClientTypes.NodeAggregator]? + /// One or more filters. Use a filter to generate a summary that matches your specified filter criteria. + public var filters: [SSMClientTypes.NodeFilter]? + /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + public var maxResults: Swift.Int? + /// The token for the next set of items to return. (You received this token from a previous call.) The call also returns a token that you can specify in a subsequent call to get the next set of results. + public var nextToken: Swift.String? + /// The name of the resource data sync to retrieve information about. Required for cross-account/cross-Region configuration. Optional for single account/single-Region configurations. + public var syncName: Swift.String? + + public init( + aggregators: [SSMClientTypes.NodeAggregator]? = nil, + filters: [SSMClientTypes.NodeFilter]? = nil, maxResults: Swift.Int? = nil, nextToken: Swift.String? = nil, - resultAttributes: [SSMClientTypes.OpsResultAttribute]? = nil, syncName: Swift.String? = nil ) { @@ -19332,7 +20140,6 @@ public struct GetOpsSummaryInput: Swift.Sendable { self.filters = filters self.maxResults = maxResults self.nextToken = nextToken - self.resultAttributes = resultAttributes self.syncName = syncName } } @@ -19827,6 +20634,13 @@ extension GetDocumentInput { } } +extension GetExecutionPreviewInput { + + static func urlPathProvider(_ value: GetExecutionPreviewInput) -> Swift.String? { + return "/" + } +} + extension GetInventoryInput { static func urlPathProvider(_ value: GetInventoryInput) -> Swift.String? { @@ -20030,6 +20844,20 @@ extension ListInventoryEntriesInput { } } +extension ListNodesInput { + + static func urlPathProvider(_ value: ListNodesInput) -> Swift.String? { + return "/" + } +} + +extension ListNodesSummaryInput { + + static func urlPathProvider(_ value: ListNodesSummaryInput) -> Swift.String? { + return "/" + } +} + extension ListOpsItemEventsInput { static func urlPathProvider(_ value: ListOpsItemEventsInput) -> Swift.String? { @@ -20191,6 +21019,13 @@ extension StartChangeRequestExecutionInput { } } +extension StartExecutionPreviewInput { + + static func urlPathProvider(_ value: StartExecutionPreviewInput) -> Swift.String? { + return "/" + } +} + extension StartSessionInput { static func urlPathProvider(_ value: StartSessionInput) -> Swift.String? { @@ -21075,6 +21910,14 @@ extension GetDocumentInput { } } +extension GetExecutionPreviewInput { + + static func write(value: GetExecutionPreviewInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ExecutionPreviewId"].write(value.executionPreviewId) + } +} + extension GetInventoryInput { static func write(value: GetInventoryInput?, to writer: SmithyJSON.Writer) throws { @@ -21374,6 +22217,29 @@ extension ListInventoryEntriesInput { } } +extension ListNodesInput { + + static func write(value: ListNodesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Filters"].writeList(value.filters, memberWritingClosure: SSMClientTypes.NodeFilter.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["MaxResults"].write(value.maxResults) + try writer["NextToken"].write(value.nextToken) + try writer["SyncName"].write(value.syncName) + } +} + +extension ListNodesSummaryInput { + + static func write(value: ListNodesSummaryInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Aggregators"].writeList(value.aggregators, memberWritingClosure: SSMClientTypes.NodeAggregator.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["Filters"].writeList(value.filters, memberWritingClosure: SSMClientTypes.NodeFilter.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["MaxResults"].write(value.maxResults) + try writer["NextToken"].write(value.nextToken) + try writer["SyncName"].write(value.syncName) + } +} + extension ListOpsItemEventsInput { static func write(value: ListOpsItemEventsInput?, to writer: SmithyJSON.Writer) throws { @@ -21660,6 +22526,16 @@ extension StartChangeRequestExecutionInput { } } +extension StartExecutionPreviewInput { + + static func write(value: StartExecutionPreviewInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["DocumentName"].write(value.documentName) + try writer["DocumentVersion"].write(value.documentVersion) + try writer["ExecutionInputs"].write(value.executionInputs, with: SSMClientTypes.ExecutionInputs.write(value:to:)) + } +} + extension StartSessionInput { static func write(value: StartSessionInput?, to writer: SmithyJSON.Writer) throws { @@ -22768,6 +23644,22 @@ extension GetDocumentOutput { } } +extension GetExecutionPreviewOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetExecutionPreviewOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetExecutionPreviewOutput() + value.endedAt = try reader["EndedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.executionPreview = try reader["ExecutionPreview"].readIfPresent(with: SSMClientTypes.ExecutionPreview.read(from:)) + value.executionPreviewId = try reader["ExecutionPreviewId"].readIfPresent() + value.status = try reader["Status"].readIfPresent() + value.statusMessage = try reader["StatusMessage"].readIfPresent() + return value + } +} + extension GetInventoryOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetInventoryOutput { @@ -23218,6 +24110,32 @@ extension ListInventoryEntriesOutput { } } +extension ListNodesOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListNodesOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListNodesOutput() + value.nextToken = try reader["NextToken"].readIfPresent() + value.nodes = try reader["Nodes"].readListIfPresent(memberReadingClosure: SSMClientTypes.Node.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension ListNodesSummaryOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListNodesSummaryOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListNodesSummaryOutput() + value.nextToken = try reader["NextToken"].readIfPresent() + value.summary = try reader["Summary"].readListIfPresent(memberReadingClosure: SmithyReadWrite.mapReadingClosure(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension ListOpsItemEventsOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListOpsItemEventsOutput { @@ -23479,6 +24397,18 @@ extension StartChangeRequestExecutionOutput { } } +extension StartExecutionPreviewOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartExecutionPreviewOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = StartExecutionPreviewOutput() + value.executionPreviewId = try reader["ExecutionPreviewId"].readIfPresent() + return value + } +} + extension StartSessionOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartSessionOutput { @@ -24856,6 +25786,21 @@ enum GetDocumentOutputError { } } +enum GetExecutionPreviewOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InternalServerError": return try InternalServerError.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum GetInventoryOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -25333,6 +26278,43 @@ enum ListInventoryEntriesOutputError { } } +enum ListNodesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InternalServerError": return try InternalServerError.makeError(baseError: baseError) + case "InvalidFilter": return try InvalidFilter.makeError(baseError: baseError) + case "InvalidNextToken": return try InvalidNextToken.makeError(baseError: baseError) + case "ResourceDataSyncNotFound": return try ResourceDataSyncNotFoundException.makeError(baseError: baseError) + case "UnsupportedOperation": return try UnsupportedOperationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListNodesSummaryOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InternalServerError": return try InternalServerError.makeError(baseError: baseError) + case "InvalidAggregator": return try InvalidAggregatorException.makeError(baseError: baseError) + case "InvalidFilter": return try InvalidFilter.makeError(baseError: baseError) + case "InvalidNextToken": return try InvalidNextToken.makeError(baseError: baseError) + case "ResourceDataSyncNotFound": return try ResourceDataSyncNotFoundException.makeError(baseError: baseError) + case "UnsupportedOperation": return try UnsupportedOperationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListOpsItemEventsOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -25752,6 +26734,21 @@ enum StartChangeRequestExecutionOutputError { } } +enum StartExecutionPreviewOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InternalServerError": return try InternalServerError.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum StartSessionOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -27167,6 +28164,19 @@ extension ParameterVersionLabelLimitExceeded { } } +extension UnsupportedOperationException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> UnsupportedOperationException { + let reader = baseError.errorBodyReader + var value = UnsupportedOperationException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + extension DocumentPermissionLimit { static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> DocumentPermissionLimit { @@ -27652,6 +28662,20 @@ extension AutomationDefinitionNotApprovedException { } } +extension ValidationException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ValidationException { + let reader = baseError.errorBodyReader + var value = ValidationException() + value.properties.message = try reader["Message"].readIfPresent() + value.properties.reasonCode = try reader["ReasonCode"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + extension TargetNotConnected { static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> TargetNotConnected { @@ -29042,6 +30066,44 @@ extension SSMClientTypes.AttachmentContent { } } +extension SSMClientTypes.ExecutionPreview { + + static func read(from reader: SmithyJSON.Reader) throws -> SSMClientTypes.ExecutionPreview { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + let name = reader.children.filter { $0.hasContent && $0.nodeInfo.name != "__type" }.first?.nodeInfo.name + switch name { + case "Automation": + return .automation(try reader["Automation"].read(with: SSMClientTypes.AutomationExecutionPreview.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension SSMClientTypes.AutomationExecutionPreview { + + static func read(from reader: SmithyJSON.Reader) throws -> SSMClientTypes.AutomationExecutionPreview { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = SSMClientTypes.AutomationExecutionPreview() + value.stepPreviews = try reader["StepPreviews"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readInt(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.regions = try reader["Regions"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.targetPreviews = try reader["TargetPreviews"].readListIfPresent(memberReadingClosure: SSMClientTypes.TargetPreview.read(from:), memberNodeInfo: "member", isFlattened: false) + value.totalAccounts = try reader["TotalAccounts"].readIfPresent() ?? 0 + return value + } +} + +extension SSMClientTypes.TargetPreview { + + static func read(from reader: SmithyJSON.Reader) throws -> SSMClientTypes.TargetPreview { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = SSMClientTypes.TargetPreview() + value.count = try reader["Count"].readIfPresent() ?? 0 + value.targetType = try reader["TargetType"].readIfPresent() + return value + } +} + extension SSMClientTypes.InventoryResultEntity { static func read(from reader: SmithyJSON.Reader) throws -> SSMClientTypes.InventoryResultEntity { @@ -29775,6 +30837,65 @@ extension SSMClientTypes.DocumentVersionInfo { } } +extension SSMClientTypes.Node { + + static func read(from reader: SmithyJSON.Reader) throws -> SSMClientTypes.Node { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = SSMClientTypes.Node() + value.captureTime = try reader["CaptureTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.id = try reader["Id"].readIfPresent() + value.owner = try reader["Owner"].readIfPresent(with: SSMClientTypes.NodeOwnerInfo.read(from:)) + value.region = try reader["Region"].readIfPresent() + value.nodeType = try reader["NodeType"].readIfPresent(with: SSMClientTypes.NodeType.read(from:)) + return value + } +} + +extension SSMClientTypes.NodeType { + + static func read(from reader: SmithyJSON.Reader) throws -> SSMClientTypes.NodeType { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + let name = reader.children.filter { $0.hasContent && $0.nodeInfo.name != "__type" }.first?.nodeInfo.name + switch name { + case "Instance": + return .instance(try reader["Instance"].read(with: SSMClientTypes.InstanceInfo.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension SSMClientTypes.InstanceInfo { + + static func read(from reader: SmithyJSON.Reader) throws -> SSMClientTypes.InstanceInfo { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = SSMClientTypes.InstanceInfo() + value.agentType = try reader["AgentType"].readIfPresent() + value.agentVersion = try reader["AgentVersion"].readIfPresent() + value.computerName = try reader["ComputerName"].readIfPresent() + value.instanceStatus = try reader["InstanceStatus"].readIfPresent() + value.ipAddress = try reader["IpAddress"].readIfPresent() + value.managedStatus = try reader["ManagedStatus"].readIfPresent() + value.platformType = try reader["PlatformType"].readIfPresent() + value.platformName = try reader["PlatformName"].readIfPresent() + value.platformVersion = try reader["PlatformVersion"].readIfPresent() + value.resourceType = try reader["ResourceType"].readIfPresent() + return value + } +} + +extension SSMClientTypes.NodeOwnerInfo { + + static func read(from reader: SmithyJSON.Reader) throws -> SSMClientTypes.NodeOwnerInfo { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = SSMClientTypes.NodeOwnerInfo() + value.accountId = try reader["AccountId"].readIfPresent() + value.organizationalUnitId = try reader["OrganizationalUnitId"].readIfPresent() + value.organizationalUnitPath = try reader["OrganizationalUnitPath"].readIfPresent() + return value + } +} + extension SSMClientTypes.OpsItemEventSummary { static func read(from reader: SmithyJSON.Reader) throws -> SSMClientTypes.OpsItemEventSummary { @@ -30278,6 +31399,27 @@ extension SSMClientTypes.DocumentKeyValuesFilter { } } +extension SSMClientTypes.NodeFilter { + + static func write(value: SSMClientTypes.NodeFilter?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Key"].write(value.key) + try writer["Type"].write(value.type) + try writer["Values"].writeList(value.values, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + +extension SSMClientTypes.NodeAggregator { + + static func write(value: SSMClientTypes.NodeAggregator?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["AggregatorType"].write(value.aggregatorType) + try writer["Aggregators"].writeList(value.aggregators, memberWritingClosure: SSMClientTypes.NodeAggregator.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["AttributeName"].write(value.attributeName) + try writer["TypeName"].write(value.typeName) + } +} + extension SSMClientTypes.OpsItemEventFilter { static func write(value: SSMClientTypes.OpsItemEventFilter?, to writer: SmithyJSON.Writer) throws { @@ -30332,6 +31474,32 @@ extension SSMClientTypes.InventoryItem { } } +extension SSMClientTypes.ExecutionInputs { + + static func write(value: SSMClientTypes.ExecutionInputs?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .automation(automation): + try writer["Automation"].write(automation, with: SSMClientTypes.AutomationExecutionInputs.write(value:to:)) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } +} + +extension SSMClientTypes.AutomationExecutionInputs { + + static func write(value: SSMClientTypes.AutomationExecutionInputs?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Parameters"].writeMap(value.parameters, valueWritingClosure: SmithyReadWrite.listWritingClosure(memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + try writer["TargetLocations"].writeList(value.targetLocations, memberWritingClosure: SSMClientTypes.TargetLocation.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["TargetLocationsURL"].write(value.targetLocationsURL) + try writer["TargetMaps"].writeList(value.targetMaps, memberWritingClosure: SmithyReadWrite.mapWritingClosure(valueWritingClosure: SmithyReadWrite.listWritingClosure(memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false), memberNodeInfo: "member", isFlattened: false) + try writer["TargetParameterName"].write(value.targetParameterName) + try writer["Targets"].writeList(value.targets, memberWritingClosure: SSMClientTypes.Target.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + extension SSMClientTypes.DocumentReviews { static func write(value: SSMClientTypes.DocumentReviews?, to writer: SmithyJSON.Writer) throws { diff --git a/Sources/Services/AWSSSM/Sources/AWSSSM/Paginators.swift b/Sources/Services/AWSSSM/Sources/AWSSSM/Paginators.swift index 69bc622f9ff..03a2d7b37c2 100644 --- a/Sources/Services/AWSSSM/Sources/AWSSSM/Paginators.swift +++ b/Sources/Services/AWSSSM/Sources/AWSSSM/Paginators.swift @@ -1359,6 +1359,71 @@ extension PaginatorSequence where OperationStackInput == ListDocumentVersionsInp return try await self.asyncCompactMap { item in item.documentVersions } } } +extension SSMClient { + /// Paginate over `[ListNodesOutput]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNodesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNodesOutput` + public func listNodesPaginated(input: ListNodesInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listNodes(input:)) + } +} + +extension ListNodesInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListNodesInput { + return ListNodesInput( + filters: self.filters, + maxResults: self.maxResults, + nextToken: token, + syncName: self.syncName + )} +} + +extension PaginatorSequence where OperationStackInput == ListNodesInput, OperationStackOutput == ListNodesOutput { + /// This paginator transforms the `AsyncSequence` returned by `listNodesPaginated` + /// to access the nested member `[SSMClientTypes.Node]` + /// - Returns: `[SSMClientTypes.Node]` + public func nodes() async throws -> [SSMClientTypes.Node] { + return try await self.asyncCompactMap { item in item.nodes } + } +} +extension SSMClient { + /// Paginate over `[ListNodesSummaryOutput]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNodesSummaryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNodesSummaryOutput` + public func listNodesSummaryPaginated(input: ListNodesSummaryInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listNodesSummary(input:)) + } +} + +extension ListNodesSummaryInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListNodesSummaryInput { + return ListNodesSummaryInput( + aggregators: self.aggregators, + filters: self.filters, + maxResults: self.maxResults, + nextToken: token, + syncName: self.syncName + )} +} + +extension PaginatorSequence where OperationStackInput == ListNodesSummaryInput, OperationStackOutput == ListNodesSummaryOutput { + /// This paginator transforms the `AsyncSequence` returned by `listNodesSummaryPaginated` + /// to access the nested member `[[Swift.String: Swift.String]]` + /// - Returns: `[[Swift.String: Swift.String]]` + public func summary() async throws -> [[Swift.String: Swift.String]] { + return try await self.asyncCompactMap { item in item.summary } + } +} extension SSMClient { /// Paginate over `[ListOpsItemEventsOutput]` results. /// diff --git a/Sources/Services/AWSSSM/Sources/AWSSSM/SSMClient.swift b/Sources/Services/AWSSSM/Sources/AWSSSM/SSMClient.swift index ee360be5d35..aa1f4fd3840 100644 --- a/Sources/Services/AWSSSM/Sources/AWSSSM/SSMClient.swift +++ b/Sources/Services/AWSSSM/Sources/AWSSSM/SSMClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SSMClient: ClientRuntime.Client { public static let clientName = "SSMClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SSMClient.SSMClientConfiguration let serviceName = "SSM" @@ -1133,7 +1133,7 @@ extension SSMClient { /// Performs the `CreateResourceDataSync` operation on the `AmazonSSM` service. /// - /// A resource data sync helps you view data from multiple sources in a single location. Amazon Web Services Systems Manager offers two types of resource data sync: SyncToDestination and SyncFromSource. You can configure Systems Manager Inventory to use the SyncToDestination type to synchronize Inventory data from multiple Amazon Web Services Regions to a single Amazon Simple Storage Service (Amazon S3) bucket. For more information, see [Creatinga a resource data sync for Inventory](https://docs.aws.amazon.com/systems-manager/latest/userguide/inventory-create-resource-data-sync.html) in the Amazon Web Services Systems Manager User Guide. You can configure Systems Manager Explorer to use the SyncFromSource type to synchronize operational work items (OpsItems) and operational data (OpsData) from multiple Amazon Web Services Regions to a single Amazon S3 bucket. This type can synchronize OpsItems and OpsData from multiple Amazon Web Services accounts and Amazon Web Services Regions or EntireOrganization by using Organizations. For more information, see [Setting up Systems Manager Explorer to display data from multiple accounts and Regions](https://docs.aws.amazon.com/systems-manager/latest/userguide/Explorer-resource-data-sync.html) in the Amazon Web Services Systems Manager User Guide. A resource data sync is an asynchronous operation that returns immediately. After a successful initial sync is completed, the system continuously syncs data. To check the status of a sync, use the [ListResourceDataSync]. By default, data isn't encrypted in Amazon S3. We strongly recommend that you enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you secure access to the Amazon S3 bucket by creating a restrictive bucket policy. + /// A resource data sync helps you view data from multiple sources in a single location. Amazon Web Services Systems Manager offers two types of resource data sync: SyncToDestination and SyncFromSource. You can configure Systems Manager Inventory to use the SyncToDestination type to synchronize Inventory data from multiple Amazon Web Services Regions to a single Amazon Simple Storage Service (Amazon S3) bucket. For more information, see [Creating a resource data sync for Inventory](https://docs.aws.amazon.com/systems-manager/latest/userguide/inventory-create-resource-data-sync.html) in the Amazon Web Services Systems Manager User Guide. You can configure Systems Manager Explorer to use the SyncFromSource type to synchronize operational work items (OpsItems) and operational data (OpsData) from multiple Amazon Web Services Regions to a single Amazon S3 bucket. This type can synchronize OpsItems and OpsData from multiple Amazon Web Services accounts and Amazon Web Services Regions or EntireOrganization by using Organizations. For more information, see [Setting up Systems Manager Explorer to display data from multiple accounts and Regions](https://docs.aws.amazon.com/systems-manager/latest/userguide/Explorer-resource-data-sync.html) in the Amazon Web Services Systems Manager User Guide. A resource data sync is an asynchronous operation that returns immediately. After a successful initial sync is completed, the system continuously syncs data. To check the status of a sync, use the [ListResourceDataSync]. By default, data isn't encrypted in Amazon S3. We strongly recommend that you enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you secure access to the Amazon S3 bucket by creating a restrictive bucket policy. /// /// - Parameter CreateResourceDataSyncInput : [no documentation found] /// @@ -1217,7 +1217,7 @@ extension SSMClient { /// __Possible Exceptions:__ /// - `InternalServerError` : An error occurred on the server side. /// - `InvalidActivation` : The activation isn't valid. The activation might have been deleted, or the ActivationId and the ActivationCode don't match. - /// - `InvalidActivationId` : The activation ID isn't valid. Verify the you entered the correct ActivationId or ActivationCode and try again. + /// - `InvalidActivationId` : The activation ID isn't valid. Verify that you entered the correct ActivationId or ActivationCode and try again. /// - `TooManyUpdates` : There are concurrent updates for a resource that supports one update at a time. public func deleteActivation(input: DeleteActivationInput) async throws -> DeleteActivationOutput { let context = Smithy.ContextBuilder() @@ -2396,7 +2396,7 @@ extension SSMClient { /// /// __Possible Exceptions:__ /// - `InternalServerError` : An error occurred on the server side. - /// - `InvalidFilter` : The filter name isn't valid. Verify the you entered the correct name and try again. + /// - `InvalidFilter` : The filter name isn't valid. Verify that you entered the correct name and try again. /// - `InvalidNextToken` : The specified token isn't valid. public func describeActivations(input: DescribeActivationsInput) async throws -> DescribeActivationsOutput { let context = Smithy.ContextBuilder() @@ -3444,7 +3444,7 @@ extension SSMClient { /// /// __Possible Exceptions:__ /// - `InternalServerError` : An error occurred on the server side. - /// - `InvalidFilter` : The filter name isn't valid. Verify the you entered the correct name and try again. + /// - `InvalidFilter` : The filter name isn't valid. Verify that you entered the correct name and try again. /// - `InvalidNextToken` : The specified token isn't valid. public func describeInstancePatchStatesForPatchGroup(input: DescribeInstancePatchStatesForPatchGroupInput) async throws -> DescribeInstancePatchStatesForPatchGroupOutput { let context = Smithy.ContextBuilder() @@ -3516,7 +3516,7 @@ extension SSMClient { /// /// __Possible Exceptions:__ /// - `InternalServerError` : An error occurred on the server side. - /// - `InvalidFilter` : The filter name isn't valid. Verify the you entered the correct name and try again. + /// - `InvalidFilter` : The filter name isn't valid. Verify that you entered the correct name and try again. /// - `InvalidInstanceId` : The following problems can cause this exception: /// /// * You don't have permission to access the managed node. @@ -3597,7 +3597,7 @@ extension SSMClient { /// /// __Possible Exceptions:__ /// - `InternalServerError` : An error occurred on the server side. - /// - `InvalidActivationId` : The activation ID isn't valid. Verify the you entered the correct ActivationId or ActivationCode and try again. + /// - `InvalidActivationId` : The activation ID isn't valid. Verify that you entered the correct ActivationId or ActivationCode and try again. /// - `InvalidDocument` : The specified SSM document doesn't exist. /// - `InvalidFilterKey` : The specified key isn't valid. /// - `InvalidInstanceId` : The following problems can cause this exception: @@ -5387,6 +5387,77 @@ extension SSMClient { return try await op.execute(input: input) } + /// Performs the `GetExecutionPreview` operation on the `AmazonSSM` service. + /// + /// Initiates the process of retrieving an existing preview that shows the effects that running a specified Automation runbook would have on the targeted resources. + /// + /// - Parameter GetExecutionPreviewInput : [no documentation found] + /// + /// - Returns: `GetExecutionPreviewOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InternalServerError` : An error occurred on the server side. + /// - `ResourceNotFoundException` : The specified parameter to be shared could not be found. + public func getExecutionPreview(input: GetExecutionPreviewInput) async throws -> GetExecutionPreviewOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getExecutionPreview") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ssm") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetExecutionPreviewInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetExecutionPreviewOutput.httpOutput(from:), GetExecutionPreviewOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: SSMClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonSSM.GetExecutionPreview")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetExecutionPreviewInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "SSM") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetExecutionPreview") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `GetInventory` operation on the `AmazonSSM` service. /// /// Query inventory information. This includes managed node status, such as Stopped or Terminated. @@ -5399,8 +5470,8 @@ extension SSMClient { /// /// __Possible Exceptions:__ /// - `InternalServerError` : An error occurred on the server side. - /// - `InvalidAggregatorException` : The specified aggregator isn't valid for inventory groups. Verify that the aggregator uses a valid inventory type such as AWS:Application or AWS:InstanceInformation. - /// - `InvalidFilter` : The filter name isn't valid. Verify the you entered the correct name and try again. + /// - `InvalidAggregatorException` : The specified aggregator isn't valid for the group type. Verify that the aggregator you provided is supported. + /// - `InvalidFilter` : The filter name isn't valid. Verify that you entered the correct name and try again. /// - `InvalidInventoryGroupException` : The specified inventory group isn't valid. /// - `InvalidNextToken` : The specified token isn't valid. /// - `InvalidResultAttributeException` : The specified inventory item result attribute isn't valid. @@ -6046,8 +6117,8 @@ extension SSMClient { /// /// __Possible Exceptions:__ /// - `InternalServerError` : An error occurred on the server side. - /// - `InvalidAggregatorException` : The specified aggregator isn't valid for inventory groups. Verify that the aggregator uses a valid inventory type such as AWS:Application or AWS:InstanceInformation. - /// - `InvalidFilter` : The filter name isn't valid. Verify the you entered the correct name and try again. + /// - `InvalidAggregatorException` : The specified aggregator isn't valid for the group type. Verify that the aggregator you provided is supported. + /// - `InvalidFilter` : The filter name isn't valid. Verify that you entered the correct name and try again. /// - `InvalidNextToken` : The specified token isn't valid. /// - `InvalidTypeNameException` : The parameter type name isn't valid. /// - `ResourceDataSyncNotFoundException` : The specified sync name wasn't found. @@ -7095,7 +7166,7 @@ extension SSMClient { /// /// __Possible Exceptions:__ /// - `InternalServerError` : An error occurred on the server side. - /// - `InvalidFilter` : The filter name isn't valid. Verify the you entered the correct name and try again. + /// - `InvalidFilter` : The filter name isn't valid. Verify that you entered the correct name and try again. /// - `InvalidNextToken` : The specified token isn't valid. /// - `InvalidResourceId` : The resource ID isn't valid. Verify that you entered the correct ID and try again. /// - `InvalidResourceType` : The resource type isn't valid. For example, if you are attempting to tag an EC2 instance, the instance must be a registered managed node. @@ -7169,7 +7240,7 @@ extension SSMClient { /// /// __Possible Exceptions:__ /// - `InternalServerError` : An error occurred on the server side. - /// - `InvalidFilter` : The filter name isn't valid. Verify the you entered the correct name and try again. + /// - `InvalidFilter` : The filter name isn't valid. Verify that you entered the correct name and try again. /// - `InvalidNextToken` : The specified token isn't valid. public func listComplianceSummaries(input: ListComplianceSummariesInput) async throws -> ListComplianceSummariesOutput { let context = Smithy.ContextBuilder() @@ -7458,7 +7529,7 @@ extension SSMClient { /// /// __Possible Exceptions:__ /// - `InternalServerError` : An error occurred on the server side. - /// - `InvalidFilter` : The filter name isn't valid. Verify the you entered the correct name and try again. + /// - `InvalidFilter` : The filter name isn't valid. Verify that you entered the correct name and try again. /// - `InvalidInstanceId` : The following problems can cause this exception: /// /// * You don't have permission to access the managed node. @@ -7528,6 +7599,155 @@ extension SSMClient { return try await op.execute(input: input) } + /// Performs the `ListNodes` operation on the `AmazonSSM` service. + /// + /// Takes in filters and returns a list of managed nodes matching the filter criteria. + /// + /// - Parameter ListNodesInput : [no documentation found] + /// + /// - Returns: `ListNodesOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InternalServerError` : An error occurred on the server side. + /// - `InvalidFilter` : The filter name isn't valid. Verify that you entered the correct name and try again. + /// - `InvalidNextToken` : The specified token isn't valid. + /// - `ResourceDataSyncNotFoundException` : The specified sync name wasn't found. + /// - `UnsupportedOperationException` : This operation is not supported for the current account. You must first enable the Systems Manager integrated experience in your account. + public func listNodes(input: ListNodesInput) async throws -> ListNodesOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listNodes") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ssm") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListNodesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListNodesOutput.httpOutput(from:), ListNodesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: SSMClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonSSM.ListNodes")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListNodesInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "SSM") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListNodes") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListNodesSummary` operation on the `AmazonSSM` service. + /// + /// Generates a summary of managed instance/node metadata based on the filters and aggregators you specify. Results are grouped by the input aggregator you specify. + /// + /// - Parameter ListNodesSummaryInput : [no documentation found] + /// + /// - Returns: `ListNodesSummaryOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InternalServerError` : An error occurred on the server side. + /// - `InvalidAggregatorException` : The specified aggregator isn't valid for the group type. Verify that the aggregator you provided is supported. + /// - `InvalidFilter` : The filter name isn't valid. Verify that you entered the correct name and try again. + /// - `InvalidNextToken` : The specified token isn't valid. + /// - `ResourceDataSyncNotFoundException` : The specified sync name wasn't found. + /// - `UnsupportedOperationException` : This operation is not supported for the current account. You must first enable the Systems Manager integrated experience in your account. + public func listNodesSummary(input: ListNodesSummaryInput) async throws -> ListNodesSummaryOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listNodesSummary") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ssm") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListNodesSummaryInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListNodesSummaryOutput.httpOutput(from:), ListNodesSummaryOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: SSMClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonSSM.ListNodesSummary")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListNodesSummaryInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "SSM") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListNodesSummary") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListOpsItemEvents` operation on the `AmazonSSM` service. /// /// Returns a list of all OpsItem events in the current Amazon Web Services Region and Amazon Web Services account. You can limit the results to events associated with specific OpsItems by specifying a filter. @@ -7755,7 +7975,7 @@ extension SSMClient { /// /// __Possible Exceptions:__ /// - `InternalServerError` : An error occurred on the server side. - /// - `InvalidFilter` : The filter name isn't valid. Verify the you entered the correct name and try again. + /// - `InvalidFilter` : The filter name isn't valid. Verify that you entered the correct name and try again. /// - `InvalidNextToken` : The specified token isn't valid. public func listResourceComplianceSummaries(input: ListResourceComplianceSummariesInput) async throws -> ListResourceComplianceSummariesOutput { let context = Smithy.ContextBuilder() @@ -9287,6 +9507,77 @@ extension SSMClient { return try await op.execute(input: input) } + /// Performs the `StartExecutionPreview` operation on the `AmazonSSM` service. + /// + /// Initiates the process of creating a preview showing the effects that running a specified Automation runbook would have on the targeted resources. + /// + /// - Parameter StartExecutionPreviewInput : [no documentation found] + /// + /// - Returns: `StartExecutionPreviewOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InternalServerError` : An error occurred on the server side. + /// - `ValidationException` : The request isn't valid. Verify that you entered valid contents for the command and try again. + public func startExecutionPreview(input: StartExecutionPreviewInput) async throws -> StartExecutionPreviewOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "startExecutionPreview") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ssm") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(StartExecutionPreviewInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(StartExecutionPreviewOutput.httpOutput(from:), StartExecutionPreviewOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: SSMClient.version, config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonSSM.StartExecutionPreview")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: StartExecutionPreviewInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "SSM") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "StartExecutionPreview") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `StartSession` operation on the `AmazonSSM` service. /// /// Initiates a connection to a target (for example, a managed node) for a Session Manager session. Returns a URL and token that can be used to open a WebSocket connection for sending input and receiving outputs. Amazon Web Services CLI usage: start-session is an interactive command that requires the Session Manager plugin to be installed on the client machine making the call. For information, see [Install the Session Manager plugin for the Amazon Web Services CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) in the Amazon Web Services Systems Manager User Guide. Amazon Web Services Tools for PowerShell usage: Start-SSMSession isn't currently supported by Amazon Web Services Tools for PowerShell on Windows local machines. diff --git a/Sources/Services/AWSSSMContacts/Sources/AWSSSMContacts/SSMContactsClient.swift b/Sources/Services/AWSSSMContacts/Sources/AWSSSMContacts/SSMContactsClient.swift index 61b810aa2d2..4ac3e1dfd87 100644 --- a/Sources/Services/AWSSSMContacts/Sources/AWSSSMContacts/SSMContactsClient.swift +++ b/Sources/Services/AWSSSMContacts/Sources/AWSSSMContacts/SSMContactsClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SSMContactsClient: ClientRuntime.Client { public static let clientName = "SSMContactsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SSMContactsClient.SSMContactsClientConfiguration let serviceName = "SSM Contacts" diff --git a/Sources/Services/AWSSSMIncidents/Sources/AWSSSMIncidents/SSMIncidentsClient.swift b/Sources/Services/AWSSSMIncidents/Sources/AWSSSMIncidents/SSMIncidentsClient.swift index 086af611c5a..1f8d4512c59 100644 --- a/Sources/Services/AWSSSMIncidents/Sources/AWSSSMIncidents/SSMIncidentsClient.swift +++ b/Sources/Services/AWSSSMIncidents/Sources/AWSSSMIncidents/SSMIncidentsClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SSMIncidentsClient: ClientRuntime.Client { public static let clientName = "SSMIncidentsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SSMIncidentsClient.SSMIncidentsClientConfiguration let serviceName = "SSM Incidents" diff --git a/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/Models.swift b/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/Models.swift index b22c1482345..07dbbd772cb 100644 --- a/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/Models.swift +++ b/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/Models.swift @@ -761,7 +761,7 @@ extension SSMQuickSetupClientTypes { /// /// * RebootOption /// - /// * Description: (Optional) A boolean value that determines whether instances are rebooted after patches are installed. The default value is "false". + /// * Description: (Optional) Determines whether instances are rebooted after patches are installed. Valid values are RebootIfNeeded and NoReboot. /// /// /// @@ -1065,6 +1065,58 @@ extension SSMQuickSetupClientTypes { } } +extension SSMQuickSetupClientTypes { + + /// Details for a Quick Setup configuration. + public struct ConfigurationSummary: Swift.Sendable { + /// The ID of the Amazon Web Services account where the configuration was deployed. + public var account: Swift.String? + /// The ID of the configuration definition. + public var configurationDefinitionId: Swift.String? + /// The datetime stamp when the configuration was created. + public var createdAt: Foundation.Date? + /// The common parameters and values for the configuration definition. + public var firstClassParameters: [Swift.String: Swift.String]? + /// A service generated identifier for the configuration. + public var id: Swift.String? + /// The ARN of the configuration manager. + public var managerArn: Swift.String? + /// The Amazon Web Services Region where the configuration was deployed. + public var region: Swift.String? + /// A summary of the state of the configuration manager. This includes deployment statuses, association statuses, drift statuses, health checks, and more. + public var statusSummaries: [SSMQuickSetupClientTypes.StatusSummary]? + /// The type of the Quick Setup configuration. + public var type: Swift.String? + /// The version of the Quick Setup type used. + public var typeVersion: Swift.String? + + public init( + account: Swift.String? = nil, + configurationDefinitionId: Swift.String? = nil, + createdAt: Foundation.Date? = nil, + firstClassParameters: [Swift.String: Swift.String]? = nil, + id: Swift.String? = nil, + managerArn: Swift.String? = nil, + region: Swift.String? = nil, + statusSummaries: [SSMQuickSetupClientTypes.StatusSummary]? = nil, + type: Swift.String? = nil, + typeVersion: Swift.String? = nil + ) + { + self.account = account + self.configurationDefinitionId = configurationDefinitionId + self.createdAt = createdAt + self.firstClassParameters = firstClassParameters + self.id = id + self.managerArn = managerArn + self.region = region + self.statusSummaries = statusSummaries + self.type = type + self.typeVersion = typeVersion + } + } +} + /// Another request is being processed. Wait a few minutes and try again. public struct ConflictException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -1264,6 +1316,71 @@ extension SSMQuickSetupClientTypes { } } +public struct GetConfigurationInput: Swift.Sendable { + /// A service generated identifier for the configuration. + /// This member is required. + public var configurationId: Swift.String? + + public init( + configurationId: Swift.String? = nil + ) + { + self.configurationId = configurationId + } +} + +public struct GetConfigurationOutput: Swift.Sendable { + /// The ID of the Amazon Web Services account where the configuration was deployed. + public var account: Swift.String? + /// The ID of the configuration definition. + public var configurationDefinitionId: Swift.String? + /// The datetime stamp when the configuration manager was created. + public var createdAt: Foundation.Date? + /// A service generated identifier for the configuration. + public var id: Swift.String? + /// The datetime stamp when the configuration manager was last updated. + public var lastModifiedAt: Foundation.Date? + /// The ARN of the configuration manager. + public var managerArn: Swift.String? + /// The parameters for the configuration definition type. + public var parameters: [Swift.String: Swift.String]? + /// The Amazon Web Services Region where the configuration was deployed. + public var region: Swift.String? + /// A summary of the state of the configuration manager. This includes deployment statuses, association statuses, drift statuses, health checks, and more. + public var statusSummaries: [SSMQuickSetupClientTypes.StatusSummary]? + /// The type of the Quick Setup configuration. + public var type: Swift.String? + /// The version of the Quick Setup type used. + public var typeVersion: Swift.String? + + public init( + account: Swift.String? = nil, + configurationDefinitionId: Swift.String? = nil, + createdAt: Foundation.Date? = nil, + id: Swift.String? = nil, + lastModifiedAt: Foundation.Date? = nil, + managerArn: Swift.String? = nil, + parameters: [Swift.String: Swift.String]? = nil, + region: Swift.String? = nil, + statusSummaries: [SSMQuickSetupClientTypes.StatusSummary]? = nil, + type: Swift.String? = nil, + typeVersion: Swift.String? = nil + ) + { + self.account = account + self.configurationDefinitionId = configurationDefinitionId + self.createdAt = createdAt + self.id = id + self.lastModifiedAt = lastModifiedAt + self.managerArn = managerArn + self.parameters = parameters + self.region = region + self.statusSummaries = statusSummaries + self.type = type + self.typeVersion = typeVersion + } +} + public struct GetConfigurationManagerInput: Swift.Sendable { /// The ARN of the configuration manager. /// This member is required. @@ -1387,6 +1504,50 @@ public struct ListConfigurationManagersOutput: Swift.Sendable { } } +public struct ListConfigurationsInput: Swift.Sendable { + /// The ID of the configuration definition. + public var configurationDefinitionId: Swift.String? + /// Filters the results returned by the request. + public var filters: [SSMQuickSetupClientTypes.Filter]? + /// The ARN of the configuration manager. + public var managerArn: Swift.String? + /// Specifies the maximum number of configurations that are returned by the request. + public var maxItems: Swift.Int? + /// The token to use when requesting a specific set of items from a list. + public var startingToken: Swift.String? + + public init( + configurationDefinitionId: Swift.String? = nil, + filters: [SSMQuickSetupClientTypes.Filter]? = nil, + managerArn: Swift.String? = nil, + maxItems: Swift.Int? = nil, + startingToken: Swift.String? = nil + ) + { + self.configurationDefinitionId = configurationDefinitionId + self.filters = filters + self.managerArn = managerArn + self.maxItems = maxItems + self.startingToken = startingToken + } +} + +public struct ListConfigurationsOutput: Swift.Sendable { + /// An array of configurations. + public var configurationsList: [SSMQuickSetupClientTypes.ConfigurationSummary]? + /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. + public var nextToken: Swift.String? + + public init( + configurationsList: [SSMQuickSetupClientTypes.ConfigurationSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.configurationsList = configurationsList + self.nextToken = nextToken + } +} + extension SSMQuickSetupClientTypes { /// Information about the Quick Setup type. @@ -1600,6 +1761,16 @@ extension DeleteConfigurationManagerInput { } } +extension GetConfigurationInput { + + static func urlPathProvider(_ value: GetConfigurationInput) -> Swift.String? { + guard let configurationId = value.configurationId else { + return nil + } + return "/getConfiguration/\(configurationId.urlPercentEncoding())" + } +} + extension GetConfigurationManagerInput { static func urlPathProvider(_ value: GetConfigurationManagerInput) -> Swift.String? { @@ -1624,6 +1795,13 @@ extension ListConfigurationManagersInput { } } +extension ListConfigurationsInput { + + static func urlPathProvider(_ value: ListConfigurationsInput) -> Swift.String? { + return "/listConfigurations" + } +} + extension ListQuickSetupTypesInput { static func urlPathProvider(_ value: ListQuickSetupTypesInput) -> Swift.String? { @@ -1728,6 +1906,18 @@ extension ListConfigurationManagersInput { } } +extension ListConfigurationsInput { + + static func write(value: ListConfigurationsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ConfigurationDefinitionId"].write(value.configurationDefinitionId) + try writer["Filters"].writeList(value.filters, memberWritingClosure: SSMQuickSetupClientTypes.Filter.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["ManagerArn"].write(value.managerArn) + try writer["MaxItems"].write(value.maxItems) + try writer["StartingToken"].write(value.startingToken) + } +} + extension TagResourceInput { static func write(value: TagResourceInput?, to writer: SmithyJSON.Writer) throws { @@ -1783,6 +1973,28 @@ extension DeleteConfigurationManagerOutput { } } +extension GetConfigurationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetConfigurationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetConfigurationOutput() + value.account = try reader["Account"].readIfPresent() + value.configurationDefinitionId = try reader["ConfigurationDefinitionId"].readIfPresent() + value.createdAt = try reader["CreatedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.id = try reader["Id"].readIfPresent() + value.lastModifiedAt = try reader["LastModifiedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.managerArn = try reader["ManagerArn"].readIfPresent() + value.parameters = try reader["Parameters"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.region = try reader["Region"].readIfPresent() + value.statusSummaries = try reader["StatusSummaries"].readListIfPresent(memberReadingClosure: SSMQuickSetupClientTypes.StatusSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + value.type = try reader["Type"].readIfPresent() + value.typeVersion = try reader["TypeVersion"].readIfPresent() + return value + } +} + extension GetConfigurationManagerOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetConfigurationManagerOutput { @@ -1827,6 +2039,19 @@ extension ListConfigurationManagersOutput { } } +extension ListConfigurationsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListConfigurationsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListConfigurationsOutput() + value.configurationsList = try reader["ConfigurationsList"].readListIfPresent(memberReadingClosure: SSMQuickSetupClientTypes.ConfigurationSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["NextToken"].readIfPresent() + return value + } +} + extension ListQuickSetupTypesOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListQuickSetupTypesOutput { @@ -1923,6 +2148,25 @@ enum DeleteConfigurationManagerOutputError { } } +enum GetConfigurationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum GetConfigurationManagerOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -1977,6 +2221,24 @@ enum ListConfigurationManagersOutputError { } } +enum ListConfigurationsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListQuickSetupTypesOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -2251,6 +2513,25 @@ extension SSMQuickSetupClientTypes.ConfigurationDefinitionSummary { } } +extension SSMQuickSetupClientTypes.ConfigurationSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> SSMQuickSetupClientTypes.ConfigurationSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = SSMQuickSetupClientTypes.ConfigurationSummary() + value.id = try reader["Id"].readIfPresent() + value.managerArn = try reader["ManagerArn"].readIfPresent() + value.configurationDefinitionId = try reader["ConfigurationDefinitionId"].readIfPresent() + value.type = try reader["Type"].readIfPresent() + value.typeVersion = try reader["TypeVersion"].readIfPresent() + value.region = try reader["Region"].readIfPresent() + value.account = try reader["Account"].readIfPresent() + value.createdAt = try reader["CreatedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.firstClassParameters = try reader["FirstClassParameters"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.statusSummaries = try reader["StatusSummaries"].readListIfPresent(memberReadingClosure: SSMQuickSetupClientTypes.StatusSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension SSMQuickSetupClientTypes.QuickSetupTypeOutput { static func read(from reader: SmithyJSON.Reader) throws -> SSMQuickSetupClientTypes.QuickSetupTypeOutput { diff --git a/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/Paginators.swift b/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/Paginators.swift index 1f2911074ea..c34af1817e7 100644 --- a/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/Paginators.swift +++ b/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/Paginators.swift @@ -41,3 +41,36 @@ extension PaginatorSequence where OperationStackInput == ListConfigurationManage return try await self.asyncCompactMap { item in item.configurationManagersList } } } +extension SSMQuickSetupClient { + /// Paginate over `[ListConfigurationsOutput]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationsOutput` + public func listConfigurationsPaginated(input: ListConfigurationsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.startingToken, outputKey: \.nextToken, paginationFunction: self.listConfigurations(input:)) + } +} + +extension ListConfigurationsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListConfigurationsInput { + return ListConfigurationsInput( + configurationDefinitionId: self.configurationDefinitionId, + filters: self.filters, + managerArn: self.managerArn, + maxItems: self.maxItems, + startingToken: token + )} +} + +extension PaginatorSequence where OperationStackInput == ListConfigurationsInput, OperationStackOutput == ListConfigurationsOutput { + /// This paginator transforms the `AsyncSequence` returned by `listConfigurationsPaginated` + /// to access the nested member `[SSMQuickSetupClientTypes.ConfigurationSummary]` + /// - Returns: `[SSMQuickSetupClientTypes.ConfigurationSummary]` + public func configurationsList() async throws -> [SSMQuickSetupClientTypes.ConfigurationSummary] { + return try await self.asyncCompactMap { item in item.configurationsList } + } +} diff --git a/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/SSMQuickSetupClient.swift b/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/SSMQuickSetupClient.swift index 774c3c8a9cf..71b3b6885eb 100644 --- a/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/SSMQuickSetupClient.swift +++ b/Sources/Services/AWSSSMQuickSetup/Sources/AWSSSMQuickSetup/SSMQuickSetupClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SSMQuickSetupClient: ClientRuntime.Client { public static let clientName = "SSMQuickSetupClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SSMQuickSetupClient.SSMQuickSetupClientConfiguration let serviceName = "SSM QuickSetup" @@ -339,6 +339,77 @@ extension SSMQuickSetupClient { return try await op.execute(input: input) } + /// Performs the `GetConfiguration` operation on the `QuickSetup` service. + /// + /// Returns details about the specified configuration. + /// + /// - Parameter GetConfigurationInput : [no documentation found] + /// + /// - Returns: `GetConfigurationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : The requester has insufficient permissions to perform the operation. + /// - `ConflictException` : Another request is being processed. Wait a few minutes and try again. + /// - `InternalServerException` : An error occurred on the server side. + /// - `ResourceNotFoundException` : The resource couldn't be found. Check the ID or name and try again. + /// - `ThrottlingException` : The request or operation exceeds the maximum allowed request rate per Amazon Web Services account and Amazon Web Services Region. + /// - `ValidationException` : The request is invalid. Verify the values provided for the request parameters are accurate. + public func getConfiguration(input: GetConfigurationInput) async throws -> GetConfigurationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getConfiguration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ssm-quicksetup") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetConfigurationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetConfigurationOutput.httpOutput(from:), GetConfigurationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: SSMQuickSetupClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "SSMQuickSetup") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetConfiguration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `GetConfigurationManager` operation on the `QuickSetup` service. /// /// Returns a configuration manager. @@ -552,6 +623,79 @@ extension SSMQuickSetupClient { return try await op.execute(input: input) } + /// Performs the `ListConfigurations` operation on the `QuickSetup` service. + /// + /// Returns configurations deployed by Quick Setup in the requesting Amazon Web Services account and Amazon Web Services Region. + /// + /// - Parameter ListConfigurationsInput : [no documentation found] + /// + /// - Returns: `ListConfigurationsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : The requester has insufficient permissions to perform the operation. + /// - `InternalServerException` : An error occurred on the server side. + /// - `ResourceNotFoundException` : The resource couldn't be found. Check the ID or name and try again. + /// - `ThrottlingException` : The request or operation exceeds the maximum allowed request rate per Amazon Web Services account and Amazon Web Services Region. + /// - `ValidationException` : The request is invalid. Verify the values provided for the request parameters are accurate. + public func listConfigurations(input: ListConfigurationsInput) async throws -> ListConfigurationsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listConfigurations") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "ssm-quicksetup") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListConfigurationsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListConfigurationsInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListConfigurationsOutput.httpOutput(from:), ListConfigurationsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: SSMQuickSetupClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "SSMQuickSetup") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListConfigurations") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListQuickSetupTypes` operation on the `QuickSetup` service. /// /// Returns the available Quick Setup types. diff --git a/Sources/Services/AWSSSO/Sources/AWSSSO/SSOClient.swift b/Sources/Services/AWSSSO/Sources/AWSSSO/SSOClient.swift index 73031ffc868..3d71383409f 100644 --- a/Sources/Services/AWSSSO/Sources/AWSSSO/SSOClient.swift +++ b/Sources/Services/AWSSSO/Sources/AWSSSO/SSOClient.swift @@ -59,7 +59,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SSOClient: ClientRuntime.Client { public static let clientName = "SSOClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SSOClient.SSOClientConfiguration let serviceName = "SSO" diff --git a/Sources/Services/AWSSSOAdmin/Sources/AWSSSOAdmin/SSOAdminClient.swift b/Sources/Services/AWSSSOAdmin/Sources/AWSSSOAdmin/SSOAdminClient.swift index 518dad7f3e9..b5d506de37d 100644 --- a/Sources/Services/AWSSSOAdmin/Sources/AWSSSOAdmin/SSOAdminClient.swift +++ b/Sources/Services/AWSSSOAdmin/Sources/AWSSSOAdmin/SSOAdminClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SSOAdminClient: ClientRuntime.Client { public static let clientName = "SSOAdminClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SSOAdminClient.SSOAdminClientConfiguration let serviceName = "SSO Admin" diff --git a/Sources/Services/AWSSSOOIDC/Sources/AWSSSOOIDC/SSOOIDCClient.swift b/Sources/Services/AWSSSOOIDC/Sources/AWSSSOOIDC/SSOOIDCClient.swift index f08db4271d1..fcb03818f2e 100644 --- a/Sources/Services/AWSSSOOIDC/Sources/AWSSSOOIDC/SSOOIDCClient.swift +++ b/Sources/Services/AWSSSOOIDC/Sources/AWSSSOOIDC/SSOOIDCClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SSOOIDCClient: ClientRuntime.Client { public static let clientName = "SSOOIDCClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SSOOIDCClient.SSOOIDCClientConfiguration let serviceName = "SSO OIDC" diff --git a/Sources/Services/AWSSTS/Sources/AWSSTS/STSClient.swift b/Sources/Services/AWSSTS/Sources/AWSSTS/STSClient.swift index 020cd274991..c6d92662519 100644 --- a/Sources/Services/AWSSTS/Sources/AWSSTS/STSClient.swift +++ b/Sources/Services/AWSSTS/Sources/AWSSTS/STSClient.swift @@ -67,7 +67,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class STSClient: ClientRuntime.Client { public static let clientName = "STSClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: STSClient.STSClientConfiguration let serviceName = "STS" diff --git a/Sources/Services/AWSSWF/Sources/AWSSWF/SWFClient.swift b/Sources/Services/AWSSWF/Sources/AWSSWF/SWFClient.swift index e77cea1eb0c..89379ce8947 100644 --- a/Sources/Services/AWSSWF/Sources/AWSSWF/SWFClient.swift +++ b/Sources/Services/AWSSWF/Sources/AWSSWF/SWFClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SWFClient: ClientRuntime.Client { public static let clientName = "SWFClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SWFClient.SWFClientConfiguration let serviceName = "SWF" diff --git a/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/SageMakerClient.swift b/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/SageMakerClient.swift index 6aad11873b4..10cf23ce817 100644 --- a/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/SageMakerClient.swift +++ b/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/SageMakerClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SageMakerClient: ClientRuntime.Client { public static let clientName = "SageMakerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SageMakerClient.SageMakerClientConfiguration let serviceName = "SageMaker" diff --git a/Sources/Services/AWSSageMakerA2IRuntime/Sources/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClient.swift b/Sources/Services/AWSSageMakerA2IRuntime/Sources/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClient.swift index b3e30eca936..f4552d21f51 100644 --- a/Sources/Services/AWSSageMakerA2IRuntime/Sources/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClient.swift +++ b/Sources/Services/AWSSageMakerA2IRuntime/Sources/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SageMakerA2IRuntimeClient: ClientRuntime.Client { public static let clientName = "SageMakerA2IRuntimeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SageMakerA2IRuntimeClient.SageMakerA2IRuntimeClientConfiguration let serviceName = "SageMaker A2I Runtime" diff --git a/Sources/Services/AWSSageMakerFeatureStoreRuntime/Sources/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClient.swift b/Sources/Services/AWSSageMakerFeatureStoreRuntime/Sources/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClient.swift index 0e888439260..32d98bf23ab 100644 --- a/Sources/Services/AWSSageMakerFeatureStoreRuntime/Sources/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClient.swift +++ b/Sources/Services/AWSSageMakerFeatureStoreRuntime/Sources/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SageMakerFeatureStoreRuntimeClient: ClientRuntime.Client { public static let clientName = "SageMakerFeatureStoreRuntimeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SageMakerFeatureStoreRuntimeClient.SageMakerFeatureStoreRuntimeClientConfiguration let serviceName = "SageMaker FeatureStore Runtime" diff --git a/Sources/Services/AWSSageMakerGeospatial/Sources/AWSSageMakerGeospatial/SageMakerGeospatialClient.swift b/Sources/Services/AWSSageMakerGeospatial/Sources/AWSSageMakerGeospatial/SageMakerGeospatialClient.swift index e3873a9a178..458599805bd 100644 --- a/Sources/Services/AWSSageMakerGeospatial/Sources/AWSSageMakerGeospatial/SageMakerGeospatialClient.swift +++ b/Sources/Services/AWSSageMakerGeospatial/Sources/AWSSageMakerGeospatial/SageMakerGeospatialClient.swift @@ -66,7 +66,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SageMakerGeospatialClient: ClientRuntime.Client { public static let clientName = "SageMakerGeospatialClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SageMakerGeospatialClient.SageMakerGeospatialClientConfiguration let serviceName = "SageMaker Geospatial" diff --git a/Sources/Services/AWSSageMakerMetrics/Sources/AWSSageMakerMetrics/SageMakerMetricsClient.swift b/Sources/Services/AWSSageMakerMetrics/Sources/AWSSageMakerMetrics/SageMakerMetricsClient.swift index 8fa37dd7b4b..ac1be13b6bd 100644 --- a/Sources/Services/AWSSageMakerMetrics/Sources/AWSSageMakerMetrics/SageMakerMetricsClient.swift +++ b/Sources/Services/AWSSageMakerMetrics/Sources/AWSSageMakerMetrics/SageMakerMetricsClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SageMakerMetricsClient: ClientRuntime.Client { public static let clientName = "SageMakerMetricsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SageMakerMetricsClient.SageMakerMetricsClientConfiguration let serviceName = "SageMaker Metrics" diff --git a/Sources/Services/AWSSageMakerRuntime/Sources/AWSSageMakerRuntime/SageMakerRuntimeClient.swift b/Sources/Services/AWSSageMakerRuntime/Sources/AWSSageMakerRuntime/SageMakerRuntimeClient.swift index 70010de77f6..1a9781b8fea 100644 --- a/Sources/Services/AWSSageMakerRuntime/Sources/AWSSageMakerRuntime/SageMakerRuntimeClient.swift +++ b/Sources/Services/AWSSageMakerRuntime/Sources/AWSSageMakerRuntime/SageMakerRuntimeClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SageMakerRuntimeClient: ClientRuntime.Client { public static let clientName = "SageMakerRuntimeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SageMakerRuntimeClient.SageMakerRuntimeClientConfiguration let serviceName = "SageMaker Runtime" diff --git a/Sources/Services/AWSSagemakerEdge/Sources/AWSSagemakerEdge/SagemakerEdgeClient.swift b/Sources/Services/AWSSagemakerEdge/Sources/AWSSagemakerEdge/SagemakerEdgeClient.swift index b1cb4d3a0aa..4c6cfe9e635 100644 --- a/Sources/Services/AWSSagemakerEdge/Sources/AWSSagemakerEdge/SagemakerEdgeClient.swift +++ b/Sources/Services/AWSSagemakerEdge/Sources/AWSSagemakerEdge/SagemakerEdgeClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SagemakerEdgeClient: ClientRuntime.Client { public static let clientName = "SagemakerEdgeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SagemakerEdgeClient.SagemakerEdgeClientConfiguration let serviceName = "Sagemaker Edge" diff --git a/Sources/Services/AWSSavingsplans/Sources/AWSSavingsplans/SavingsplansClient.swift b/Sources/Services/AWSSavingsplans/Sources/AWSSavingsplans/SavingsplansClient.swift index f80092f92c8..5e3a899c045 100644 --- a/Sources/Services/AWSSavingsplans/Sources/AWSSavingsplans/SavingsplansClient.swift +++ b/Sources/Services/AWSSavingsplans/Sources/AWSSavingsplans/SavingsplansClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SavingsplansClient: ClientRuntime.Client { public static let clientName = "SavingsplansClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SavingsplansClient.SavingsplansClientConfiguration let serviceName = "savingsplans" diff --git a/Sources/Services/AWSScheduler/Sources/AWSScheduler/SchedulerClient.swift b/Sources/Services/AWSScheduler/Sources/AWSScheduler/SchedulerClient.swift index 1263d979ace..3bfa1c23232 100644 --- a/Sources/Services/AWSScheduler/Sources/AWSScheduler/SchedulerClient.swift +++ b/Sources/Services/AWSScheduler/Sources/AWSScheduler/SchedulerClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SchedulerClient: ClientRuntime.Client { public static let clientName = "SchedulerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SchedulerClient.SchedulerClientConfiguration let serviceName = "Scheduler" diff --git a/Sources/Services/AWSSchemas/Sources/AWSSchemas/SchemasClient.swift b/Sources/Services/AWSSchemas/Sources/AWSSchemas/SchemasClient.swift index ea97e2e5ad1..5378de1e3d7 100644 --- a/Sources/Services/AWSSchemas/Sources/AWSSchemas/SchemasClient.swift +++ b/Sources/Services/AWSSchemas/Sources/AWSSchemas/SchemasClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SchemasClient: ClientRuntime.Client { public static let clientName = "SchemasClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SchemasClient.SchemasClientConfiguration let serviceName = "schemas" diff --git a/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/SecretsManagerClient.swift b/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/SecretsManagerClient.swift index e25f7548e1e..6856731621f 100644 --- a/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/SecretsManagerClient.swift +++ b/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/SecretsManagerClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SecretsManagerClient: ClientRuntime.Client { public static let clientName = "SecretsManagerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SecretsManagerClient.SecretsManagerClientConfiguration let serviceName = "Secrets Manager" diff --git a/Sources/Services/AWSSecurityHub/Sources/AWSSecurityHub/SecurityHubClient.swift b/Sources/Services/AWSSecurityHub/Sources/AWSSecurityHub/SecurityHubClient.swift index c4c5579f072..c4b6a0f1c8f 100644 --- a/Sources/Services/AWSSecurityHub/Sources/AWSSecurityHub/SecurityHubClient.swift +++ b/Sources/Services/AWSSecurityHub/Sources/AWSSecurityHub/SecurityHubClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SecurityHubClient: ClientRuntime.Client { public static let clientName = "SecurityHubClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SecurityHubClient.SecurityHubClientConfiguration let serviceName = "SecurityHub" diff --git a/Sources/Services/AWSSecurityLake/Sources/AWSSecurityLake/SecurityLakeClient.swift b/Sources/Services/AWSSecurityLake/Sources/AWSSecurityLake/SecurityLakeClient.swift index 7f5c163b8e0..0d72c453f3e 100644 --- a/Sources/Services/AWSSecurityLake/Sources/AWSSecurityLake/SecurityLakeClient.swift +++ b/Sources/Services/AWSSecurityLake/Sources/AWSSecurityLake/SecurityLakeClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SecurityLakeClient: ClientRuntime.Client { public static let clientName = "SecurityLakeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SecurityLakeClient.SecurityLakeClientConfiguration let serviceName = "SecurityLake" diff --git a/Sources/Services/AWSServerlessApplicationRepository/Sources/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClient.swift b/Sources/Services/AWSServerlessApplicationRepository/Sources/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClient.swift index 52dac286139..118cd0120ce 100644 --- a/Sources/Services/AWSServerlessApplicationRepository/Sources/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClient.swift +++ b/Sources/Services/AWSServerlessApplicationRepository/Sources/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ServerlessApplicationRepositoryClient: ClientRuntime.Client { public static let clientName = "ServerlessApplicationRepositoryClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ServerlessApplicationRepositoryClient.ServerlessApplicationRepositoryClientConfiguration let serviceName = "ServerlessApplicationRepository" diff --git a/Sources/Services/AWSServiceCatalog/Sources/AWSServiceCatalog/ServiceCatalogClient.swift b/Sources/Services/AWSServiceCatalog/Sources/AWSServiceCatalog/ServiceCatalogClient.swift index f17acfe5123..d273383e904 100644 --- a/Sources/Services/AWSServiceCatalog/Sources/AWSServiceCatalog/ServiceCatalogClient.swift +++ b/Sources/Services/AWSServiceCatalog/Sources/AWSServiceCatalog/ServiceCatalogClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ServiceCatalogClient: ClientRuntime.Client { public static let clientName = "ServiceCatalogClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ServiceCatalogClient.ServiceCatalogClientConfiguration let serviceName = "Service Catalog" diff --git a/Sources/Services/AWSServiceCatalogAppRegistry/Sources/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClient.swift b/Sources/Services/AWSServiceCatalogAppRegistry/Sources/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClient.swift index b39447f1555..a94cd51b4f3 100644 --- a/Sources/Services/AWSServiceCatalogAppRegistry/Sources/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClient.swift +++ b/Sources/Services/AWSServiceCatalogAppRegistry/Sources/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ServiceCatalogAppRegistryClient: ClientRuntime.Client { public static let clientName = "ServiceCatalogAppRegistryClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ServiceCatalogAppRegistryClient.ServiceCatalogAppRegistryClientConfiguration let serviceName = "Service Catalog AppRegistry" diff --git a/Sources/Services/AWSServiceDiscovery/Sources/AWSServiceDiscovery/ServiceDiscoveryClient.swift b/Sources/Services/AWSServiceDiscovery/Sources/AWSServiceDiscovery/ServiceDiscoveryClient.swift index 16803cc9d37..c70bcd9ba0d 100644 --- a/Sources/Services/AWSServiceDiscovery/Sources/AWSServiceDiscovery/ServiceDiscoveryClient.swift +++ b/Sources/Services/AWSServiceDiscovery/Sources/AWSServiceDiscovery/ServiceDiscoveryClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ServiceDiscoveryClient: ClientRuntime.Client { public static let clientName = "ServiceDiscoveryClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ServiceDiscoveryClient.ServiceDiscoveryClientConfiguration let serviceName = "ServiceDiscovery" diff --git a/Sources/Services/AWSServiceQuotas/Sources/AWSServiceQuotas/ServiceQuotasClient.swift b/Sources/Services/AWSServiceQuotas/Sources/AWSServiceQuotas/ServiceQuotasClient.swift index 561e14944e7..137f944c366 100644 --- a/Sources/Services/AWSServiceQuotas/Sources/AWSServiceQuotas/ServiceQuotasClient.swift +++ b/Sources/Services/AWSServiceQuotas/Sources/AWSServiceQuotas/ServiceQuotasClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ServiceQuotasClient: ClientRuntime.Client { public static let clientName = "ServiceQuotasClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ServiceQuotasClient.ServiceQuotasClientConfiguration let serviceName = "Service Quotas" diff --git a/Sources/Services/AWSShield/Sources/AWSShield/ShieldClient.swift b/Sources/Services/AWSShield/Sources/AWSShield/ShieldClient.swift index 3190219dd57..d1767f6b197 100644 --- a/Sources/Services/AWSShield/Sources/AWSShield/ShieldClient.swift +++ b/Sources/Services/AWSShield/Sources/AWSShield/ShieldClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class ShieldClient: ClientRuntime.Client { public static let clientName = "ShieldClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: ShieldClient.ShieldClientConfiguration let serviceName = "Shield" diff --git a/Sources/Services/AWSSigner/Sources/AWSSigner/SignerClient.swift b/Sources/Services/AWSSigner/Sources/AWSSigner/SignerClient.swift index 491ee16d141..5e0a2674f8f 100644 --- a/Sources/Services/AWSSigner/Sources/AWSSigner/SignerClient.swift +++ b/Sources/Services/AWSSigner/Sources/AWSSigner/SignerClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SignerClient: ClientRuntime.Client { public static let clientName = "SignerClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SignerClient.SignerClientConfiguration let serviceName = "signer" diff --git a/Sources/Services/AWSSimSpaceWeaver/Sources/AWSSimSpaceWeaver/SimSpaceWeaverClient.swift b/Sources/Services/AWSSimSpaceWeaver/Sources/AWSSimSpaceWeaver/SimSpaceWeaverClient.swift index b06942841bc..1a23400c98b 100644 --- a/Sources/Services/AWSSimSpaceWeaver/Sources/AWSSimSpaceWeaver/SimSpaceWeaverClient.swift +++ b/Sources/Services/AWSSimSpaceWeaver/Sources/AWSSimSpaceWeaver/SimSpaceWeaverClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SimSpaceWeaverClient: ClientRuntime.Client { public static let clientName = "SimSpaceWeaverClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SimSpaceWeaverClient.SimSpaceWeaverClientConfiguration let serviceName = "SimSpaceWeaver" diff --git a/Sources/Services/AWSSnowDeviceManagement/Sources/AWSSnowDeviceManagement/SnowDeviceManagementClient.swift b/Sources/Services/AWSSnowDeviceManagement/Sources/AWSSnowDeviceManagement/SnowDeviceManagementClient.swift index bf49f085226..4377832bf66 100644 --- a/Sources/Services/AWSSnowDeviceManagement/Sources/AWSSnowDeviceManagement/SnowDeviceManagementClient.swift +++ b/Sources/Services/AWSSnowDeviceManagement/Sources/AWSSnowDeviceManagement/SnowDeviceManagementClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SnowDeviceManagementClient: ClientRuntime.Client { public static let clientName = "SnowDeviceManagementClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SnowDeviceManagementClient.SnowDeviceManagementClientConfiguration let serviceName = "Snow Device Management" diff --git a/Sources/Services/AWSSnowball/Sources/AWSSnowball/SnowballClient.swift b/Sources/Services/AWSSnowball/Sources/AWSSnowball/SnowballClient.swift index 5785f80e829..143ccdd5f98 100644 --- a/Sources/Services/AWSSnowball/Sources/AWSSnowball/SnowballClient.swift +++ b/Sources/Services/AWSSnowball/Sources/AWSSnowball/SnowballClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SnowballClient: ClientRuntime.Client { public static let clientName = "SnowballClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SnowballClient.SnowballClientConfiguration let serviceName = "Snowball" diff --git a/Sources/Services/AWSSocialMessaging/Sources/AWSSocialMessaging/SocialMessagingClient.swift b/Sources/Services/AWSSocialMessaging/Sources/AWSSocialMessaging/SocialMessagingClient.swift index b2506a8f7a5..5d15c61596c 100644 --- a/Sources/Services/AWSSocialMessaging/Sources/AWSSocialMessaging/SocialMessagingClient.swift +++ b/Sources/Services/AWSSocialMessaging/Sources/AWSSocialMessaging/SocialMessagingClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SocialMessagingClient: ClientRuntime.Client { public static let clientName = "SocialMessagingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SocialMessagingClient.SocialMessagingClientConfiguration let serviceName = "SocialMessaging" diff --git a/Sources/Services/AWSSsmSap/Sources/AWSSsmSap/SsmSapClient.swift b/Sources/Services/AWSSsmSap/Sources/AWSSsmSap/SsmSapClient.swift index a8c44f19bde..388d038374f 100644 --- a/Sources/Services/AWSSsmSap/Sources/AWSSsmSap/SsmSapClient.swift +++ b/Sources/Services/AWSSsmSap/Sources/AWSSsmSap/SsmSapClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SsmSapClient: ClientRuntime.Client { public static let clientName = "SsmSapClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SsmSapClient.SsmSapClientConfiguration let serviceName = "Ssm Sap" diff --git a/Sources/Services/AWSStorageGateway/Sources/AWSStorageGateway/StorageGatewayClient.swift b/Sources/Services/AWSStorageGateway/Sources/AWSStorageGateway/StorageGatewayClient.swift index 8e963f45c9f..64ca4cb2d97 100644 --- a/Sources/Services/AWSStorageGateway/Sources/AWSStorageGateway/StorageGatewayClient.swift +++ b/Sources/Services/AWSStorageGateway/Sources/AWSStorageGateway/StorageGatewayClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class StorageGatewayClient: ClientRuntime.Client { public static let clientName = "StorageGatewayClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: StorageGatewayClient.StorageGatewayClientConfiguration let serviceName = "Storage Gateway" diff --git a/Sources/Services/AWSSupplyChain/Sources/AWSSupplyChain/SupplyChainClient.swift b/Sources/Services/AWSSupplyChain/Sources/AWSSupplyChain/SupplyChainClient.swift index af1d0a83c00..c427387483d 100644 --- a/Sources/Services/AWSSupplyChain/Sources/AWSSupplyChain/SupplyChainClient.swift +++ b/Sources/Services/AWSSupplyChain/Sources/AWSSupplyChain/SupplyChainClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SupplyChainClient: ClientRuntime.Client { public static let clientName = "SupplyChainClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SupplyChainClient.SupplyChainClientConfiguration let serviceName = "SupplyChain" diff --git a/Sources/Services/AWSSupport/Sources/AWSSupport/SupportClient.swift b/Sources/Services/AWSSupport/Sources/AWSSupport/SupportClient.swift index 424333328c8..dbffa540cfd 100644 --- a/Sources/Services/AWSSupport/Sources/AWSSupport/SupportClient.swift +++ b/Sources/Services/AWSSupport/Sources/AWSSupport/SupportClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SupportClient: ClientRuntime.Client { public static let clientName = "SupportClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SupportClient.SupportClientConfiguration let serviceName = "Support" diff --git a/Sources/Services/AWSSupportApp/Sources/AWSSupportApp/SupportAppClient.swift b/Sources/Services/AWSSupportApp/Sources/AWSSupportApp/SupportAppClient.swift index 3b6e25a0885..d01b21fa625 100644 --- a/Sources/Services/AWSSupportApp/Sources/AWSSupportApp/SupportAppClient.swift +++ b/Sources/Services/AWSSupportApp/Sources/AWSSupportApp/SupportAppClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SupportAppClient: ClientRuntime.Client { public static let clientName = "SupportAppClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SupportAppClient.SupportAppClientConfiguration let serviceName = "Support App" diff --git a/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/SyntheticsClient.swift b/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/SyntheticsClient.swift index 4929ee13ded..3ec23721b2e 100644 --- a/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/SyntheticsClient.swift +++ b/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/SyntheticsClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class SyntheticsClient: ClientRuntime.Client { public static let clientName = "SyntheticsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: SyntheticsClient.SyntheticsClientConfiguration let serviceName = "synthetics" diff --git a/Sources/Services/AWSTaxSettings/Sources/AWSTaxSettings/TaxSettingsClient.swift b/Sources/Services/AWSTaxSettings/Sources/AWSTaxSettings/TaxSettingsClient.swift index 44a0d286ff5..06f243a9be3 100644 --- a/Sources/Services/AWSTaxSettings/Sources/AWSTaxSettings/TaxSettingsClient.swift +++ b/Sources/Services/AWSTaxSettings/Sources/AWSTaxSettings/TaxSettingsClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class TaxSettingsClient: ClientRuntime.Client { public static let clientName = "TaxSettingsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: TaxSettingsClient.TaxSettingsClientConfiguration let serviceName = "TaxSettings" diff --git a/Sources/Services/AWSTextract/Sources/AWSTextract/TextractClient.swift b/Sources/Services/AWSTextract/Sources/AWSTextract/TextractClient.swift index 4cc45334a2f..09b9c20d445 100644 --- a/Sources/Services/AWSTextract/Sources/AWSTextract/TextractClient.swift +++ b/Sources/Services/AWSTextract/Sources/AWSTextract/TextractClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class TextractClient: ClientRuntime.Client { public static let clientName = "TextractClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: TextractClient.TextractClientConfiguration let serviceName = "Textract" diff --git a/Sources/Services/AWSTimestreamInfluxDB/Sources/AWSTimestreamInfluxDB/TimestreamInfluxDBClient.swift b/Sources/Services/AWSTimestreamInfluxDB/Sources/AWSTimestreamInfluxDB/TimestreamInfluxDBClient.swift index 5596bec5b04..77ee968d084 100644 --- a/Sources/Services/AWSTimestreamInfluxDB/Sources/AWSTimestreamInfluxDB/TimestreamInfluxDBClient.swift +++ b/Sources/Services/AWSTimestreamInfluxDB/Sources/AWSTimestreamInfluxDB/TimestreamInfluxDBClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class TimestreamInfluxDBClient: ClientRuntime.Client { public static let clientName = "TimestreamInfluxDBClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: TimestreamInfluxDBClient.TimestreamInfluxDBClientConfiguration let serviceName = "Timestream InfluxDB" diff --git a/Sources/Services/AWSTimestreamQuery/Sources/AWSTimestreamQuery/TimestreamQueryClient.swift b/Sources/Services/AWSTimestreamQuery/Sources/AWSTimestreamQuery/TimestreamQueryClient.swift index dc8d7687059..e3ef7095993 100644 --- a/Sources/Services/AWSTimestreamQuery/Sources/AWSTimestreamQuery/TimestreamQueryClient.swift +++ b/Sources/Services/AWSTimestreamQuery/Sources/AWSTimestreamQuery/TimestreamQueryClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class TimestreamQueryClient: ClientRuntime.Client { public static let clientName = "TimestreamQueryClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: TimestreamQueryClient.TimestreamQueryClientConfiguration let serviceName = "Timestream Query" diff --git a/Sources/Services/AWSTimestreamWrite/Sources/AWSTimestreamWrite/TimestreamWriteClient.swift b/Sources/Services/AWSTimestreamWrite/Sources/AWSTimestreamWrite/TimestreamWriteClient.swift index cd053906e7e..57e11e1d347 100644 --- a/Sources/Services/AWSTimestreamWrite/Sources/AWSTimestreamWrite/TimestreamWriteClient.swift +++ b/Sources/Services/AWSTimestreamWrite/Sources/AWSTimestreamWrite/TimestreamWriteClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class TimestreamWriteClient: ClientRuntime.Client { public static let clientName = "TimestreamWriteClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: TimestreamWriteClient.TimestreamWriteClientConfiguration let serviceName = "Timestream Write" diff --git a/Sources/Services/AWSTnb/Sources/AWSTnb/TnbClient.swift b/Sources/Services/AWSTnb/Sources/AWSTnb/TnbClient.swift index 9d1e92554cb..49cf45ae5de 100644 --- a/Sources/Services/AWSTnb/Sources/AWSTnb/TnbClient.swift +++ b/Sources/Services/AWSTnb/Sources/AWSTnb/TnbClient.swift @@ -68,7 +68,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class TnbClient: ClientRuntime.Client { public static let clientName = "TnbClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: TnbClient.TnbClientConfiguration let serviceName = "tnb" diff --git a/Sources/Services/AWSTranscribe/Sources/AWSTranscribe/TranscribeClient.swift b/Sources/Services/AWSTranscribe/Sources/AWSTranscribe/TranscribeClient.swift index 1941abeb556..a2ce5d025aa 100644 --- a/Sources/Services/AWSTranscribe/Sources/AWSTranscribe/TranscribeClient.swift +++ b/Sources/Services/AWSTranscribe/Sources/AWSTranscribe/TranscribeClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class TranscribeClient: ClientRuntime.Client { public static let clientName = "TranscribeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: TranscribeClient.TranscribeClientConfiguration let serviceName = "Transcribe" diff --git a/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/TranscribeStreamingClient.swift b/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/TranscribeStreamingClient.swift index 1746f3103b5..b1495911d61 100644 --- a/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/TranscribeStreamingClient.swift +++ b/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/TranscribeStreamingClient.swift @@ -62,7 +62,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class TranscribeStreamingClient: ClientRuntime.Client { public static let clientName = "TranscribeStreamingClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: TranscribeStreamingClient.TranscribeStreamingClientConfiguration let serviceName = "Transcribe Streaming" diff --git a/Sources/Services/AWSTransfer/Sources/AWSTransfer/TransferClient.swift b/Sources/Services/AWSTransfer/Sources/AWSTransfer/TransferClient.swift index e9e3a8c30b3..642558fe97a 100644 --- a/Sources/Services/AWSTransfer/Sources/AWSTransfer/TransferClient.swift +++ b/Sources/Services/AWSTransfer/Sources/AWSTransfer/TransferClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class TransferClient: ClientRuntime.Client { public static let clientName = "TransferClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: TransferClient.TransferClientConfiguration let serviceName = "Transfer" diff --git a/Sources/Services/AWSTranslate/Sources/AWSTranslate/TranslateClient.swift b/Sources/Services/AWSTranslate/Sources/AWSTranslate/TranslateClient.swift index 9398e1208ca..fe27f3a147e 100644 --- a/Sources/Services/AWSTranslate/Sources/AWSTranslate/TranslateClient.swift +++ b/Sources/Services/AWSTranslate/Sources/AWSTranslate/TranslateClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class TranslateClient: ClientRuntime.Client { public static let clientName = "TranslateClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: TranslateClient.TranslateClientConfiguration let serviceName = "Translate" diff --git a/Sources/Services/AWSTrustedAdvisor/Sources/AWSTrustedAdvisor/TrustedAdvisorClient.swift b/Sources/Services/AWSTrustedAdvisor/Sources/AWSTrustedAdvisor/TrustedAdvisorClient.swift index 74232258f92..867d955d48c 100644 --- a/Sources/Services/AWSTrustedAdvisor/Sources/AWSTrustedAdvisor/TrustedAdvisorClient.swift +++ b/Sources/Services/AWSTrustedAdvisor/Sources/AWSTrustedAdvisor/TrustedAdvisorClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class TrustedAdvisorClient: ClientRuntime.Client { public static let clientName = "TrustedAdvisorClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: TrustedAdvisorClient.TrustedAdvisorClientConfiguration let serviceName = "TrustedAdvisor" diff --git a/Sources/Services/AWSVPCLattice/Sources/AWSVPCLattice/VPCLatticeClient.swift b/Sources/Services/AWSVPCLattice/Sources/AWSVPCLattice/VPCLatticeClient.swift index 2669ba41bd5..906d7e38dbc 100644 --- a/Sources/Services/AWSVPCLattice/Sources/AWSVPCLattice/VPCLatticeClient.swift +++ b/Sources/Services/AWSVPCLattice/Sources/AWSVPCLattice/VPCLatticeClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class VPCLatticeClient: ClientRuntime.Client { public static let clientName = "VPCLatticeClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: VPCLatticeClient.VPCLatticeClientConfiguration let serviceName = "VPC Lattice" diff --git a/Sources/Services/AWSVerifiedPermissions/Sources/AWSVerifiedPermissions/VerifiedPermissionsClient.swift b/Sources/Services/AWSVerifiedPermissions/Sources/AWSVerifiedPermissions/VerifiedPermissionsClient.swift index e4abeb2b65a..9f4b1c97c11 100644 --- a/Sources/Services/AWSVerifiedPermissions/Sources/AWSVerifiedPermissions/VerifiedPermissionsClient.swift +++ b/Sources/Services/AWSVerifiedPermissions/Sources/AWSVerifiedPermissions/VerifiedPermissionsClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class VerifiedPermissionsClient: ClientRuntime.Client { public static let clientName = "VerifiedPermissionsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: VerifiedPermissionsClient.VerifiedPermissionsClientConfiguration let serviceName = "VerifiedPermissions" diff --git a/Sources/Services/AWSVoiceID/Sources/AWSVoiceID/VoiceIDClient.swift b/Sources/Services/AWSVoiceID/Sources/AWSVoiceID/VoiceIDClient.swift index 3a44a7c4e01..1978a5fc268 100644 --- a/Sources/Services/AWSVoiceID/Sources/AWSVoiceID/VoiceIDClient.swift +++ b/Sources/Services/AWSVoiceID/Sources/AWSVoiceID/VoiceIDClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class VoiceIDClient: ClientRuntime.Client { public static let clientName = "VoiceIDClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: VoiceIDClient.VoiceIDClientConfiguration let serviceName = "Voice ID" diff --git a/Sources/Services/AWSWAF/Sources/AWSWAF/WAFClient.swift b/Sources/Services/AWSWAF/Sources/AWSWAF/WAFClient.swift index 35b2b80f7c0..30e6b79fbaa 100644 --- a/Sources/Services/AWSWAF/Sources/AWSWAF/WAFClient.swift +++ b/Sources/Services/AWSWAF/Sources/AWSWAF/WAFClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class WAFClient: ClientRuntime.Client { public static let clientName = "WAFClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: WAFClient.WAFClientConfiguration let serviceName = "WAF" diff --git a/Sources/Services/AWSWAFRegional/Sources/AWSWAFRegional/WAFRegionalClient.swift b/Sources/Services/AWSWAFRegional/Sources/AWSWAFRegional/WAFRegionalClient.swift index ae820fdc2e7..d7a2d86ad53 100644 --- a/Sources/Services/AWSWAFRegional/Sources/AWSWAFRegional/WAFRegionalClient.swift +++ b/Sources/Services/AWSWAFRegional/Sources/AWSWAFRegional/WAFRegionalClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class WAFRegionalClient: ClientRuntime.Client { public static let clientName = "WAFRegionalClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: WAFRegionalClient.WAFRegionalClientConfiguration let serviceName = "WAF Regional" diff --git a/Sources/Services/AWSWAFV2/Sources/AWSWAFV2/WAFV2Client.swift b/Sources/Services/AWSWAFV2/Sources/AWSWAFV2/WAFV2Client.swift index dd0b280deec..d443acbb09e 100644 --- a/Sources/Services/AWSWAFV2/Sources/AWSWAFV2/WAFV2Client.swift +++ b/Sources/Services/AWSWAFV2/Sources/AWSWAFV2/WAFV2Client.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class WAFV2Client: ClientRuntime.Client { public static let clientName = "WAFV2Client" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: WAFV2Client.WAFV2ClientConfiguration let serviceName = "WAFV2" diff --git a/Sources/Services/AWSWellArchitected/Sources/AWSWellArchitected/WellArchitectedClient.swift b/Sources/Services/AWSWellArchitected/Sources/AWSWellArchitected/WellArchitectedClient.swift index 081c4bee33e..89a0d322e7e 100644 --- a/Sources/Services/AWSWellArchitected/Sources/AWSWellArchitected/WellArchitectedClient.swift +++ b/Sources/Services/AWSWellArchitected/Sources/AWSWellArchitected/WellArchitectedClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class WellArchitectedClient: ClientRuntime.Client { public static let clientName = "WellArchitectedClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: WellArchitectedClient.WellArchitectedClientConfiguration let serviceName = "WellArchitected" diff --git a/Sources/Services/AWSWisdom/Sources/AWSWisdom/WisdomClient.swift b/Sources/Services/AWSWisdom/Sources/AWSWisdom/WisdomClient.swift index 63714ef5369..5d9b73ed195 100644 --- a/Sources/Services/AWSWisdom/Sources/AWSWisdom/WisdomClient.swift +++ b/Sources/Services/AWSWisdom/Sources/AWSWisdom/WisdomClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class WisdomClient: ClientRuntime.Client { public static let clientName = "WisdomClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: WisdomClient.WisdomClientConfiguration let serviceName = "Wisdom" diff --git a/Sources/Services/AWSWorkDocs/Sources/AWSWorkDocs/WorkDocsClient.swift b/Sources/Services/AWSWorkDocs/Sources/AWSWorkDocs/WorkDocsClient.swift index 08c71666a73..c2956986393 100644 --- a/Sources/Services/AWSWorkDocs/Sources/AWSWorkDocs/WorkDocsClient.swift +++ b/Sources/Services/AWSWorkDocs/Sources/AWSWorkDocs/WorkDocsClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class WorkDocsClient: ClientRuntime.Client { public static let clientName = "WorkDocsClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: WorkDocsClient.WorkDocsClientConfiguration let serviceName = "WorkDocs" diff --git a/Sources/Services/AWSWorkMail/Sources/AWSWorkMail/WorkMailClient.swift b/Sources/Services/AWSWorkMail/Sources/AWSWorkMail/WorkMailClient.swift index e9fea5d9499..e8c20f53e37 100644 --- a/Sources/Services/AWSWorkMail/Sources/AWSWorkMail/WorkMailClient.swift +++ b/Sources/Services/AWSWorkMail/Sources/AWSWorkMail/WorkMailClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class WorkMailClient: ClientRuntime.Client { public static let clientName = "WorkMailClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: WorkMailClient.WorkMailClientConfiguration let serviceName = "WorkMail" diff --git a/Sources/Services/AWSWorkMailMessageFlow/Sources/AWSWorkMailMessageFlow/WorkMailMessageFlowClient.swift b/Sources/Services/AWSWorkMailMessageFlow/Sources/AWSWorkMailMessageFlow/WorkMailMessageFlowClient.swift index 4223e4a7d4b..1c1e81f6090 100644 --- a/Sources/Services/AWSWorkMailMessageFlow/Sources/AWSWorkMailMessageFlow/WorkMailMessageFlowClient.swift +++ b/Sources/Services/AWSWorkMailMessageFlow/Sources/AWSWorkMailMessageFlow/WorkMailMessageFlowClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class WorkMailMessageFlowClient: ClientRuntime.Client { public static let clientName = "WorkMailMessageFlowClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: WorkMailMessageFlowClient.WorkMailMessageFlowClientConfiguration let serviceName = "WorkMailMessageFlow" diff --git a/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/WorkSpacesClient.swift b/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/WorkSpacesClient.swift index 769da9434ce..b8f3957da95 100644 --- a/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/WorkSpacesClient.swift +++ b/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/WorkSpacesClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class WorkSpacesClient: ClientRuntime.Client { public static let clientName = "WorkSpacesClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: WorkSpacesClient.WorkSpacesClientConfiguration let serviceName = "WorkSpaces" diff --git a/Sources/Services/AWSWorkSpacesThinClient/Sources/AWSWorkSpacesThinClient/WorkSpacesThinClientClient.swift b/Sources/Services/AWSWorkSpacesThinClient/Sources/AWSWorkSpacesThinClient/WorkSpacesThinClientClient.swift index ee8eda78399..d952f8d251d 100644 --- a/Sources/Services/AWSWorkSpacesThinClient/Sources/AWSWorkSpacesThinClient/WorkSpacesThinClientClient.swift +++ b/Sources/Services/AWSWorkSpacesThinClient/Sources/AWSWorkSpacesThinClient/WorkSpacesThinClientClient.swift @@ -64,7 +64,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class WorkSpacesThinClientClient: ClientRuntime.Client { public static let clientName = "WorkSpacesThinClientClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: WorkSpacesThinClientClient.WorkSpacesThinClientClientConfiguration let serviceName = "WorkSpaces Thin Client" diff --git a/Sources/Services/AWSWorkSpacesWeb/Sources/AWSWorkSpacesWeb/WorkSpacesWebClient.swift b/Sources/Services/AWSWorkSpacesWeb/Sources/AWSWorkSpacesWeb/WorkSpacesWebClient.swift index 6a034f0cd9d..6745ae75e5d 100644 --- a/Sources/Services/AWSWorkSpacesWeb/Sources/AWSWorkSpacesWeb/WorkSpacesWebClient.swift +++ b/Sources/Services/AWSWorkSpacesWeb/Sources/AWSWorkSpacesWeb/WorkSpacesWebClient.swift @@ -65,7 +65,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class WorkSpacesWebClient: ClientRuntime.Client { public static let clientName = "WorkSpacesWebClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: WorkSpacesWebClient.WorkSpacesWebClientConfiguration let serviceName = "WorkSpaces Web" diff --git a/Sources/Services/AWSXRay/Sources/AWSXRay/Models.swift b/Sources/Services/AWSXRay/Sources/AWSXRay/Models.swift index c06b6fd8a43..3686beb6057 100644 --- a/Sources/Services/AWSXRay/Sources/AWSXRay/Models.swift +++ b/Sources/Services/AWSXRay/Sources/AWSXRay/Models.swift @@ -213,7 +213,7 @@ public struct BatchGetTracesInput: Swift.Sendable { extension XRayClientTypes { - /// A segment from a trace that has been ingested by the X-Ray service. The segment can be compiled from documents uploaded with [PutTraceSegments](https://docs.aws.amazon.com/xray/latest/api/API_PutTraceSegments.html), or an inferred segment for a downstream service, generated from a subsegment sent by the service that called it. For the full segment document schema, see [Amazon Web Services X-Ray Segment Documents](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html) in the Amazon Web Services X-Ray Developer Guide. + /// A segment from a trace that has been ingested by the X-Ray service. The segment can be compiled from documents uploaded with [PutTraceSegments](https://docs.aws.amazon.com/xray/latest/api/API_PutTraceSegments.html), or an inferred segment for a downstream service, generated from a subsegment sent by the service that called it. For the full segment document schema, see [Amazon Web Services X-Ray segment documents](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-api.html#xray-api-segmentdocuments) in the Amazon Web Services X-Ray Developer Guide. public struct Segment: Swift.Sendable { /// The segment document. public var document: Swift.String? @@ -279,6 +279,51 @@ public struct BatchGetTracesOutput: Swift.Sendable { } } +/// The resource was not found. Verify that the name or Amazon Resource Name (ARN) of the resource is correct. +public struct ResourceNotFoundException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + public internal(set) var message: Swift.String? = nil + public internal(set) var resourceName: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ResourceNotFoundException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil, + resourceName: Swift.String? = nil + ) + { + self.properties.message = message + self.properties.resourceName = resourceName + } +} + +public struct CancelTraceRetrievalInput: Swift.Sendable { + /// Retrieval token. + /// This member is required. + public var retrievalToken: Swift.String? + + public init( + retrievalToken: Swift.String? = nil + ) + { + self.retrievalToken = retrievalToken + } +} + +public struct CancelTraceRetrievalOutput: Swift.Sendable { + + public init() { } +} + extension XRayClientTypes { /// The structure containing configurations related to insights. @@ -857,6 +902,89 @@ public struct GetGroupsOutput: Swift.Sendable { } } +public struct GetIndexingRulesInput: Swift.Sendable { + /// Specify the pagination token returned by a previous request to retrieve the next page of indexes. + public var nextToken: Swift.String? + + public init( + nextToken: Swift.String? = nil + ) + { + self.nextToken = nextToken + } +} + +extension XRayClientTypes { + + /// The indexing rule configuration for probabilistic sampling. + public struct ProbabilisticRuleValue: Swift.Sendable { + /// Applied sampling percentage of traceIds. + public var actualSamplingPercentage: Swift.Double? + /// Configured sampling percentage of traceIds. Note that sampling can be subject to limits to ensure completeness of data. + /// This member is required. + public var desiredSamplingPercentage: Swift.Double? + + public init( + actualSamplingPercentage: Swift.Double? = nil, + desiredSamplingPercentage: Swift.Double? = nil + ) + { + self.actualSamplingPercentage = actualSamplingPercentage + self.desiredSamplingPercentage = desiredSamplingPercentage + } + } +} + +extension XRayClientTypes { + + /// The indexing rule configuration. + public enum IndexingRuleValue: Swift.Sendable { + /// Indexing rule configuration that is used to probabilistically sample traceIds. + case probabilistic(XRayClientTypes.ProbabilisticRuleValue) + case sdkUnknown(Swift.String) + } +} + +extension XRayClientTypes { + + /// Rule used to determine the server-side sampling rate for spans ingested through the CloudWatchLogs destination and indexed by X-Ray. + public struct IndexingRule: Swift.Sendable { + /// Displays when the rule was last modified, in Unix time seconds. + public var modifiedAt: Foundation.Date? + /// The name of the indexing rule. + public var name: Swift.String? + /// The indexing rule. + public var rule: XRayClientTypes.IndexingRuleValue? + + public init( + modifiedAt: Foundation.Date? = nil, + name: Swift.String? = nil, + rule: XRayClientTypes.IndexingRuleValue? = nil + ) + { + self.modifiedAt = modifiedAt + self.name = name + self.rule = rule + } + } +} + +public struct GetIndexingRulesOutput: Swift.Sendable { + /// Retrieves all indexing rules. + public var indexingRules: [XRayClientTypes.IndexingRule]? + /// Specify the pagination token returned by a previous request to retrieve the next page of indexes. + public var nextToken: Swift.String? + + public init( + indexingRules: [XRayClientTypes.IndexingRule]? = nil, + nextToken: Swift.String? = nil + ) + { + self.indexingRules = indexingRules + self.nextToken = nextToken + } +} + public struct GetInsightInput: Swift.Sendable { /// The insight's unique identifier. Use the GetInsightSummaries action to retrieve an InsightId. /// This member is required. @@ -1331,315 +1459,149 @@ public struct GetInsightSummariesOutput: Swift.Sendable { } } -public struct GetSamplingRulesInput: Swift.Sendable { - /// Pagination token. +public struct GetRetrievedTracesGraphInput: Swift.Sendable { + /// Specify the pagination token returned by a previous request to retrieve the next page of indexes. public var nextToken: Swift.String? + /// Retrieval token. + /// This member is required. + public var retrievalToken: Swift.String? public init( - nextToken: Swift.String? = nil + nextToken: Swift.String? = nil, + retrievalToken: Swift.String? = nil ) { self.nextToken = nextToken + self.retrievalToken = retrievalToken } } -public struct GetSamplingRulesOutput: Swift.Sendable { - /// Pagination token. - public var nextToken: Swift.String? - /// Rule definitions and metadata. - public var samplingRuleRecords: [XRayClientTypes.SamplingRuleRecord]? +extension XRayClientTypes { - public init( - nextToken: Swift.String? = nil, - samplingRuleRecords: [XRayClientTypes.SamplingRuleRecord]? = nil - ) - { - self.nextToken = nextToken - self.samplingRuleRecords = samplingRuleRecords - } -} + public enum RetrievalStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case cancelled + case complete + case failed + case running + case scheduled + case timeout + case sdkUnknown(Swift.String) -public struct GetSamplingStatisticSummariesInput: Swift.Sendable { - /// Pagination token. - public var nextToken: Swift.String? + public static var allCases: [RetrievalStatus] { + return [ + .cancelled, + .complete, + .failed, + .running, + .scheduled, + .timeout + ] + } - public init( - nextToken: Swift.String? = nil - ) - { - self.nextToken = nextToken + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .cancelled: return "CANCELLED" + case .complete: return "COMPLETE" + case .failed: return "FAILED" + case .running: return "RUNNING" + case .scheduled: return "SCHEDULED" + case .timeout: return "TIMEOUT" + case let .sdkUnknown(s): return s + } + } } } extension XRayClientTypes { - /// Aggregated request sampling data for a sampling rule across all services for a 10-second window. - public struct SamplingStatisticSummary: Swift.Sendable { - /// The number of requests recorded with borrowed reservoir quota. - public var borrowCount: Swift.Int - /// The number of requests that matched the rule. - public var requestCount: Swift.Int - /// The name of the sampling rule. - public var ruleName: Swift.String? - /// The number of requests recorded. - public var sampledCount: Swift.Int - /// The start time of the reporting window. - public var timestamp: Foundation.Date? + /// The relation between two services. + public struct GraphLink: Swift.Sendable { + /// Destination traces of a link relationship. + public var destinationTraceIds: [Swift.String]? + /// Relationship of a trace to the corresponding service. + public var referenceType: Swift.String? + /// Source trace of a link relationship. + public var sourceTraceId: Swift.String? public init( - borrowCount: Swift.Int = 0, - requestCount: Swift.Int = 0, - ruleName: Swift.String? = nil, - sampledCount: Swift.Int = 0, - timestamp: Foundation.Date? = nil + destinationTraceIds: [Swift.String]? = nil, + referenceType: Swift.String? = nil, + sourceTraceId: Swift.String? = nil ) { - self.borrowCount = borrowCount - self.requestCount = requestCount - self.ruleName = ruleName - self.sampledCount = sampledCount - self.timestamp = timestamp + self.destinationTraceIds = destinationTraceIds + self.referenceType = referenceType + self.sourceTraceId = sourceTraceId } } } -public struct GetSamplingStatisticSummariesOutput: Swift.Sendable { - /// Pagination token. - public var nextToken: Swift.String? - /// Information about the number of requests instrumented for each sampling rule. - public var samplingStatisticSummaries: [XRayClientTypes.SamplingStatisticSummary]? +extension XRayClientTypes { - public init( - nextToken: Swift.String? = nil, - samplingStatisticSummaries: [XRayClientTypes.SamplingStatisticSummary]? = nil - ) - { - self.nextToken = nextToken - self.samplingStatisticSummaries = samplingStatisticSummaries + /// An entry in a histogram for a statistic. A histogram maps the range of observed values on the X axis, and the prevalence of each value on the Y axis. + public struct HistogramEntry: Swift.Sendable { + /// The prevalence of the entry. + public var count: Swift.Int + /// The value of the entry. + public var value: Swift.Double + + public init( + count: Swift.Int = 0, + value: Swift.Double = 0.0 + ) + { + self.count = count + self.value = value + } } } extension XRayClientTypes { - /// Request sampling results for a single rule from a service. Results are for the last 10 seconds unless the service has been assigned a longer reporting interval after a previous call to [GetSamplingTargets](https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html). - public struct SamplingStatisticsDocument: Swift.Sendable { - /// The number of requests recorded with borrowed reservoir quota. - public var borrowCount: Swift.Int - /// A unique identifier for the service in hexadecimal. - /// This member is required. - public var clientID: Swift.String? - /// The number of requests that matched the rule. - /// This member is required. - public var requestCount: Swift.Int - /// The name of the sampling rule. - /// This member is required. - public var ruleName: Swift.String? - /// The number of requests recorded. - /// This member is required. - public var sampledCount: Swift.Int - /// The current time. - /// This member is required. - public var timestamp: Foundation.Date? + /// Information about requests that failed with a 4xx Client Error status code. + public struct ErrorStatistics: Swift.Sendable { + /// The number of requests that failed with untracked 4xx Client Error status codes. + public var otherCount: Swift.Int? + /// The number of requests that failed with a 429 throttling status code. + public var throttleCount: Swift.Int? + /// The total number of requests that failed with a 4xx Client Error status code. + public var totalCount: Swift.Int? public init( - borrowCount: Swift.Int = 0, - clientID: Swift.String? = nil, - requestCount: Swift.Int = 0, - ruleName: Swift.String? = nil, - sampledCount: Swift.Int = 0, - timestamp: Foundation.Date? = nil + otherCount: Swift.Int? = nil, + throttleCount: Swift.Int? = nil, + totalCount: Swift.Int? = nil ) { - self.borrowCount = borrowCount - self.clientID = clientID - self.requestCount = requestCount - self.ruleName = ruleName - self.sampledCount = sampledCount - self.timestamp = timestamp + self.otherCount = otherCount + self.throttleCount = throttleCount + self.totalCount = totalCount } } } -public struct GetSamplingTargetsInput: Swift.Sendable { - /// Information about rules that the service is using to sample requests. - /// This member is required. - public var samplingStatisticsDocuments: [XRayClientTypes.SamplingStatisticsDocument]? +extension XRayClientTypes { - public init( - samplingStatisticsDocuments: [XRayClientTypes.SamplingStatisticsDocument]? = nil - ) - { - self.samplingStatisticsDocuments = samplingStatisticsDocuments - } -} - -extension XRayClientTypes { - - /// Temporary changes to a sampling rule configuration. To meet the global sampling target for a rule, X-Ray calculates a new reservoir for each service based on the recent sampling results of all services that called [GetSamplingTargets](https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html). - public struct SamplingTargetDocument: Swift.Sendable { - /// The percentage of matching requests to instrument, after the reservoir is exhausted. - public var fixedRate: Swift.Double - /// The number of seconds for the service to wait before getting sampling targets again. - public var interval: Swift.Int? - /// The number of requests per second that X-Ray allocated for this service. - public var reservoirQuota: Swift.Int? - /// When the reservoir quota expires. - public var reservoirQuotaTTL: Foundation.Date? - /// The name of the sampling rule. - public var ruleName: Swift.String? - - public init( - fixedRate: Swift.Double = 0.0, - interval: Swift.Int? = nil, - reservoirQuota: Swift.Int? = nil, - reservoirQuotaTTL: Foundation.Date? = nil, - ruleName: Swift.String? = nil - ) - { - self.fixedRate = fixedRate - self.interval = interval - self.reservoirQuota = reservoirQuota - self.reservoirQuotaTTL = reservoirQuotaTTL - self.ruleName = ruleName - } - } -} - -extension XRayClientTypes { - - /// Sampling statistics from a call to [GetSamplingTargets](https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html) that X-Ray could not process. - public struct UnprocessedStatistics: Swift.Sendable { - /// The error code. - public var errorCode: Swift.String? - /// The error message. - public var message: Swift.String? - /// The name of the sampling rule. - public var ruleName: Swift.String? - - public init( - errorCode: Swift.String? = nil, - message: Swift.String? = nil, - ruleName: Swift.String? = nil - ) - { - self.errorCode = errorCode - self.message = message - self.ruleName = ruleName - } - } -} - -public struct GetSamplingTargetsOutput: Swift.Sendable { - /// The last time a user changed the sampling rule configuration. If the sampling rule configuration changed since the service last retrieved it, the service should call [GetSamplingRules](https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingRules.html) to get the latest version. - public var lastRuleModification: Foundation.Date? - /// Updated rules that the service should use to sample requests. - public var samplingTargetDocuments: [XRayClientTypes.SamplingTargetDocument]? - /// Information about [SamplingStatisticsDocument](https://docs.aws.amazon.com/xray/latest/api/API_SamplingStatisticsDocument.html) that X-Ray could not process. - public var unprocessedStatistics: [XRayClientTypes.UnprocessedStatistics]? - - public init( - lastRuleModification: Foundation.Date? = nil, - samplingTargetDocuments: [XRayClientTypes.SamplingTargetDocument]? = nil, - unprocessedStatistics: [XRayClientTypes.UnprocessedStatistics]? = nil - ) - { - self.lastRuleModification = lastRuleModification - self.samplingTargetDocuments = samplingTargetDocuments - self.unprocessedStatistics = unprocessedStatistics - } -} - -public struct GetServiceGraphInput: Swift.Sendable { - /// The end of the timeframe for which to generate a graph. - /// This member is required. - public var endTime: Foundation.Date? - /// The Amazon Resource Name (ARN) of a group based on which you want to generate a graph. - public var groupARN: Swift.String? - /// The name of a group based on which you want to generate a graph. - public var groupName: Swift.String? - /// Pagination token. - public var nextToken: Swift.String? - /// The start of the time frame for which to generate a graph. - /// This member is required. - public var startTime: Foundation.Date? - - public init( - endTime: Foundation.Date? = nil, - groupARN: Swift.String? = nil, - groupName: Swift.String? = nil, - nextToken: Swift.String? = nil, - startTime: Foundation.Date? = nil - ) - { - self.endTime = endTime - self.groupARN = groupARN - self.groupName = groupName - self.nextToken = nextToken - self.startTime = startTime - } -} - -extension XRayClientTypes { - - /// An entry in a histogram for a statistic. A histogram maps the range of observed values on the X axis, and the prevalence of each value on the Y axis. - public struct HistogramEntry: Swift.Sendable { - /// The prevalence of the entry. - public var count: Swift.Int - /// The value of the entry. - public var value: Swift.Double - - public init( - count: Swift.Int = 0, - value: Swift.Double = 0.0 - ) - { - self.count = count - self.value = value - } - } -} - -extension XRayClientTypes { - - /// Information about requests that failed with a 4xx Client Error status code. - public struct ErrorStatistics: Swift.Sendable { - /// The number of requests that failed with untracked 4xx Client Error status codes. - public var otherCount: Swift.Int? - /// The number of requests that failed with a 419 throttling status code. - public var throttleCount: Swift.Int? - /// The total number of requests that failed with a 4xx Client Error status code. - public var totalCount: Swift.Int? - - public init( - otherCount: Swift.Int? = nil, - throttleCount: Swift.Int? = nil, - totalCount: Swift.Int? = nil - ) - { - self.otherCount = otherCount - self.throttleCount = throttleCount - self.totalCount = totalCount - } - } -} - -extension XRayClientTypes { - - /// Information about requests that failed with a 5xx Server Error status code. - public struct FaultStatistics: Swift.Sendable { - /// The number of requests that failed with untracked 5xx Server Error status codes. - public var otherCount: Swift.Int? - /// The total number of requests that failed with a 5xx Server Error status code. - public var totalCount: Swift.Int? - - public init( - otherCount: Swift.Int? = nil, - totalCount: Swift.Int? = nil - ) - { - self.otherCount = otherCount - self.totalCount = totalCount - } + /// Information about requests that failed with a 5xx Server Error status code. + public struct FaultStatistics: Swift.Sendable { + /// The number of requests that failed with untracked 5xx Server Error status codes. + public var otherCount: Swift.Int? + /// The total number of requests that failed with a 5xx Server Error status code. + public var totalCount: Swift.Int? + + public init( + otherCount: Swift.Int? = nil, + totalCount: Swift.Int? = nil + ) + { + self.otherCount = otherCount + self.totalCount = totalCount + } } } @@ -1721,105 +1683,393 @@ extension XRayClientTypes { extension XRayClientTypes { - /// Response statistics for a service. - public struct ServiceStatistics: Swift.Sendable { - /// Information about requests that failed with a 4xx Client Error status code. - public var errorStatistics: XRayClientTypes.ErrorStatistics? - /// Information about requests that failed with a 5xx Server Error status code. - public var faultStatistics: XRayClientTypes.FaultStatistics? - /// The number of requests that completed with a 2xx Success status code. - public var okCount: Swift.Int? - /// The total number of completed requests. - public var totalCount: Swift.Int? - /// The aggregate response time of completed requests. - public var totalResponseTime: Swift.Double? + /// Response statistics for a service. + public struct ServiceStatistics: Swift.Sendable { + /// Information about requests that failed with a 4xx Client Error status code. + public var errorStatistics: XRayClientTypes.ErrorStatistics? + /// Information about requests that failed with a 5xx Server Error status code. + public var faultStatistics: XRayClientTypes.FaultStatistics? + /// The number of requests that completed with a 2xx Success status code. + public var okCount: Swift.Int? + /// The total number of completed requests. + public var totalCount: Swift.Int? + /// The aggregate response time of completed requests. + public var totalResponseTime: Swift.Double? + + public init( + errorStatistics: XRayClientTypes.ErrorStatistics? = nil, + faultStatistics: XRayClientTypes.FaultStatistics? = nil, + okCount: Swift.Int? = nil, + totalCount: Swift.Int? = nil, + totalResponseTime: Swift.Double? = nil + ) + { + self.errorStatistics = errorStatistics + self.faultStatistics = faultStatistics + self.okCount = okCount + self.totalCount = totalCount + self.totalResponseTime = totalResponseTime + } + } +} + +extension XRayClientTypes { + + /// Information about an application that processed requests, users that made requests, or downstream services, resources, and applications that an application used. + public struct Service: Swift.Sendable { + /// Identifier of the Amazon Web Services account in which the service runs. + public var accountId: Swift.String? + /// A histogram that maps the spread of service durations. + public var durationHistogram: [XRayClientTypes.HistogramEntry]? + /// Connections to downstream services. + public var edges: [XRayClientTypes.Edge]? + /// The end time of the last segment that the service generated. + public var endTime: Foundation.Date? + /// The canonical name of the service. + public var name: Swift.String? + /// A list of names for the service, including the canonical name. + public var names: [Swift.String]? + /// Identifier for the service. Unique within the service map. + public var referenceId: Swift.Int? + /// A histogram that maps the spread of service response times. + public var responseTimeHistogram: [XRayClientTypes.HistogramEntry]? + /// Indicates that the service was the first service to process a request. + public var root: Swift.Bool? + /// The start time of the first segment that the service generated. + public var startTime: Foundation.Date? + /// The service's state. + public var state: Swift.String? + /// Aggregated statistics for the service. + public var summaryStatistics: XRayClientTypes.ServiceStatistics? + /// The type of service. + /// + /// * Amazon Web Services Resource - The type of an Amazon Web Services resource. For example, AWS::EC2::Instance for an application running on Amazon EC2 or AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used. + /// + /// * Amazon Web Services Service - The type of an Amazon Web Services service. For example, AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a specific table. + /// + /// * client - Represents the clients that sent requests to a root service. + /// + /// * remote - A downstream service of indeterminate type. + public var type: Swift.String? + + public init( + accountId: Swift.String? = nil, + durationHistogram: [XRayClientTypes.HistogramEntry]? = nil, + edges: [XRayClientTypes.Edge]? = nil, + endTime: Foundation.Date? = nil, + name: Swift.String? = nil, + names: [Swift.String]? = nil, + referenceId: Swift.Int? = nil, + responseTimeHistogram: [XRayClientTypes.HistogramEntry]? = nil, + root: Swift.Bool? = nil, + startTime: Foundation.Date? = nil, + state: Swift.String? = nil, + summaryStatistics: XRayClientTypes.ServiceStatistics? = nil, + type: Swift.String? = nil + ) + { + self.accountId = accountId + self.durationHistogram = durationHistogram + self.edges = edges + self.endTime = endTime + self.name = name + self.names = names + self.referenceId = referenceId + self.responseTimeHistogram = responseTimeHistogram + self.root = root + self.startTime = startTime + self.state = state + self.summaryStatistics = summaryStatistics + self.type = type + } + } +} + +extension XRayClientTypes { + + /// Retrieved information about an application that processed requests, users that made requests, or downstream services, resources, and applications that an application used. + public struct RetrievedService: Swift.Sendable { + /// Relation between two 2 services. + public var links: [XRayClientTypes.GraphLink]? + /// Information about an application that processed requests, users that made requests, or downstream services, resources, and applications that an application used. + public var service: XRayClientTypes.Service? + + public init( + links: [XRayClientTypes.GraphLink]? = nil, + service: XRayClientTypes.Service? = nil + ) + { + self.links = links + self.service = service + } + } +} + +public struct GetRetrievedTracesGraphOutput: Swift.Sendable { + /// Specify the pagination token returned by a previous request to retrieve the next page of indexes. + public var nextToken: Swift.String? + /// Status of the retrieval. + public var retrievalStatus: XRayClientTypes.RetrievalStatus? + /// Retrieved services. + public var services: [XRayClientTypes.RetrievedService]? + + public init( + nextToken: Swift.String? = nil, + retrievalStatus: XRayClientTypes.RetrievalStatus? = nil, + services: [XRayClientTypes.RetrievedService]? = nil + ) + { + self.nextToken = nextToken + self.retrievalStatus = retrievalStatus + self.services = services + } +} + +public struct GetSamplingRulesInput: Swift.Sendable { + /// Pagination token. + public var nextToken: Swift.String? + + public init( + nextToken: Swift.String? = nil + ) + { + self.nextToken = nextToken + } +} + +public struct GetSamplingRulesOutput: Swift.Sendable { + /// Pagination token. + public var nextToken: Swift.String? + /// Rule definitions and metadata. + public var samplingRuleRecords: [XRayClientTypes.SamplingRuleRecord]? + + public init( + nextToken: Swift.String? = nil, + samplingRuleRecords: [XRayClientTypes.SamplingRuleRecord]? = nil + ) + { + self.nextToken = nextToken + self.samplingRuleRecords = samplingRuleRecords + } +} + +public struct GetSamplingStatisticSummariesInput: Swift.Sendable { + /// Pagination token. + public var nextToken: Swift.String? + + public init( + nextToken: Swift.String? = nil + ) + { + self.nextToken = nextToken + } +} + +extension XRayClientTypes { + + /// Aggregated request sampling data for a sampling rule across all services for a 10-second window. + public struct SamplingStatisticSummary: Swift.Sendable { + /// The number of requests recorded with borrowed reservoir quota. + public var borrowCount: Swift.Int + /// The number of requests that matched the rule. + public var requestCount: Swift.Int + /// The name of the sampling rule. + public var ruleName: Swift.String? + /// The number of requests recorded. + public var sampledCount: Swift.Int + /// The start time of the reporting window. + public var timestamp: Foundation.Date? + + public init( + borrowCount: Swift.Int = 0, + requestCount: Swift.Int = 0, + ruleName: Swift.String? = nil, + sampledCount: Swift.Int = 0, + timestamp: Foundation.Date? = nil + ) + { + self.borrowCount = borrowCount + self.requestCount = requestCount + self.ruleName = ruleName + self.sampledCount = sampledCount + self.timestamp = timestamp + } + } +} + +public struct GetSamplingStatisticSummariesOutput: Swift.Sendable { + /// Pagination token. + public var nextToken: Swift.String? + /// Information about the number of requests instrumented for each sampling rule. + public var samplingStatisticSummaries: [XRayClientTypes.SamplingStatisticSummary]? + + public init( + nextToken: Swift.String? = nil, + samplingStatisticSummaries: [XRayClientTypes.SamplingStatisticSummary]? = nil + ) + { + self.nextToken = nextToken + self.samplingStatisticSummaries = samplingStatisticSummaries + } +} + +extension XRayClientTypes { + + /// Request sampling results for a single rule from a service. Results are for the last 10 seconds unless the service has been assigned a longer reporting interval after a previous call to [GetSamplingTargets](https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html). + public struct SamplingStatisticsDocument: Swift.Sendable { + /// The number of requests recorded with borrowed reservoir quota. + public var borrowCount: Swift.Int + /// A unique identifier for the service in hexadecimal. + /// This member is required. + public var clientID: Swift.String? + /// The number of requests that matched the rule. + /// This member is required. + public var requestCount: Swift.Int + /// The name of the sampling rule. + /// This member is required. + public var ruleName: Swift.String? + /// The number of requests recorded. + /// This member is required. + public var sampledCount: Swift.Int + /// The current time. + /// This member is required. + public var timestamp: Foundation.Date? + + public init( + borrowCount: Swift.Int = 0, + clientID: Swift.String? = nil, + requestCount: Swift.Int = 0, + ruleName: Swift.String? = nil, + sampledCount: Swift.Int = 0, + timestamp: Foundation.Date? = nil + ) + { + self.borrowCount = borrowCount + self.clientID = clientID + self.requestCount = requestCount + self.ruleName = ruleName + self.sampledCount = sampledCount + self.timestamp = timestamp + } + } +} + +public struct GetSamplingTargetsInput: Swift.Sendable { + /// Information about rules that the service is using to sample requests. + /// This member is required. + public var samplingStatisticsDocuments: [XRayClientTypes.SamplingStatisticsDocument]? + + public init( + samplingStatisticsDocuments: [XRayClientTypes.SamplingStatisticsDocument]? = nil + ) + { + self.samplingStatisticsDocuments = samplingStatisticsDocuments + } +} + +extension XRayClientTypes { + + /// Temporary changes to a sampling rule configuration. To meet the global sampling target for a rule, X-Ray calculates a new reservoir for each service based on the recent sampling results of all services that called [GetSamplingTargets](https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html). + public struct SamplingTargetDocument: Swift.Sendable { + /// The percentage of matching requests to instrument, after the reservoir is exhausted. + public var fixedRate: Swift.Double + /// The number of seconds for the service to wait before getting sampling targets again. + public var interval: Swift.Int? + /// The number of requests per second that X-Ray allocated for this service. + public var reservoirQuota: Swift.Int? + /// When the reservoir quota expires. + public var reservoirQuotaTTL: Foundation.Date? + /// The name of the sampling rule. + public var ruleName: Swift.String? + + public init( + fixedRate: Swift.Double = 0.0, + interval: Swift.Int? = nil, + reservoirQuota: Swift.Int? = nil, + reservoirQuotaTTL: Foundation.Date? = nil, + ruleName: Swift.String? = nil + ) + { + self.fixedRate = fixedRate + self.interval = interval + self.reservoirQuota = reservoirQuota + self.reservoirQuotaTTL = reservoirQuotaTTL + self.ruleName = ruleName + } + } +} + +extension XRayClientTypes { + + /// Sampling statistics from a call to [GetSamplingTargets](https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html) that X-Ray could not process. + public struct UnprocessedStatistics: Swift.Sendable { + /// The error code. + public var errorCode: Swift.String? + /// The error message. + public var message: Swift.String? + /// The name of the sampling rule. + public var ruleName: Swift.String? public init( - errorStatistics: XRayClientTypes.ErrorStatistics? = nil, - faultStatistics: XRayClientTypes.FaultStatistics? = nil, - okCount: Swift.Int? = nil, - totalCount: Swift.Int? = nil, - totalResponseTime: Swift.Double? = nil + errorCode: Swift.String? = nil, + message: Swift.String? = nil, + ruleName: Swift.String? = nil ) { - self.errorStatistics = errorStatistics - self.faultStatistics = faultStatistics - self.okCount = okCount - self.totalCount = totalCount - self.totalResponseTime = totalResponseTime + self.errorCode = errorCode + self.message = message + self.ruleName = ruleName } } } -extension XRayClientTypes { +public struct GetSamplingTargetsOutput: Swift.Sendable { + /// The last time a user changed the sampling rule configuration. If the sampling rule configuration changed since the service last retrieved it, the service should call [GetSamplingRules](https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingRules.html) to get the latest version. + public var lastRuleModification: Foundation.Date? + /// Updated rules that the service should use to sample requests. + public var samplingTargetDocuments: [XRayClientTypes.SamplingTargetDocument]? + /// Information about [SamplingStatisticsDocument](https://docs.aws.amazon.com/xray/latest/api/API_SamplingStatisticsDocument.html) that X-Ray could not process. + public var unprocessedStatistics: [XRayClientTypes.UnprocessedStatistics]? - /// Information about an application that processed requests, users that made requests, or downstream services, resources, and applications that an application used. - public struct Service: Swift.Sendable { - /// Identifier of the Amazon Web Services account in which the service runs. - public var accountId: Swift.String? - /// A histogram that maps the spread of service durations. - public var durationHistogram: [XRayClientTypes.HistogramEntry]? - /// Connections to downstream services. - public var edges: [XRayClientTypes.Edge]? - /// The end time of the last segment that the service generated. - public var endTime: Foundation.Date? - /// The canonical name of the service. - public var name: Swift.String? - /// A list of names for the service, including the canonical name. - public var names: [Swift.String]? - /// Identifier for the service. Unique within the service map. - public var referenceId: Swift.Int? - /// A histogram that maps the spread of service response times. - public var responseTimeHistogram: [XRayClientTypes.HistogramEntry]? - /// Indicates that the service was the first service to process a request. - public var root: Swift.Bool? - /// The start time of the first segment that the service generated. - public var startTime: Foundation.Date? - /// The service's state. - public var state: Swift.String? - /// Aggregated statistics for the service. - public var summaryStatistics: XRayClientTypes.ServiceStatistics? - /// The type of service. - /// - /// * Amazon Web Services Resource - The type of an Amazon Web Services resource. For example, AWS::EC2::Instance for an application running on Amazon EC2 or AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used. - /// - /// * Amazon Web Services Service - The type of an Amazon Web Services service. For example, AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a specific table. - /// - /// * client - Represents the clients that sent requests to a root service. - /// - /// * remote - A downstream service of indeterminate type. - public var type: Swift.String? + public init( + lastRuleModification: Foundation.Date? = nil, + samplingTargetDocuments: [XRayClientTypes.SamplingTargetDocument]? = nil, + unprocessedStatistics: [XRayClientTypes.UnprocessedStatistics]? = nil + ) + { + self.lastRuleModification = lastRuleModification + self.samplingTargetDocuments = samplingTargetDocuments + self.unprocessedStatistics = unprocessedStatistics + } +} - public init( - accountId: Swift.String? = nil, - durationHistogram: [XRayClientTypes.HistogramEntry]? = nil, - edges: [XRayClientTypes.Edge]? = nil, - endTime: Foundation.Date? = nil, - name: Swift.String? = nil, - names: [Swift.String]? = nil, - referenceId: Swift.Int? = nil, - responseTimeHistogram: [XRayClientTypes.HistogramEntry]? = nil, - root: Swift.Bool? = nil, - startTime: Foundation.Date? = nil, - state: Swift.String? = nil, - summaryStatistics: XRayClientTypes.ServiceStatistics? = nil, - type: Swift.String? = nil - ) - { - self.accountId = accountId - self.durationHistogram = durationHistogram - self.edges = edges - self.endTime = endTime - self.name = name - self.names = names - self.referenceId = referenceId - self.responseTimeHistogram = responseTimeHistogram - self.root = root - self.startTime = startTime - self.state = state - self.summaryStatistics = summaryStatistics - self.type = type - } +public struct GetServiceGraphInput: Swift.Sendable { + /// The end of the timeframe for which to generate a graph. + /// This member is required. + public var endTime: Foundation.Date? + /// The Amazon Resource Name (ARN) of a group based on which you want to generate a graph. + public var groupARN: Swift.String? + /// The name of a group based on which you want to generate a graph. + public var groupName: Swift.String? + /// Pagination token. + public var nextToken: Swift.String? + /// The start of the time frame for which to generate a graph. + /// This member is required. + public var startTime: Foundation.Date? + + public init( + endTime: Foundation.Date? = nil, + groupARN: Swift.String? = nil, + groupName: Swift.String? = nil, + nextToken: Swift.String? = nil, + startTime: Foundation.Date? = nil + ) + { + self.endTime = endTime + self.groupARN = groupARN + self.groupName = groupName + self.nextToken = nextToken + self.startTime = startTime } } @@ -1998,6 +2248,85 @@ public struct GetTraceGraphOutput: Swift.Sendable { } } +public struct GetTraceSegmentDestinationInput: Swift.Sendable { + + public init() { } +} + +extension XRayClientTypes { + + public enum TraceSegmentDestination: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case cloudwatchlogs + case xray + case sdkUnknown(Swift.String) + + public static var allCases: [TraceSegmentDestination] { + return [ + .cloudwatchlogs, + .xray + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .cloudwatchlogs: return "CloudWatchLogs" + case .xray: return "XRay" + case let .sdkUnknown(s): return s + } + } + } +} + +extension XRayClientTypes { + + public enum TraceSegmentDestinationStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case active + case pending + case sdkUnknown(Swift.String) + + public static var allCases: [TraceSegmentDestinationStatus] { + return [ + .active, + .pending + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .active: return "ACTIVE" + case .pending: return "PENDING" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct GetTraceSegmentDestinationOutput: Swift.Sendable { + /// Retrieves the current destination. + public var destination: XRayClientTypes.TraceSegmentDestination? + /// Status of the retrieval. + public var status: XRayClientTypes.TraceSegmentDestinationStatus? + + public init( + destination: XRayClientTypes.TraceSegmentDestination? = nil, + status: XRayClientTypes.TraceSegmentDestinationStatus? = nil + ) + { + self.destination = destination + self.status = status + } +} + extension XRayClientTypes { public enum SamplingStrategyName: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -2094,7 +2423,7 @@ public struct GetTraceSummariesInput: Swift.Sendable { /// The start of the time frame for which to retrieve traces. /// This member is required. public var startTime: Foundation.Date? - /// A parameter to indicate whether to query trace summaries by TraceId, Event (trace update time), or Service (segment end time). + /// Query trace summaries by TraceId (trace start time), Event (trace update time), or Service (trace segment end time). public var timeRangeType: XRayClientTypes.TimeRangeType? public init( @@ -2637,30 +2966,121 @@ public struct ListResourcePoliciesOutput: Swift.Sendable { } } -/// The resource was not found. Verify that the name or Amazon Resource Name (ARN) of the resource is correct. -public struct ResourceNotFoundException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { +extension XRayClientTypes { + + public enum TraceFormatType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case otel + case xray + case sdkUnknown(Swift.String) + + public static var allCases: [TraceFormatType] { + return [ + .otel, + .xray + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .otel: return "OTEL" + case .xray: return "XRAY" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct ListRetrievedTracesInput: Swift.Sendable { + /// Specify the pagination token returned by a previous request to retrieve the next page of indexes. + public var nextToken: Swift.String? + /// Retrieval token. + /// This member is required. + public var retrievalToken: Swift.String? + /// Format of the requested traces. + public var traceFormat: XRayClientTypes.TraceFormatType? + + public init( + nextToken: Swift.String? = nil, + retrievalToken: Swift.String? = nil, + traceFormat: XRayClientTypes.TraceFormatType? = nil + ) + { + self.nextToken = nextToken + self.retrievalToken = retrievalToken + self.traceFormat = traceFormat + } +} + +extension XRayClientTypes { + + /// A span from a trace that has been ingested by the X-Ray service. A span represents a unit of work or an operation performed by a service. + public struct Span: Swift.Sendable { + /// The span document. + public var document: Swift.String? + /// The span ID. + public var id: Swift.String? + + public init( + document: Swift.String? = nil, + id: Swift.String? = nil + ) + { + self.document = document + self.id = id + } + } +} + +extension XRayClientTypes { - public struct Properties { - public internal(set) var message: Swift.String? = nil - public internal(set) var resourceName: Swift.String? = nil + /// Retrieved collection of spans with matching trace IDs. + public struct RetrievedTrace: Swift.Sendable { + /// The length of time in seconds between the start time of the root span and the end time of the last span that completed. + public var duration: Swift.Double? + /// The unique identifier for the span. + public var id: Swift.String? + /// Spans that comprise the trace. + public var spans: [XRayClientTypes.Span]? + + public init( + duration: Swift.Double? = nil, + id: Swift.String? = nil, + spans: [XRayClientTypes.Span]? = nil + ) + { + self.duration = duration + self.id = id + self.spans = spans + } } +} - public internal(set) var properties = Properties() - public static var typeName: Swift.String { "ResourceNotFoundException" } - public static var fault: ClientRuntime.ErrorFault { .client } - public static var isRetryable: Swift.Bool { false } - public static var isThrottling: Swift.Bool { false } - public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() - public internal(set) var message: Swift.String? - public internal(set) var requestID: Swift.String? +public struct ListRetrievedTracesOutput: Swift.Sendable { + /// Specify the pagination token returned by a previous request to retrieve the next page of indexes. + public var nextToken: Swift.String? + /// Status of the retrieval. + public var retrievalStatus: XRayClientTypes.RetrievalStatus? + /// Format of the requested traces. + public var traceFormat: XRayClientTypes.TraceFormatType? + /// Full traces for the specified requests. + public var traces: [XRayClientTypes.RetrievedTrace]? public init( - message: Swift.String? = nil, - resourceName: Swift.String? = nil + nextToken: Swift.String? = nil, + retrievalStatus: XRayClientTypes.RetrievalStatus? = nil, + traceFormat: XRayClientTypes.TraceFormatType? = nil, + traces: [XRayClientTypes.RetrievedTrace]? = nil ) { - self.properties.message = message - self.properties.resourceName = resourceName + self.nextToken = nextToken + self.retrievalStatus = retrievalStatus + self.traceFormat = traceFormat + self.traces = traces } } @@ -3021,6 +3441,41 @@ public struct PutTraceSegmentsOutput: Swift.Sendable { } } +public struct StartTraceRetrievalInput: Swift.Sendable { + /// The end of the time range to retrieve traces. The range is inclusive, so the specified end time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC. + /// This member is required. + public var endTime: Foundation.Date? + /// The start of the time range to retrieve traces. The range is inclusive, so the specified start time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC. + /// This member is required. + public var startTime: Foundation.Date? + /// Specify the trace IDs of the traces to be retrieved. + /// This member is required. + public var traceIds: [Swift.String]? + + public init( + endTime: Foundation.Date? = nil, + startTime: Foundation.Date? = nil, + traceIds: [Swift.String]? = nil + ) + { + self.endTime = endTime + self.startTime = startTime + self.traceIds = traceIds + } +} + +public struct StartTraceRetrievalOutput: Swift.Sendable { + /// Retrieval token. + public var retrievalToken: Swift.String? + + public init( + retrievalToken: Swift.String? = nil + ) + { + self.retrievalToken = retrievalToken + } +} + /// You have exceeded the maximum number of tags you can apply to this resource. public struct TooManyTagsException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -3146,6 +3601,63 @@ public struct UpdateGroupOutput: Swift.Sendable { } } +extension XRayClientTypes { + + /// Update to the indexing rule configuration for probabilistic sampling. + public struct ProbabilisticRuleValueUpdate: Swift.Sendable { + /// Configured sampling percentage of traceIds. Note that sampling can be subject to limits to ensure completeness of data. + /// This member is required. + public var desiredSamplingPercentage: Swift.Double? + + public init( + desiredSamplingPercentage: Swift.Double? = nil + ) + { + self.desiredSamplingPercentage = desiredSamplingPercentage + } + } +} + +extension XRayClientTypes { + + /// Update to an indexing rule. + public enum IndexingRuleValueUpdate: Swift.Sendable { + /// Indexing rule configuration that is used to probabilistically sample traceIds. + case probabilistic(XRayClientTypes.ProbabilisticRuleValueUpdate) + case sdkUnknown(Swift.String) + } +} + +public struct UpdateIndexingRuleInput: Swift.Sendable { + /// Name of the indexing rule to be updated. + /// This member is required. + public var name: Swift.String? + /// Rule configuration to be updated. + /// This member is required. + public var rule: XRayClientTypes.IndexingRuleValueUpdate? + + public init( + name: Swift.String? = nil, + rule: XRayClientTypes.IndexingRuleValueUpdate? = nil + ) + { + self.name = name + self.rule = rule + } +} + +public struct UpdateIndexingRuleOutput: Swift.Sendable { + /// Updated indexing rule. + public var indexingRule: XRayClientTypes.IndexingRule? + + public init( + indexingRule: XRayClientTypes.IndexingRule? = nil + ) + { + self.indexingRule = indexingRule + } +} + extension XRayClientTypes { /// A document specifying changes to a sampling rule's configuration. @@ -3231,6 +3743,34 @@ public struct UpdateSamplingRuleOutput: Swift.Sendable { } } +public struct UpdateTraceSegmentDestinationInput: Swift.Sendable { + /// The configured destination of trace segments. + public var destination: XRayClientTypes.TraceSegmentDestination? + + public init( + destination: XRayClientTypes.TraceSegmentDestination? = nil + ) + { + self.destination = destination + } +} + +public struct UpdateTraceSegmentDestinationOutput: Swift.Sendable { + /// The destination of the trace segments. + public var destination: XRayClientTypes.TraceSegmentDestination? + /// The status of the update. + public var status: XRayClientTypes.TraceSegmentDestinationStatus? + + public init( + destination: XRayClientTypes.TraceSegmentDestination? = nil, + status: XRayClientTypes.TraceSegmentDestinationStatus? = nil + ) + { + self.destination = destination + self.status = status + } +} + extension BatchGetTracesInput { static func urlPathProvider(_ value: BatchGetTracesInput) -> Swift.String? { @@ -3238,6 +3778,13 @@ extension BatchGetTracesInput { } } +extension CancelTraceRetrievalInput { + + static func urlPathProvider(_ value: CancelTraceRetrievalInput) -> Swift.String? { + return "/CancelTraceRetrieval" + } +} + extension CreateGroupInput { static func urlPathProvider(_ value: CreateGroupInput) -> Swift.String? { @@ -3294,6 +3841,13 @@ extension GetGroupsInput { } } +extension GetIndexingRulesInput { + + static func urlPathProvider(_ value: GetIndexingRulesInput) -> Swift.String? { + return "/GetIndexingRules" + } +} + extension GetInsightInput { static func urlPathProvider(_ value: GetInsightInput) -> Swift.String? { @@ -3322,6 +3876,13 @@ extension GetInsightSummariesInput { } } +extension GetRetrievedTracesGraphInput { + + static func urlPathProvider(_ value: GetRetrievedTracesGraphInput) -> Swift.String? { + return "/GetRetrievedTracesGraph" + } +} + extension GetSamplingRulesInput { static func urlPathProvider(_ value: GetSamplingRulesInput) -> Swift.String? { @@ -3364,6 +3925,13 @@ extension GetTraceGraphInput { } } +extension GetTraceSegmentDestinationInput { + + static func urlPathProvider(_ value: GetTraceSegmentDestinationInput) -> Swift.String? { + return "/GetTraceSegmentDestination" + } +} + extension GetTraceSummariesInput { static func urlPathProvider(_ value: GetTraceSummariesInput) -> Swift.String? { @@ -3378,6 +3946,13 @@ extension ListResourcePoliciesInput { } } +extension ListRetrievedTracesInput { + + static func urlPathProvider(_ value: ListRetrievedTracesInput) -> Swift.String? { + return "/ListRetrievedTraces" + } +} + extension ListTagsForResourceInput { static func urlPathProvider(_ value: ListTagsForResourceInput) -> Swift.String? { @@ -3413,6 +3988,13 @@ extension PutTraceSegmentsInput { } } +extension StartTraceRetrievalInput { + + static func urlPathProvider(_ value: StartTraceRetrievalInput) -> Swift.String? { + return "/StartTraceRetrieval" + } +} + extension TagResourceInput { static func urlPathProvider(_ value: TagResourceInput) -> Swift.String? { @@ -3434,6 +4016,13 @@ extension UpdateGroupInput { } } +extension UpdateIndexingRuleInput { + + static func urlPathProvider(_ value: UpdateIndexingRuleInput) -> Swift.String? { + return "/UpdateIndexingRule" + } +} + extension UpdateSamplingRuleInput { static func urlPathProvider(_ value: UpdateSamplingRuleInput) -> Swift.String? { @@ -3441,6 +4030,13 @@ extension UpdateSamplingRuleInput { } } +extension UpdateTraceSegmentDestinationInput { + + static func urlPathProvider(_ value: UpdateTraceSegmentDestinationInput) -> Swift.String? { + return "/UpdateTraceSegmentDestination" + } +} + extension BatchGetTracesInput { static func write(value: BatchGetTracesInput?, to writer: SmithyJSON.Writer) throws { @@ -3450,6 +4046,14 @@ extension BatchGetTracesInput { } } +extension CancelTraceRetrievalInput { + + static func write(value: CancelTraceRetrievalInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["RetrievalToken"].write(value.retrievalToken) + } +} + extension CreateGroupInput { static func write(value: CreateGroupInput?, to writer: SmithyJSON.Writer) throws { @@ -3514,6 +4118,14 @@ extension GetGroupsInput { } } +extension GetIndexingRulesInput { + + static func write(value: GetIndexingRulesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["NextToken"].write(value.nextToken) + } +} + extension GetInsightInput { static func write(value: GetInsightInput?, to writer: SmithyJSON.Writer) throws { @@ -3557,6 +4169,15 @@ extension GetInsightSummariesInput { } } +extension GetRetrievedTracesGraphInput { + + static func write(value: GetRetrievedTracesGraphInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["NextToken"].write(value.nextToken) + try writer["RetrievalToken"].write(value.retrievalToken) + } +} + extension GetSamplingRulesInput { static func write(value: GetSamplingRulesInput?, to writer: SmithyJSON.Writer) throws { @@ -3639,6 +4260,16 @@ extension ListResourcePoliciesInput { } } +extension ListRetrievedTracesInput { + + static func write(value: ListRetrievedTracesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["NextToken"].write(value.nextToken) + try writer["RetrievalToken"].write(value.retrievalToken) + try writer["TraceFormat"].write(value.traceFormat) + } +} + extension ListTagsForResourceInput { static func write(value: ListTagsForResourceInput?, to writer: SmithyJSON.Writer) throws { @@ -3687,6 +4318,16 @@ extension PutTraceSegmentsInput { } } +extension StartTraceRetrievalInput { + + static func write(value: StartTraceRetrievalInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["EndTime"].writeTimestamp(value.endTime, format: SmithyTimestamps.TimestampFormat.epochSeconds) + try writer["StartTime"].writeTimestamp(value.startTime, format: SmithyTimestamps.TimestampFormat.epochSeconds) + try writer["TraceIds"].writeList(value.traceIds, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + extension TagResourceInput { static func write(value: TagResourceInput?, to writer: SmithyJSON.Writer) throws { @@ -3716,6 +4357,15 @@ extension UpdateGroupInput { } } +extension UpdateIndexingRuleInput { + + static func write(value: UpdateIndexingRuleInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Name"].write(value.name) + try writer["Rule"].write(value.rule, with: XRayClientTypes.IndexingRuleValueUpdate.write(value:to:)) + } +} + extension UpdateSamplingRuleInput { static func write(value: UpdateSamplingRuleInput?, to writer: SmithyJSON.Writer) throws { @@ -3724,6 +4374,14 @@ extension UpdateSamplingRuleInput { } } +extension UpdateTraceSegmentDestinationInput { + + static func write(value: UpdateTraceSegmentDestinationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Destination"].write(value.destination) + } +} + extension BatchGetTracesOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> BatchGetTracesOutput { @@ -3738,6 +4396,13 @@ extension BatchGetTracesOutput { } } +extension CancelTraceRetrievalOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CancelTraceRetrievalOutput { + return CancelTraceRetrievalOutput() + } +} + extension CreateGroupOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateGroupOutput { @@ -3825,6 +4490,19 @@ extension GetGroupsOutput { } } +extension GetIndexingRulesOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetIndexingRulesOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetIndexingRulesOutput() + value.indexingRules = try reader["IndexingRules"].readListIfPresent(memberReadingClosure: XRayClientTypes.IndexingRule.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["NextToken"].readIfPresent() + return value + } +} + extension GetInsightOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetInsightOutput { @@ -3881,6 +4559,20 @@ extension GetInsightSummariesOutput { } } +extension GetRetrievedTracesGraphOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetRetrievedTracesGraphOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetRetrievedTracesGraphOutput() + value.nextToken = try reader["NextToken"].readIfPresent() + value.retrievalStatus = try reader["RetrievalStatus"].readIfPresent() + value.services = try reader["Services"].readListIfPresent(memberReadingClosure: XRayClientTypes.RetrievedService.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension GetSamplingRulesOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetSamplingRulesOutput { @@ -3964,6 +4656,19 @@ extension GetTraceGraphOutput { } } +extension GetTraceSegmentDestinationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetTraceSegmentDestinationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetTraceSegmentDestinationOutput() + value.destination = try reader["Destination"].readIfPresent() + value.status = try reader["Status"].readIfPresent() + return value + } +} + extension GetTraceSummariesOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetTraceSummariesOutput { @@ -3992,6 +4697,21 @@ extension ListResourcePoliciesOutput { } } +extension ListRetrievedTracesOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListRetrievedTracesOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListRetrievedTracesOutput() + value.nextToken = try reader["NextToken"].readIfPresent() + value.retrievalStatus = try reader["RetrievalStatus"].readIfPresent() + value.traceFormat = try reader["TraceFormat"].readIfPresent() + value.traces = try reader["Traces"].readListIfPresent(memberReadingClosure: XRayClientTypes.RetrievedTrace.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension ListTagsForResourceOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTagsForResourceOutput { @@ -4048,6 +4768,18 @@ extension PutTraceSegmentsOutput { } } +extension StartTraceRetrievalOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartTraceRetrievalOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = StartTraceRetrievalOutput() + value.retrievalToken = try reader["RetrievalToken"].readIfPresent() + return value + } +} + extension TagResourceOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TagResourceOutput { @@ -4074,19 +4806,59 @@ extension UpdateGroupOutput { } } +extension UpdateIndexingRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateIndexingRuleOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateIndexingRuleOutput() + value.indexingRule = try reader["IndexingRule"].readIfPresent(with: XRayClientTypes.IndexingRule.read(from:)) + return value + } +} + extension UpdateSamplingRuleOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateSamplingRuleOutput { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateSamplingRuleOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateSamplingRuleOutput() + value.samplingRuleRecord = try reader["SamplingRuleRecord"].readIfPresent(with: XRayClientTypes.SamplingRuleRecord.read(from:)) + return value + } +} + +extension UpdateTraceSegmentDestinationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateTraceSegmentDestinationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateTraceSegmentDestinationOutput() + value.destination = try reader["Destination"].readIfPresent() + value.status = try reader["Status"].readIfPresent() + return value + } +} + +enum BatchGetTracesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = UpdateSamplingRuleOutput() - value.samplingRuleRecord = try reader["SamplingRuleRecord"].readIfPresent(with: XRayClientTypes.SamplingRuleRecord.read(from:)) - return value + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidRequestException": return try InvalidRequestException.makeError(baseError: baseError) + case "ThrottledException": return try ThrottledException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } } } -enum BatchGetTracesOutputError { +enum CancelTraceRetrievalOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -4095,6 +4867,7 @@ enum BatchGetTracesOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "InvalidRequestException": return try InvalidRequestException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ThrottledException": return try ThrottledException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } @@ -4223,6 +4996,21 @@ enum GetGroupsOutputError { } } +enum GetIndexingRulesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidRequestException": return try InvalidRequestException.makeError(baseError: baseError) + case "ThrottledException": return try ThrottledException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum GetInsightOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -4283,6 +5071,22 @@ enum GetInsightSummariesOutputError { } } +enum GetRetrievedTracesGraphOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidRequestException": return try InvalidRequestException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottledException": return try ThrottledException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum GetSamplingRulesOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -4373,6 +5177,21 @@ enum GetTraceGraphOutputError { } } +enum GetTraceSegmentDestinationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidRequestException": return try InvalidRequestException.makeError(baseError: baseError) + case "ThrottledException": return try ThrottledException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum GetTraceSummariesOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -4403,6 +5222,22 @@ enum ListResourcePoliciesOutputError { } } +enum ListRetrievedTracesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidRequestException": return try InvalidRequestException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottledException": return try ThrottledException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListTagsForResourceOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -4483,6 +5318,22 @@ enum PutTraceSegmentsOutputError { } } +enum StartTraceRetrievalOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidRequestException": return try InvalidRequestException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottledException": return try ThrottledException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum TagResourceOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -4531,6 +5382,22 @@ enum UpdateGroupOutputError { } } +enum UpdateIndexingRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidRequestException": return try InvalidRequestException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottledException": return try ThrottledException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum UpdateSamplingRuleOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -4546,6 +5413,21 @@ enum UpdateSamplingRuleOutputError { } } +enum UpdateTraceSegmentDestinationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidRequestException": return try InvalidRequestException.makeError(baseError: baseError) + case "ThrottledException": return try ThrottledException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + extension InvalidRequestException { static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> InvalidRequestException { @@ -4572,12 +5454,13 @@ extension ThrottledException { } } -extension RuleLimitExceededException { +extension ResourceNotFoundException { - static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> RuleLimitExceededException { + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ResourceNotFoundException { let reader = baseError.errorBodyReader - var value = RuleLimitExceededException() + var value = ResourceNotFoundException() value.properties.message = try reader["Message"].readIfPresent() + value.properties.resourceName = try reader["ResourceName"].readIfPresent() value.httpResponse = baseError.httpResponse value.requestID = baseError.requestID value.message = baseError.message @@ -4585,11 +5468,11 @@ extension RuleLimitExceededException { } } -extension InvalidPolicyRevisionIdException { +extension RuleLimitExceededException { - static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> InvalidPolicyRevisionIdException { + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> RuleLimitExceededException { let reader = baseError.errorBodyReader - var value = InvalidPolicyRevisionIdException() + var value = RuleLimitExceededException() value.properties.message = try reader["Message"].readIfPresent() value.httpResponse = baseError.httpResponse value.requestID = baseError.requestID @@ -4598,13 +5481,12 @@ extension InvalidPolicyRevisionIdException { } } -extension ResourceNotFoundException { +extension InvalidPolicyRevisionIdException { - static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ResourceNotFoundException { + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> InvalidPolicyRevisionIdException { let reader = baseError.errorBodyReader - var value = ResourceNotFoundException() + var value = InvalidPolicyRevisionIdException() value.properties.message = try reader["Message"].readIfPresent() - value.properties.resourceName = try reader["ResourceName"].readIfPresent() value.httpResponse = baseError.httpResponse value.requestID = baseError.requestID value.message = baseError.message @@ -4808,6 +5690,43 @@ extension XRayClientTypes.GroupSummary { } } +extension XRayClientTypes.IndexingRule { + + static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.IndexingRule { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = XRayClientTypes.IndexingRule() + value.name = try reader["Name"].readIfPresent() + value.modifiedAt = try reader["ModifiedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.rule = try reader["Rule"].readIfPresent(with: XRayClientTypes.IndexingRuleValue.read(from:)) + return value + } +} + +extension XRayClientTypes.IndexingRuleValue { + + static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.IndexingRuleValue { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + let name = reader.children.filter { $0.hasContent && $0.nodeInfo.name != "__type" }.first?.nodeInfo.name + switch name { + case "Probabilistic": + return .probabilistic(try reader["Probabilistic"].read(with: XRayClientTypes.ProbabilisticRuleValue.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension XRayClientTypes.ProbabilisticRuleValue { + + static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.ProbabilisticRuleValue { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = XRayClientTypes.ProbabilisticRuleValue() + value.desiredSamplingPercentage = try reader["DesiredSamplingPercentage"].readIfPresent() ?? 0.0 + value.actualSamplingPercentage = try reader["ActualSamplingPercentage"].readIfPresent() + return value + } +} + extension XRayClientTypes.Insight { static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.Insight { @@ -4925,42 +5844,25 @@ extension XRayClientTypes.InsightSummary { } } -extension XRayClientTypes.SamplingStatisticSummary { - - static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.SamplingStatisticSummary { - guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = XRayClientTypes.SamplingStatisticSummary() - value.ruleName = try reader["RuleName"].readIfPresent() - value.timestamp = try reader["Timestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) - value.requestCount = try reader["RequestCount"].readIfPresent() ?? 0 - value.borrowCount = try reader["BorrowCount"].readIfPresent() ?? 0 - value.sampledCount = try reader["SampledCount"].readIfPresent() ?? 0 - return value - } -} - -extension XRayClientTypes.SamplingTargetDocument { +extension XRayClientTypes.RetrievedService { - static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.SamplingTargetDocument { + static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.RetrievedService { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = XRayClientTypes.SamplingTargetDocument() - value.ruleName = try reader["RuleName"].readIfPresent() - value.fixedRate = try reader["FixedRate"].readIfPresent() ?? 0 - value.reservoirQuota = try reader["ReservoirQuota"].readIfPresent() - value.reservoirQuotaTTL = try reader["ReservoirQuotaTTL"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) - value.interval = try reader["Interval"].readIfPresent() + var value = XRayClientTypes.RetrievedService() + value.service = try reader["Service"].readIfPresent(with: XRayClientTypes.Service.read(from:)) + value.links = try reader["Links"].readListIfPresent(memberReadingClosure: XRayClientTypes.GraphLink.read(from:), memberNodeInfo: "member", isFlattened: false) return value } } -extension XRayClientTypes.UnprocessedStatistics { +extension XRayClientTypes.GraphLink { - static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.UnprocessedStatistics { + static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.GraphLink { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = XRayClientTypes.UnprocessedStatistics() - value.ruleName = try reader["RuleName"].readIfPresent() - value.errorCode = try reader["ErrorCode"].readIfPresent() - value.message = try reader["Message"].readIfPresent() + var value = XRayClientTypes.GraphLink() + value.referenceType = try reader["ReferenceType"].readIfPresent() + value.sourceTraceId = try reader["SourceTraceId"].readIfPresent() + value.destinationTraceIds = try reader["DestinationTraceIds"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) return value } } @@ -5078,6 +5980,46 @@ extension XRayClientTypes.EdgeStatistics { } } +extension XRayClientTypes.SamplingStatisticSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.SamplingStatisticSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = XRayClientTypes.SamplingStatisticSummary() + value.ruleName = try reader["RuleName"].readIfPresent() + value.timestamp = try reader["Timestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.requestCount = try reader["RequestCount"].readIfPresent() ?? 0 + value.borrowCount = try reader["BorrowCount"].readIfPresent() ?? 0 + value.sampledCount = try reader["SampledCount"].readIfPresent() ?? 0 + return value + } +} + +extension XRayClientTypes.SamplingTargetDocument { + + static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.SamplingTargetDocument { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = XRayClientTypes.SamplingTargetDocument() + value.ruleName = try reader["RuleName"].readIfPresent() + value.fixedRate = try reader["FixedRate"].readIfPresent() ?? 0 + value.reservoirQuota = try reader["ReservoirQuota"].readIfPresent() + value.reservoirQuotaTTL = try reader["ReservoirQuotaTTL"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.interval = try reader["Interval"].readIfPresent() + return value + } +} + +extension XRayClientTypes.UnprocessedStatistics { + + static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.UnprocessedStatistics { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = XRayClientTypes.UnprocessedStatistics() + value.ruleName = try reader["RuleName"].readIfPresent() + value.errorCode = try reader["ErrorCode"].readIfPresent() + value.message = try reader["Message"].readIfPresent() + return value + } +} + extension XRayClientTypes.TimeSeriesServiceStatistics { static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.TimeSeriesServiceStatistics { @@ -5355,6 +6297,29 @@ extension XRayClientTypes.ResourcePolicy { } } +extension XRayClientTypes.RetrievedTrace { + + static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.RetrievedTrace { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = XRayClientTypes.RetrievedTrace() + value.id = try reader["Id"].readIfPresent() + value.duration = try reader["Duration"].readIfPresent() + value.spans = try reader["Spans"].readListIfPresent(memberReadingClosure: XRayClientTypes.Span.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension XRayClientTypes.Span { + + static func read(from reader: SmithyJSON.Reader) throws -> XRayClientTypes.Span { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = XRayClientTypes.Span() + value.id = try reader["Id"].readIfPresent() + value.document = try reader["Document"].readIfPresent() + return value + } +} + extension XRayClientTypes.Tag { static func write(value: XRayClientTypes.Tag?, to writer: SmithyJSON.Writer) throws { @@ -5432,6 +6397,27 @@ extension XRayClientTypes.BackendConnectionErrors { } } +extension XRayClientTypes.IndexingRuleValueUpdate { + + static func write(value: XRayClientTypes.IndexingRuleValueUpdate?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .probabilistic(probabilistic): + try writer["Probabilistic"].write(probabilistic, with: XRayClientTypes.ProbabilisticRuleValueUpdate.write(value:to:)) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } +} + +extension XRayClientTypes.ProbabilisticRuleValueUpdate { + + static func write(value: XRayClientTypes.ProbabilisticRuleValueUpdate?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["DesiredSamplingPercentage"].write(value.desiredSamplingPercentage) + } +} + extension XRayClientTypes.SamplingRuleUpdate { static func write(value: XRayClientTypes.SamplingRuleUpdate?, to writer: SmithyJSON.Writer) throws { diff --git a/Sources/Services/AWSXRay/Sources/AWSXRay/XRayClient.swift b/Sources/Services/AWSXRay/Sources/AWSXRay/XRayClient.swift index 87d3b2b857b..9396a382690 100644 --- a/Sources/Services/AWSXRay/Sources/AWSXRay/XRayClient.swift +++ b/Sources/Services/AWSXRay/Sources/AWSXRay/XRayClient.swift @@ -63,7 +63,7 @@ import typealias SmithyHTTPAuthAPI.AuthSchemes public class XRayClient: ClientRuntime.Client { public static let clientName = "XRayClient" - public static let version = "1.0.45" + public static let version = "1.0.46" let client: ClientRuntime.SdkHttpClient let config: XRayClient.XRayClientConfiguration let serviceName = "XRay" @@ -196,7 +196,7 @@ extension XRayClient { extension XRayClient { /// Performs the `BatchGetTraces` operation on the `AWSXRay` service. /// - /// Retrieves a list of traces specified by ID. Each trace is a collection of segment documents that originates from a single request. Use GetTraceSummaries to get a list of trace IDs. + /// You cannot find traces through this API if Transaction Search is enabled since trace is not indexed in X-Ray. Retrieves a list of traces specified by ID. Each trace is a collection of segment documents that originates from a single request. Use GetTraceSummaries to get a list of trace IDs. /// /// - Parameter BatchGetTracesInput : [no documentation found] /// @@ -264,6 +264,77 @@ extension XRayClient { return try await op.execute(input: input) } + /// Performs the `CancelTraceRetrieval` operation on the `AWSXRay` service. + /// + /// Cancels an ongoing trace retrieval job initiated by StartTraceRetrieval using the provided RetrievalToken. A successful cancellation will return an HTTP 200 response. + /// + /// - Parameter CancelTraceRetrievalInput : [no documentation found] + /// + /// - Returns: `CancelTraceRetrievalOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidRequestException` : The request is missing required parameters or has invalid parameters. + /// - `ResourceNotFoundException` : The resource was not found. Verify that the name or Amazon Resource Name (ARN) of the resource is correct. + /// - `ThrottledException` : The request exceeds the maximum number of requests per second. + public func cancelTraceRetrieval(input: CancelTraceRetrievalInput) async throws -> CancelTraceRetrievalOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "cancelTraceRetrieval") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "xray") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CancelTraceRetrievalInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CancelTraceRetrievalInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CancelTraceRetrievalOutput.httpOutput(from:), CancelTraceRetrievalOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: XRayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "XRay") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CancelTraceRetrieval") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `CreateGroup` operation on the `AWSXRay` service. /// /// Creates a group resource with a name and a filter expression. @@ -823,6 +894,76 @@ extension XRayClient { return try await op.execute(input: input) } + /// Performs the `GetIndexingRules` operation on the `AWSXRay` service. + /// + /// Retrieves all indexing rules. Indexing rules are used to determine the server-side sampling rate for spans ingested through the CloudWatchLogs destination and indexed by X-Ray. For more information, see [Transaction Search](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search.html). + /// + /// - Parameter GetIndexingRulesInput : [no documentation found] + /// + /// - Returns: `GetIndexingRulesOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidRequestException` : The request is missing required parameters or has invalid parameters. + /// - `ThrottledException` : The request exceeds the maximum number of requests per second. + public func getIndexingRules(input: GetIndexingRulesInput) async throws -> GetIndexingRulesOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getIndexingRules") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "xray") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetIndexingRulesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetIndexingRulesInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetIndexingRulesOutput.httpOutput(from:), GetIndexingRulesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: XRayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "XRay") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetIndexingRules") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `GetInsight` operation on the `AWSXRay` service. /// /// Retrieves the summary information of an insight. This includes impact to clients and root cause services, the top anomalous services, the category, the state of the insight, and the start and end time of the insight. @@ -1103,6 +1244,77 @@ extension XRayClient { return try await op.execute(input: input) } + /// Performs the `GetRetrievedTracesGraph` operation on the `AWSXRay` service. + /// + /// Retrieves a service graph for traces based on the specified RetrievalToken from the CloudWatch log group generated by Transaction Search. This API does not initiate a retrieval job. You must first execute StartTraceRetrieval to obtain the required RetrievalToken. The trace graph describes services that process incoming requests and any downstream services they call, which may include Amazon Web Services resources, external APIs, or databases. The response is empty until the RetrievalStatus is COMPLETE. Retry the request after the status changes from RUNNING or SCHEDULED to COMPLETE to access the full service graph. When CloudWatch log is the destination, this API can support cross-account observability and service graph retrieval across linked accounts. For retrieving graphs from X-Ray directly as opposed to the Transaction-Search Log group, see [GetTraceGraph](https://docs.aws.amazon.com/xray/latest/api/API_GetTraceGraph.html). + /// + /// - Parameter GetRetrievedTracesGraphInput : [no documentation found] + /// + /// - Returns: `GetRetrievedTracesGraphOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidRequestException` : The request is missing required parameters or has invalid parameters. + /// - `ResourceNotFoundException` : The resource was not found. Verify that the name or Amazon Resource Name (ARN) of the resource is correct. + /// - `ThrottledException` : The request exceeds the maximum number of requests per second. + public func getRetrievedTracesGraph(input: GetRetrievedTracesGraphInput) async throws -> GetRetrievedTracesGraphOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getRetrievedTracesGraph") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "xray") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetRetrievedTracesGraphInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetRetrievedTracesGraphInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetRetrievedTracesGraphOutput.httpOutput(from:), GetRetrievedTracesGraphOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: XRayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "XRay") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetRetrievedTracesGraph") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `GetSamplingRules` operation on the `AWSXRay` service. /// /// Retrieves all sampling rules. @@ -1523,9 +1735,76 @@ extension XRayClient { return try await op.execute(input: input) } + /// Performs the `GetTraceSegmentDestination` operation on the `AWSXRay` service. + /// + /// Retrieves the current destination of data sent to PutTraceSegments and OpenTelemetry API. The Transaction Search feature requires a CloudWatchLogs destination. For more information, see [Transaction Search](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search.html) and [OpenTelemetry](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-OpenTelemetry-Sections.html). + /// + /// - Parameter GetTraceSegmentDestinationInput : [no documentation found] + /// + /// - Returns: `GetTraceSegmentDestinationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidRequestException` : The request is missing required parameters or has invalid parameters. + /// - `ThrottledException` : The request exceeds the maximum number of requests per second. + public func getTraceSegmentDestination(input: GetTraceSegmentDestinationInput) async throws -> GetTraceSegmentDestinationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getTraceSegmentDestination") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "xray") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetTraceSegmentDestinationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetTraceSegmentDestinationOutput.httpOutput(from:), GetTraceSegmentDestinationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: XRayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "XRay") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetTraceSegmentDestination") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `GetTraceSummaries` operation on the `AWSXRay` service. /// - /// Retrieves IDs and annotations for traces available for a specified time frame using an optional filter. To get the full traces, pass the trace IDs to BatchGetTraces. A filter expression can target traced requests that hit specific service nodes or edges, have errors, or come from a known user. For example, the following filter expression targets traces that pass through api.example.com: service("api.example.com") This filter expression finds traces that have an annotation named account with the value 12345: annotation.account = "12345" For a full list of indexed fields and keywords that you can use in filter expressions, see [Using Filter Expressions](https://docs.aws.amazon.com/xray/latest/devguide/xray-console-filters.html) in the Amazon Web Services X-Ray Developer Guide. + /// Retrieves IDs and annotations for traces available for a specified time frame using an optional filter. To get the full traces, pass the trace IDs to BatchGetTraces. A filter expression can target traced requests that hit specific service nodes or edges, have errors, or come from a known user. For example, the following filter expression targets traces that pass through api.example.com: service("api.example.com") This filter expression finds traces that have an annotation named account with the value 12345: annotation.account = "12345" For a full list of indexed fields and keywords that you can use in filter expressions, see [Use filter expressions](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-console.html#xray-console-filters) in the Amazon Web Services X-Ray Developer Guide. /// /// - Parameter GetTraceSummariesInput : [no documentation found] /// @@ -1663,6 +1942,77 @@ extension XRayClient { return try await op.execute(input: input) } + /// Performs the `ListRetrievedTraces` operation on the `AWSXRay` service. + /// + /// Retrieves a list of traces for a given RetrievalToken from the CloudWatch log group generated by Transaction Search. For information on what each trace returns, see [BatchGetTraces](https://docs.aws.amazon.com/xray/latest/api/API_BatchGetTraces.html). This API does not initiate a retrieval job. To start a trace retrieval, use StartTraceRetrieval, which generates the required RetrievalToken. When the RetrievalStatus is not COMPLETE, the API will return an empty response. Retry the request once the retrieval has completed to access the full list of traces. For cross-account observability, this API can retrieve traces from linked accounts when CloudWatch log is the destination across relevant accounts. For more details, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). For retrieving data from X-Ray directly as opposed to the Transaction-Search Log group, see [BatchGetTraces](https://docs.aws.amazon.com/xray/latest/api/API_BatchGetTraces.html). + /// + /// - Parameter ListRetrievedTracesInput : [no documentation found] + /// + /// - Returns: `ListRetrievedTracesOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidRequestException` : The request is missing required parameters or has invalid parameters. + /// - `ResourceNotFoundException` : The resource was not found. Verify that the name or Amazon Resource Name (ARN) of the resource is correct. + /// - `ThrottledException` : The request exceeds the maximum number of requests per second. + public func listRetrievedTraces(input: ListRetrievedTracesInput) async throws -> ListRetrievedTracesOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listRetrievedTraces") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "xray") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListRetrievedTracesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListRetrievedTracesInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListRetrievedTracesOutput.httpOutput(from:), ListRetrievedTracesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: XRayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "XRay") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListRetrievedTraces") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListTagsForResource` operation on the `AWSXRay` service. /// /// Returns a list of tags that are applied to the specified Amazon Web Services X-Ray group or sampling rule. @@ -1950,7 +2300,7 @@ extension XRayClient { /// Performs the `PutTraceSegments` operation on the `AWSXRay` service. /// - /// Uploads segment documents to Amazon Web Services X-Ray. The [X-Ray SDK](https://docs.aws.amazon.com/xray/index.html) generates segment documents and sends them to the X-Ray daemon, which uploads them in batches. A segment document can be a completed segment, an in-progress segment, or an array of subsegments. Segments must include the following fields. For the full segment document schema, see [Amazon Web Services X-Ray Segment Documents](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html) in the Amazon Web Services X-Ray Developer Guide. Required segment document fields + /// Uploads segment documents to Amazon Web Services X-Ray. A segment document can be a completed segment, an in-progress segment, or an array of subsegments. Segments must include the following fields. For the full segment document schema, see [Amazon Web Services X-Ray Segment Documents](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-api.html#xray-api-segmentdocuments.html) in the Amazon Web Services X-Ray Developer Guide. Required segment document fields /// /// * name - The name of the service that handled the request. /// @@ -1965,7 +2315,7 @@ extension XRayClient { /// * in_progress - Set to true instead of specifying an end_time to record that a segment has been started, but is not complete. Send an in-progress segment when your application receives a request that will take a long time to serve, to trace that the request was received. When the response is sent, send the complete segment to overwrite the in-progress segment. /// /// - /// A trace_id consists of three numbers separated by hyphens. For example, 1-58406520-a006649127e371903a2de979. This includes: Trace ID Format + /// A trace_id consists of three numbers separated by hyphens. For example, 1-58406520-a006649127e371903a2de979. For trace IDs created by an X-Ray SDK, or by Amazon Web Services services integrated with X-Ray, a trace ID includes: Trace ID Format /// /// * The version number, for instance, 1. /// @@ -1973,6 +2323,9 @@ extension XRayClient { /// /// * A 96-bit identifier for the trace, globally unique, in 24 hexadecimal digits. /// + /// + /// Trace IDs created via OpenTelemetry have a different format based on the [W3C Trace Context specification](https://www.w3.org/TR/trace-context/). A W3C trace ID must be formatted in the X-Ray trace ID format when sending to X-Ray. For example, a W3C trace ID 4efaaf4d1e8720b39541901950019ee5 should be formatted as 1-4efaaf4d-1e8720b39541901950019ee5 when sending to X-Ray. While X-Ray trace IDs include the original request timestamp in Unix epoch time, this is not required or validated. + /// /// - Parameter PutTraceSegmentsInput : [no documentation found] /// /// - Returns: `PutTraceSegmentsOutput` : [no documentation found] @@ -2039,6 +2392,77 @@ extension XRayClient { return try await op.execute(input: input) } + /// Performs the `StartTraceRetrieval` operation on the `AWSXRay` service. + /// + /// Initiates a trace retrieval process using the specified time range and for the give trace IDs on Transaction Search generated by the CloudWatch log group. For more information, see [Transaction Search](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search.html). API returns a RetrievalToken, which can be used with ListRetrievedTraces or GetRetrievedTracesGraph to fetch results. Retrievals will time out after 60 minutes. To execute long time ranges, consider segmenting into multiple retrievals. If you are using [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html), you can use this operation in a monitoring account to retrieve data from a linked source account, as long as both accounts have transaction search enabled. For retrieving data from X-Ray directly as opposed to the Transaction-Search Log group, see [BatchGetTraces](https://docs.aws.amazon.com/xray/latest/api/API_BatchGetTraces.html). + /// + /// - Parameter StartTraceRetrievalInput : [no documentation found] + /// + /// - Returns: `StartTraceRetrievalOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidRequestException` : The request is missing required parameters or has invalid parameters. + /// - `ResourceNotFoundException` : The resource was not found. Verify that the name or Amazon Resource Name (ARN) of the resource is correct. + /// - `ThrottledException` : The request exceeds the maximum number of requests per second. + public func startTraceRetrieval(input: StartTraceRetrievalInput) async throws -> StartTraceRetrievalOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "startTraceRetrieval") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "xray") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(StartTraceRetrievalInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: StartTraceRetrievalInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(StartTraceRetrievalOutput.httpOutput(from:), StartTraceRetrievalOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: XRayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "XRay") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "StartTraceRetrieval") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `TagResource` operation on the `AWSXRay` service. /// /// Applies tags to an existing Amazon Web Services X-Ray group or sampling rule. @@ -2252,6 +2676,77 @@ extension XRayClient { return try await op.execute(input: input) } + /// Performs the `UpdateIndexingRule` operation on the `AWSXRay` service. + /// + /// Modifies an indexing rule’s configuration. Indexing rules are used for determining the sampling rate for spans indexed from CloudWatch Logs. For more information, see [Transaction Search](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search.html). + /// + /// - Parameter UpdateIndexingRuleInput : [no documentation found] + /// + /// - Returns: `UpdateIndexingRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidRequestException` : The request is missing required parameters or has invalid parameters. + /// - `ResourceNotFoundException` : The resource was not found. Verify that the name or Amazon Resource Name (ARN) of the resource is correct. + /// - `ThrottledException` : The request exceeds the maximum number of requests per second. + public func updateIndexingRule(input: UpdateIndexingRuleInput) async throws -> UpdateIndexingRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "updateIndexingRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "xray") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateIndexingRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateIndexingRuleInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateIndexingRuleOutput.httpOutput(from:), UpdateIndexingRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: XRayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "XRay") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateIndexingRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `UpdateSamplingRule` operation on the `AWSXRay` service. /// /// Modifies a sampling rule's configuration. @@ -2322,4 +2817,74 @@ extension XRayClient { return try await op.execute(input: input) } + /// Performs the `UpdateTraceSegmentDestination` operation on the `AWSXRay` service. + /// + /// Modifies the destination of data sent to PutTraceSegments. The Transaction Search feature requires the CloudWatchLogs destination. For more information, see [Transaction Search](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search.html). + /// + /// - Parameter UpdateTraceSegmentDestinationInput : [no documentation found] + /// + /// - Returns: `UpdateTraceSegmentDestinationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidRequestException` : The request is missing required parameters or has invalid parameters. + /// - `ThrottledException` : The request exceeds the maximum number of requests per second. + public func updateTraceSegmentDestination(input: UpdateTraceSegmentDestinationInput) async throws -> UpdateTraceSegmentDestinationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "updateTraceSegmentDestination") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "xray") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateTraceSegmentDestinationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateTraceSegmentDestinationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateTraceSegmentDestinationOutput.httpOutput(from:), UpdateTraceSegmentDestinationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: XRayClient.version, config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "XRay") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateTraceSegmentDestination") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + } From b506c4847d3b493448661a36d5134ab84ab4a54f Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Thu, 21 Nov 2024 15:41:03 -0600 Subject: [PATCH 4/4] fix: Change logger params to @autoclosures (#1827) --- .../Middlewares/FlexibleChecksumsMiddlewareTests.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/Core/AWSClientRuntime/Tests/AWSClientRuntimeTests/Middlewares/FlexibleChecksumsMiddlewareTests.swift b/Sources/Core/AWSClientRuntime/Tests/AWSClientRuntimeTests/Middlewares/FlexibleChecksumsMiddlewareTests.swift index 87a9368b3e6..d4b8efc6381 100644 --- a/Sources/Core/AWSClientRuntime/Tests/AWSClientRuntimeTests/Middlewares/FlexibleChecksumsMiddlewareTests.swift +++ b/Sources/Core/AWSClientRuntime/Tests/AWSClientRuntimeTests/Middlewares/FlexibleChecksumsMiddlewareTests.swift @@ -394,8 +394,8 @@ class TestLogger: LogAgent { self.level = level } - func log(level: LogAgentLevel = .info, message: String, metadata: [String : String]? = nil, source: String = "ChecksumUnitTests", file: String = #file, function: String = #function, line: UInt = #line) { - messages.append((level: level, message: message)) + func log(level: LogAgentLevel = .info, message: @autoclosure () -> String, metadata: @autoclosure () -> [String : String]? = nil, source: @autoclosure () -> String = "ChecksumUnitTests", file: String = #file, function: String = #function, line: UInt = #line) { + messages.append((level: level, message: message())) } }