diff --git a/CHANGELOG.md b/CHANGELOG.md index 3377f81eaf..c0502f6f4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ +Release v1.44.127 (2022-10-31) +=== + +### Service Client Updates +* `service/apprunner`: Updates service API, documentation, and paginators +* `service/connect`: Updates service API and documentation +* `service/ec2`: Updates service API, documentation, and paginators + * Elastic IP transfer is a new Amazon VPC feature that allows you to transfer your Elastic IP addresses from one AWS Account to another. +* `service/iot`: Updates service API and documentation + * This release adds the Amazon Location action to IoT Rules Engine. +* `service/logs`: Updates service API and documentation + * SDK release to support tagging for destinations and log groups with TagResource. Also supports tag on create with PutDestination. +* `service/sesv2`: Updates service API, documentation, and paginators +* `service/textract`: Updates service API and documentation + Release v1.44.126 (2022-10-28) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 4a912a3812..8bc65154c3 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -10930,6 +10930,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-southeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-3", + }: endpoint{}, endpointKey{ Region: "ca-central-1", }: endpoint{}, @@ -20683,6 +20686,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-southeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-3", + }: endpoint{}, endpointKey{ Region: "ca-central-1", }: endpoint{}, diff --git a/aws/version.go b/aws/version.go index f9745e514d..d416809d63 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.44.126" +const SDKVersion = "1.44.127" diff --git a/models/apis/apprunner/2020-05-15/api-2.json b/models/apis/apprunner/2020-05-15/api-2.json index 2d8873dc5c..f9021f14e9 100644 --- a/models/apis/apprunner/2020-05-15/api-2.json +++ b/models/apis/apprunner/2020-05-15/api-2.json @@ -97,6 +97,21 @@ {"shape":"ServiceQuotaExceededException"} ] }, + "CreateVpcIngressConnection":{ + "name":"CreateVpcIngressConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcIngressConnectionRequest"}, + "output":{"shape":"CreateVpcIngressConnectionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidStateException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"ServiceQuotaExceededException"} + ] + }, "DeleteAutoScalingConfiguration":{ "name":"DeleteAutoScalingConfiguration", "http":{ @@ -168,6 +183,21 @@ {"shape":"ResourceNotFoundException"} ] }, + "DeleteVpcIngressConnection":{ + "name":"DeleteVpcIngressConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcIngressConnectionRequest"}, + "output":{"shape":"DeleteVpcIngressConnectionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidStateException"} + ] + }, "DescribeAutoScalingConfiguration":{ "name":"DescribeAutoScalingConfiguration", "http":{ @@ -238,6 +268,20 @@ {"shape":"ResourceNotFoundException"} ] }, + "DescribeVpcIngressConnection":{ + "name":"DescribeVpcIngressConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcIngressConnectionRequest"}, + "output":{"shape":"DescribeVpcIngressConnectionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "DisassociateCustomDomain":{ "name":"DisassociateCustomDomain", "http":{ @@ -347,6 +391,19 @@ {"shape":"InternalServiceErrorException"} ] }, + "ListVpcIngressConnections":{ + "name":"ListVpcIngressConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListVpcIngressConnectionsRequest"}, + "output":{"shape":"ListVpcIngressConnectionsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceErrorException"} + ] + }, "PauseService":{ "name":"PauseService", "http":{ @@ -435,6 +492,21 @@ {"shape":"InvalidStateException"}, {"shape":"InternalServiceErrorException"} ] + }, + "UpdateVpcIngressConnection":{ + "name":"UpdateVpcIngressConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateVpcIngressConnectionRequest"}, + "output":{"shape":"UpdateVpcIngressConnectionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidStateException"}, + {"shape":"InternalServiceErrorException"} + ] } }, "shapes":{ @@ -476,12 +548,14 @@ "required":[ "DNSTarget", "ServiceArn", - "CustomDomain" + "CustomDomain", + "VpcDNSTargets" ], "members":{ "DNSTarget":{"shape":"String"}, "ServiceArn":{"shape":"AppRunnerResourceArn"}, - "CustomDomain":{"shape":"CustomDomain"} + "CustomDomain":{"shape":"CustomDomain"}, + "VpcDNSTargets":{"shape":"VpcDNSTargetList"} } }, "AuthenticationConfiguration":{ @@ -743,6 +817,27 @@ "VpcConnector":{"shape":"VpcConnector"} } }, + "CreateVpcIngressConnectionRequest":{ + "type":"structure", + "required":[ + "ServiceArn", + "VpcIngressConnectionName", + "IngressVpcConfiguration" + ], + "members":{ + "ServiceArn":{"shape":"AppRunnerResourceArn"}, + "VpcIngressConnectionName":{"shape":"VpcIngressConnectionName"}, + "IngressVpcConfiguration":{"shape":"IngressVpcConfiguration"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateVpcIngressConnectionResponse":{ + "type":"structure", + "required":["VpcIngressConnection"], + "members":{ + "VpcIngressConnection":{"shape":"VpcIngressConnection"} + } + }, "CustomDomain":{ "type":"structure", "required":[ @@ -773,6 +868,12 @@ "type":"list", "member":{"shape":"CustomDomain"} }, + "CustomerAccountId":{ + "type":"string", + "max":12, + "min":12, + "pattern":"[0-9]{12}" + }, "DeleteAutoScalingConfigurationRequest":{ "type":"structure", "required":["AutoScalingConfigurationArn"], @@ -846,6 +947,20 @@ "VpcConnector":{"shape":"VpcConnector"} } }, + "DeleteVpcIngressConnectionRequest":{ + "type":"structure", + "required":["VpcIngressConnectionArn"], + "members":{ + "VpcIngressConnectionArn":{"shape":"AppRunnerResourceArn"} + } + }, + "DeleteVpcIngressConnectionResponse":{ + "type":"structure", + "required":["VpcIngressConnection"], + "members":{ + "VpcIngressConnection":{"shape":"VpcIngressConnection"} + } + }, "DescribeAutoScalingConfigurationRequest":{ "type":"structure", "required":["AutoScalingConfigurationArn"], @@ -879,12 +994,14 @@ "required":[ "DNSTarget", "ServiceArn", - "CustomDomains" + "CustomDomains", + "VpcDNSTargets" ], "members":{ "DNSTarget":{"shape":"String"}, "ServiceArn":{"shape":"AppRunnerResourceArn"}, "CustomDomains":{"shape":"CustomDomainList"}, + "VpcDNSTargets":{"shape":"VpcDNSTargetList"}, "NextToken":{"shape":"String"} } }, @@ -930,6 +1047,20 @@ "VpcConnector":{"shape":"VpcConnector"} } }, + "DescribeVpcIngressConnectionRequest":{ + "type":"structure", + "required":["VpcIngressConnectionArn"], + "members":{ + "VpcIngressConnectionArn":{"shape":"AppRunnerResourceArn"} + } + }, + "DescribeVpcIngressConnectionResponse":{ + "type":"structure", + "required":["VpcIngressConnection"], + "members":{ + "VpcIngressConnection":{"shape":"VpcIngressConnection"} + } + }, "DisassociateCustomDomainRequest":{ "type":"structure", "required":[ @@ -946,12 +1077,14 @@ "required":[ "DNSTarget", "ServiceArn", - "CustomDomain" + "CustomDomain", + "VpcDNSTargets" ], "members":{ "DNSTarget":{"shape":"String"}, "ServiceArn":{"shape":"AppRunnerResourceArn"}, - "CustomDomain":{"shape":"CustomDomain"} + "CustomDomain":{"shape":"CustomDomain"}, + "VpcDNSTargets":{"shape":"VpcDNSTargetList"} } }, "DomainName":{ @@ -1060,6 +1193,19 @@ "ECR_PUBLIC" ] }, + "IngressConfiguration":{ + "type":"structure", + "members":{ + "IsPubliclyAccessible":{"shape":"Boolean"} + } + }, + "IngressVpcConfiguration":{ + "type":"structure", + "members":{ + "VpcId":{"shape":"String"}, + "VpcEndpointId":{"shape":"String"} + } + }, "InstanceConfiguration":{ "type":"structure", "members":{ @@ -1211,6 +1357,29 @@ "NextToken":{"shape":"NextToken"} } }, + "ListVpcIngressConnectionsFilter":{ + "type":"structure", + "members":{ + "ServiceArn":{"shape":"AppRunnerResourceArn"}, + "VpcEndpointId":{"shape":"String"} + } + }, + "ListVpcIngressConnectionsRequest":{ + "type":"structure", + "members":{ + "Filter":{"shape":"ListVpcIngressConnectionsFilter"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListVpcIngressConnectionsResponse":{ + "type":"structure", + "required":["VpcIngressConnectionSummaryList"], + "members":{ + "VpcIngressConnectionSummaryList":{"shape":"VpcIngressConnectionSummaryList"}, + "NextToken":{"shape":"NextToken"} + } + }, "MaxResults":{ "type":"integer", "max":100, @@ -1225,7 +1394,8 @@ "NetworkConfiguration":{ "type":"structure", "members":{ - "EgressConfiguration":{"shape":"EgressConfiguration"} + "EgressConfiguration":{"shape":"EgressConfiguration"}, + "IngressConfiguration":{"shape":"IngressConfiguration"} } }, "NextToken":{ @@ -1398,7 +1568,6 @@ "ServiceName", "ServiceId", "ServiceArn", - "ServiceUrl", "CreatedAt", "UpdatedAt", "Status", @@ -1638,6 +1807,24 @@ "OperationId":{"shape":"UUID"} } }, + "UpdateVpcIngressConnectionRequest":{ + "type":"structure", + "required":[ + "VpcIngressConnectionArn", + "IngressVpcConfiguration" + ], + "members":{ + "VpcIngressConnectionArn":{"shape":"AppRunnerResourceArn"}, + "IngressVpcConfiguration":{"shape":"IngressVpcConfiguration"} + } + }, + "UpdateVpcIngressConnectionResponse":{ + "type":"structure", + "required":["VpcIngressConnection"], + "members":{ + "VpcIngressConnection":{"shape":"VpcIngressConnection"} + } + }, "VpcConnector":{ "type":"structure", "members":{ @@ -1667,6 +1854,62 @@ "VpcConnectors":{ "type":"list", "member":{"shape":"VpcConnector"} + }, + "VpcDNSTarget":{ + "type":"structure", + "members":{ + "VpcIngressConnectionArn":{"shape":"AppRunnerResourceArn"}, + "VpcId":{"shape":"String"}, + "DomainName":{"shape":"DomainName"} + } + }, + "VpcDNSTargetList":{ + "type":"list", + "member":{"shape":"VpcDNSTarget"} + }, + "VpcIngressConnection":{ + "type":"structure", + "members":{ + "VpcIngressConnectionArn":{"shape":"AppRunnerResourceArn"}, + "VpcIngressConnectionName":{"shape":"VpcIngressConnectionName"}, + "ServiceArn":{"shape":"AppRunnerResourceArn"}, + "Status":{"shape":"VpcIngressConnectionStatus"}, + "AccountId":{"shape":"CustomerAccountId"}, + "DomainName":{"shape":"DomainName"}, + "IngressVpcConfiguration":{"shape":"IngressVpcConfiguration"}, + "CreatedAt":{"shape":"Timestamp"}, + "DeletedAt":{"shape":"Timestamp"} + } + }, + "VpcIngressConnectionName":{ + "type":"string", + "max":40, + "min":4, + "pattern":"[A-Za-z0-9][A-Za-z0-9\\-_]{3,39}" + }, + "VpcIngressConnectionStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "PENDING_CREATION", + "PENDING_UPDATE", + "PENDING_DELETION", + "FAILED_CREATION", + "FAILED_UPDATE", + "FAILED_DELETION", + "DELETED" + ] + }, + "VpcIngressConnectionSummary":{ + "type":"structure", + "members":{ + "VpcIngressConnectionArn":{"shape":"AppRunnerResourceArn"}, + "ServiceArn":{"shape":"AppRunnerResourceArn"} + } + }, + "VpcIngressConnectionSummaryList":{ + "type":"list", + "member":{"shape":"VpcIngressConnectionSummary"} } } } diff --git a/models/apis/apprunner/2020-05-15/docs-2.json b/models/apis/apprunner/2020-05-15/docs-2.json index 28a18220e2..dc296f3b13 100644 --- a/models/apis/apprunner/2020-05-15/docs-2.json +++ b/models/apis/apprunner/2020-05-15/docs-2.json @@ -8,16 +8,19 @@ "CreateObservabilityConfiguration": "

Create an App Runner observability configuration resource. App Runner requires this resource when you create or update App Runner services and you want to enable non-default observability features. You can share an observability configuration across multiple services.

Create multiple revisions of a configuration by calling this action multiple times using the same ObservabilityConfigurationName. The call returns incremental ObservabilityConfigurationRevision values. When you create a service and configure an observability configuration resource, the service uses the latest active revision of the observability configuration by default. You can optionally configure the service to use a specific revision.

The observability configuration resource is designed to configure multiple features (currently one feature, tracing). This action takes optional parameters that describe the configuration of these features (currently one parameter, TraceConfiguration). If you don't specify a feature parameter, App Runner doesn't enable the feature.

", "CreateService": "

Create an App Runner service. After the service is created, the action also automatically starts a deployment.

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

", "CreateVpcConnector": "

Create an App Runner VPC connector resource. App Runner requires this resource when you want to associate your App Runner service to a custom Amazon Virtual Private Cloud (Amazon VPC).

", + "CreateVpcIngressConnection": "

Create an App Runner VPC Ingress Connection resource. App Runner requires this resource when you want to associate your App Runner service with an Amazon VPC endpoint.

", "DeleteAutoScalingConfiguration": "

Delete an App Runner automatic scaling configuration resource. You can delete a specific revision or the latest active revision. You can't delete a configuration that's used by one or more App Runner services.

", "DeleteConnection": "

Delete an App Runner connection. You must first ensure that there are no running App Runner services that use this connection. If there are any, the DeleteConnection action fails.

", "DeleteObservabilityConfiguration": "

Delete an App Runner observability configuration resource. You can delete a specific revision or the latest active revision. You can't delete a configuration that's used by one or more App Runner services.

", - "DeleteService": "

Delete an App Runner service.

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

", + "DeleteService": "

Delete an App Runner service.

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

Make sure that you don't have any active VPCIngressConnections associated with the service you want to delete.

", "DeleteVpcConnector": "

Delete an App Runner VPC connector resource. You can't delete a connector that's used by one or more App Runner services.

", + "DeleteVpcIngressConnection": "

Delete an App Runner VPC Ingress Connection resource that's associated with an App Runner service. The VPC Ingress Connection must be in one of the following states to be deleted:

", "DescribeAutoScalingConfiguration": "

Return a full description of an App Runner automatic scaling configuration resource.

", "DescribeCustomDomains": "

Return a description of custom domain names that are associated with an App Runner service.

", "DescribeObservabilityConfiguration": "

Return a full description of an App Runner observability configuration resource.

", "DescribeService": "

Return a full description of an App Runner service.

", "DescribeVpcConnector": "

Return a description of an App Runner VPC connector resource.

", + "DescribeVpcIngressConnection": "

Return a full description of an App Runner VPC Ingress Connection resource.

", "DisassociateCustomDomain": "

Disassociate a custom domain name from an App Runner service.

Certificates tracking domain validity are associated with a custom domain and are stored in AWS Certificate Manager (ACM). These certificates aren't deleted as part of this action. App Runner delays certificate deletion for 30 days after a domain is disassociated from your service.

", "ListAutoScalingConfigurations": "

Returns a list of active App Runner automatic scaling configurations in your Amazon Web Services account. You can query the revisions for a specific configuration name or the revisions for all active configurations in your account. You can optionally query only the latest revision of each requested name.

To retrieve a full description of a particular configuration revision, call and provide one of the ARNs returned by ListAutoScalingConfigurations.

", "ListConnections": "

Returns a list of App Runner connections that are associated with your Amazon Web Services account.

", @@ -26,12 +29,14 @@ "ListServices": "

Returns a list of running App Runner services in your Amazon Web Services account.

", "ListTagsForResource": "

List tags that are associated with for an App Runner resource. The response contains a list of tag key-value pairs.

", "ListVpcConnectors": "

Returns a list of App Runner VPC connectors in your Amazon Web Services account.

", + "ListVpcIngressConnections": "

Return a list of App Runner VPC Ingress Connections in your Amazon Web Services account.

", "PauseService": "

Pause an active App Runner service. App Runner reduces compute capacity for the service to zero and loses state (for example, ephemeral storage is removed).

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

", "ResumeService": "

Resume an active App Runner service. App Runner provisions compute capacity for the service.

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

", "StartDeployment": "

Initiate a manual deployment of the latest commit in a source code repository or the latest image in a source image repository to an App Runner service.

For a source code repository, App Runner retrieves the commit and builds a Docker image. For a source image repository, App Runner retrieves the latest Docker image. In both cases, App Runner then deploys the new image to your service and starts a new container instance.

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

", "TagResource": "

Add tags to, or update the tag values of, an App Runner resource. A tag is a key-value pair.

", "UntagResource": "

Remove tags from an App Runner resource.

", - "UpdateService": "

Update an App Runner service. You can update the source configuration and instance configuration of the service. You can also update the ARN of the auto scaling configuration resource that's associated with the service. However, you can't change the name or the encryption configuration of the service. These can be set only when you create the service.

To update the tags applied to your service, use the separate actions TagResource and UntagResource.

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

" + "UpdateService": "

Update an App Runner service. You can update the source configuration and instance configuration of the service. You can also update the ARN of the auto scaling configuration resource that's associated with the service. However, you can't change the name or the encryption configuration of the service. These can be set only when you create the service.

To update the tags applied to your service, use the separate actions TagResource and UntagResource.

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

", + "UpdateVpcIngressConnection": "

Update an existing App Runner VPC Ingress Connection resource. The VPC Ingress Connection must be in one of the following states to be updated:

" }, "shapes": { "ASConfigMaxConcurrency": { @@ -63,22 +68,26 @@ "Connection$ConnectionArn": "

The Amazon Resource Name (ARN) of this connection.

", "ConnectionSummary$ConnectionArn": "

The Amazon Resource Name (ARN) of this connection.

", "CreateServiceRequest$AutoScalingConfigurationArn": "

The Amazon Resource Name (ARN) of an App Runner automatic scaling configuration resource that you want to associate with your service. If not provided, App Runner associates the latest revision of a default auto scaling configuration.

Specify an ARN with a name and a revision number to associate that revision. For example: arn:aws:apprunner:us-east-1:123456789012:autoscalingconfiguration/high-availability/3

Specify just the name to associate the latest revision. For example: arn:aws:apprunner:us-east-1:123456789012:autoscalingconfiguration/high-availability

", + "CreateVpcIngressConnectionRequest$ServiceArn": "

The Amazon Resource Name (ARN) for this App Runner service that is used to create the VPC Ingress Connection resource.

", "DeleteAutoScalingConfigurationRequest$AutoScalingConfigurationArn": "

The Amazon Resource Name (ARN) of the App Runner auto scaling configuration that you want to delete.

The ARN can be a full auto scaling configuration ARN, or a partial ARN ending with either .../name or .../name/revision . If a revision isn't specified, the latest active revision is deleted.

", "DeleteConnectionRequest$ConnectionArn": "

The Amazon Resource Name (ARN) of the App Runner connection that you want to delete.

", "DeleteObservabilityConfigurationRequest$ObservabilityConfigurationArn": "

The Amazon Resource Name (ARN) of the App Runner observability configuration that you want to delete.

The ARN can be a full observability configuration ARN, or a partial ARN ending with either .../name or .../name/revision . If a revision isn't specified, the latest active revision is deleted.

", "DeleteServiceRequest$ServiceArn": "

The Amazon Resource Name (ARN) of the App Runner service that you want to delete.

", "DeleteVpcConnectorRequest$VpcConnectorArn": "

The Amazon Resource Name (ARN) of the App Runner VPC connector that you want to delete.

The ARN must be a full VPC connector ARN.

", + "DeleteVpcIngressConnectionRequest$VpcIngressConnectionArn": "

The Amazon Resource Name (ARN) of the App Runner VPC Ingress Connection that you want to delete.

", "DescribeAutoScalingConfigurationRequest$AutoScalingConfigurationArn": "

The Amazon Resource Name (ARN) of the App Runner auto scaling configuration that you want a description for.

The ARN can be a full auto scaling configuration ARN, or a partial ARN ending with either .../name or .../name/revision . If a revision isn't specified, the latest active revision is described.

", "DescribeCustomDomainsRequest$ServiceArn": "

The Amazon Resource Name (ARN) of the App Runner service that you want associated custom domain names to be described for.

", "DescribeCustomDomainsResponse$ServiceArn": "

The Amazon Resource Name (ARN) of the App Runner service whose associated custom domain names you want to describe.

", "DescribeObservabilityConfigurationRequest$ObservabilityConfigurationArn": "

The Amazon Resource Name (ARN) of the App Runner observability configuration that you want a description for.

The ARN can be a full observability configuration ARN, or a partial ARN ending with either .../name or .../name/revision . If a revision isn't specified, the latest active revision is described.

", "DescribeServiceRequest$ServiceArn": "

The Amazon Resource Name (ARN) of the App Runner service that you want a description for.

", "DescribeVpcConnectorRequest$VpcConnectorArn": "

The Amazon Resource Name (ARN) of the App Runner VPC connector that you want a description for.

The ARN must be a full VPC connector ARN.

", + "DescribeVpcIngressConnectionRequest$VpcIngressConnectionArn": "

The Amazon Resource Name (ARN) of the App Runner VPC Ingress Connection that you want a description for.

", "DisassociateCustomDomainRequest$ServiceArn": "

The Amazon Resource Name (ARN) of the App Runner service that you want to disassociate a custom domain name from.

", "DisassociateCustomDomainResponse$ServiceArn": "

The Amazon Resource Name (ARN) of the App Runner service that a custom domain name is disassociated from.

", "EgressConfiguration$VpcConnectorArn": "

The Amazon Resource Name (ARN) of the App Runner VPC connector that you want to associate with your App Runner service. Only valid when EgressType = VPC.

", "ListOperationsRequest$ServiceArn": "

The Amazon Resource Name (ARN) of the App Runner service that you want a list of operations for.

", "ListTagsForResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource that a tag list is requested for.

It must be the ARN of an App Runner resource.

", + "ListVpcIngressConnectionsFilter$ServiceArn": "

The Amazon Resource Name (ARN) of a service to filter by.

", "ObservabilityConfiguration$ObservabilityConfigurationArn": "

The Amazon Resource Name (ARN) of this observability configuration.

", "ObservabilityConfigurationSummary$ObservabilityConfigurationArn": "

The Amazon Resource Name (ARN) of this observability configuration.

", "OperationSummary$TargetArn": "

The Amazon Resource Name (ARN) of the resource that the operation acted on (for example, an App Runner service).

", @@ -92,7 +101,13 @@ "UntagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource that you want to remove tags from.

It must be the ARN of an App Runner resource.

", "UpdateServiceRequest$ServiceArn": "

The Amazon Resource Name (ARN) of the App Runner service that you want to update.

", "UpdateServiceRequest$AutoScalingConfigurationArn": "

The Amazon Resource Name (ARN) of an App Runner automatic scaling configuration resource that you want to associate with the App Runner service.

", - "VpcConnector$VpcConnectorArn": "

The Amazon Resource Name (ARN) of this VPC connector.

" + "UpdateVpcIngressConnectionRequest$VpcIngressConnectionArn": "

The Amazon Resource Name (Arn) for the App Runner VPC Ingress Connection resource that you want to update.

", + "VpcConnector$VpcConnectorArn": "

The Amazon Resource Name (ARN) of this VPC connector.

", + "VpcDNSTarget$VpcIngressConnectionArn": "

The Amazon Resource Name (ARN) of the VPC Ingress Connection that is associated with your service.

", + "VpcIngressConnection$VpcIngressConnectionArn": "

The Amazon Resource Name (ARN) of the VPC Ingress Connection.

", + "VpcIngressConnection$ServiceArn": "

The Amazon Resource Name (ARN) of the service associated with the VPC Ingress Connection.

", + "VpcIngressConnectionSummary$VpcIngressConnectionArn": "

The Amazon Resource Name (ARN) of the VPC Ingress Connection.

", + "VpcIngressConnectionSummary$ServiceArn": "

The Amazon Resource Name (ARN) of the service associated with the VPC Ingress Connection.

" } }, "AssociateCustomDomainRequest": { @@ -151,6 +166,7 @@ "base": null, "refs": { "AutoScalingConfiguration$Latest": "

It's set to true for the configuration with the highest Revision among all configurations that share the same AutoScalingConfigurationName. It's set to false otherwise.

", + "IngressConfiguration$IsPubliclyAccessible": "

Specifies whether your App Runner service is publicly accessible. To make the service publicly accessible set it to True. To make the service privately accessible, from only within an Amazon VPC set it to False.

", "ListAutoScalingConfigurationsRequest$LatestOnly": "

Set to true to list only the latest revision for each requested configuration name.

Set to false to list all revisions for each requested configuration name.

Default: true

", "ListObservabilityConfigurationsRequest$LatestOnly": "

Set to true to list only the latest revision for each requested configuration name.

Set to false to list all revisions for each requested configuration name.

Default: true

", "ObservabilityConfiguration$Latest": "

It's set to true for the configuration with the highest Revision among all configurations that share the same ObservabilityConfigurationName. It's set to false otherwise.

", @@ -296,6 +312,16 @@ "refs": { } }, + "CreateVpcIngressConnectionRequest": { + "base": null, + "refs": { + } + }, + "CreateVpcIngressConnectionResponse": { + "base": null, + "refs": { + } + }, "CustomDomain": { "base": "

Describes a custom domain that's associated with an App Runner service.

", "refs": { @@ -316,6 +342,12 @@ "DescribeCustomDomainsResponse$CustomDomains": "

A list of descriptions of custom domain names that are associated with the service. In a paginated request, the request returns up to MaxResults records per call.

" } }, + "CustomerAccountId": { + "base": null, + "refs": { + "VpcIngressConnection$AccountId": "

The Account Id you use to create the VPC Ingress Connection resource.

" + } + }, "DeleteAutoScalingConfigurationRequest": { "base": null, "refs": { @@ -366,6 +398,16 @@ "refs": { } }, + "DeleteVpcIngressConnectionRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpcIngressConnectionResponse": { + "base": null, + "refs": { + } + }, "DescribeAutoScalingConfigurationRequest": { "base": null, "refs": { @@ -422,6 +464,16 @@ "refs": { } }, + "DescribeVpcIngressConnectionRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcIngressConnectionResponse": { + "base": null, + "refs": { + } + }, "DisassociateCustomDomainRequest": { "base": null, "refs": { @@ -437,7 +489,9 @@ "refs": { "AssociateCustomDomainRequest$DomainName": "

A custom domain endpoint to associate. Specify a root domain (for example, example.com), a subdomain (for example, login.example.com or admin.login.example.com), or a wildcard (for example, *.example.com).

", "CustomDomain$DomainName": "

An associated custom domain endpoint. It can be a root domain (for example, example.com), a subdomain (for example, login.example.com or admin.login.example.com), or a wildcard (for example, *.example.com).

", - "DisassociateCustomDomainRequest$DomainName": "

The domain name that you want to disassociate from the App Runner service.

" + "DisassociateCustomDomainRequest$DomainName": "

The domain name that you want to disassociate from the App Runner service.

", + "VpcDNSTarget$DomainName": "

The domain name of your target DNS that is associated with the Amazon VPC.

", + "VpcIngressConnection$DomainName": "

The domain name associated with the VPC Ingress Connection resource.

" } }, "EgressConfiguration": { @@ -537,6 +591,20 @@ "ImageRepository$ImageRepositoryType": "

The type of the image repository. This reflects the repository provider and whether the repository is private or public.

" } }, + "IngressConfiguration": { + "base": "

Network configuration settings for inbound network traffic.

", + "refs": { + "NetworkConfiguration$IngressConfiguration": "

Network configuration settings for inbound message traffic.

" + } + }, + "IngressVpcConfiguration": { + "base": "

The configuration of your VPC and the associated VPC endpoint. The VPC endpoint is an Amazon Web Services PrivateLink resource that allows access to your App Runner services from within an Amazon VPC.

", + "refs": { + "CreateVpcIngressConnectionRequest$IngressVpcConfiguration": "

Specifications for the customer’s Amazon VPC and the related Amazon Web Services PrivateLink VPC endpoint that are used to create the VPC Ingress Connection resource.

", + "UpdateVpcIngressConnectionRequest$IngressVpcConfiguration": "

Specifications for the customer’s Amazon VPC and the related Amazon Web Services PrivateLink VPC endpoint that are used to update the VPC Ingress Connection resource.

", + "VpcIngressConnection$IngressVpcConfiguration": "

Specifications for the customer’s VPC and related PrivateLink VPC endpoint that are used to associate with the VPC Ingress Connection resource.

" + } + }, "InstanceConfiguration": { "base": "

Describes the runtime configuration of an App Runner service instance (scaling unit).

", "refs": { @@ -655,13 +723,30 @@ "refs": { } }, + "ListVpcIngressConnectionsFilter": { + "base": "

Returns a list of VPC Ingress Connections based on the filter provided. It can return either ServiceArn or VpcEndpointId, or both.

", + "refs": { + "ListVpcIngressConnectionsRequest$Filter": "

The VPC Ingress Connections to be listed based on either the Service Arn or Vpc Endpoint Id, or both.

" + } + }, + "ListVpcIngressConnectionsRequest": { + "base": null, + "refs": { + } + }, + "ListVpcIngressConnectionsResponse": { + "base": null, + "refs": { + } + }, "MaxResults": { "base": null, "refs": { "ListAutoScalingConfigurationsRequest$MaxResults": "

The maximum number of results to include in each response (result page). It's used for a paginated request.

If you don't specify MaxResults, the request retrieves all available results in a single response.

", "ListConnectionsRequest$MaxResults": "

The maximum number of results to include in each response (result page). Used for a paginated request.

If you don't specify MaxResults, the request retrieves all available results in a single response.

", "ListObservabilityConfigurationsRequest$MaxResults": "

The maximum number of results to include in each response (result page). It's used for a paginated request.

If you don't specify MaxResults, the request retrieves all available results in a single response.

", - "ListVpcConnectorsRequest$MaxResults": "

The maximum number of results to include in each response (result page). It's used for a paginated request.

If you don't specify MaxResults, the request retrieves all available results in a single response.

" + "ListVpcConnectorsRequest$MaxResults": "

The maximum number of results to include in each response (result page). It's used for a paginated request.

If you don't specify MaxResults, the request retrieves all available results in a single response.

", + "ListVpcIngressConnectionsRequest$MaxResults": "

The maximum number of results to include in each response (result page). It's used for a paginated request.

If you don't specify MaxResults, the request retrieves all available results in a single response.

" } }, "Memory": { @@ -688,7 +773,9 @@ "ListObservabilityConfigurationsRequest$NextToken": "

A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones that are specified in the initial request.

If you don't specify NextToken, the request retrieves the first result page.

", "ListObservabilityConfigurationsResponse$NextToken": "

The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.

", "ListVpcConnectorsRequest$NextToken": "

A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones that are specified in the initial request.

If you don't specify NextToken, the request retrieves the first result page.

", - "ListVpcConnectorsResponse$NextToken": "

The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.

" + "ListVpcConnectorsResponse$NextToken": "

The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.

", + "ListVpcIngressConnectionsRequest$NextToken": "

A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones that are specified in the initial request.

If you don't specify NextToken, the request retrieves the first result page.

", + "ListVpcIngressConnectionsResponse$NextToken": "

The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.

" } }, "NullableBoolean": { @@ -938,14 +1025,18 @@ "DescribeCustomDomainsResponse$NextToken": "

The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.

", "DisassociateCustomDomainResponse$DNSTarget": "

The App Runner subdomain of the App Runner service. The disassociated custom domain name was mapped to this target name.

", "ImageConfiguration$Port": "

The port that your application listens to in the container.

Default: 8080

", + "IngressVpcConfiguration$VpcId": "

The ID of the VPC that is used for the VPC endpoint.

", + "IngressVpcConfiguration$VpcEndpointId": "

The ID of the VPC endpoint that your App Runner service connects to.

", "ListOperationsRequest$NextToken": "

A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones specified in the initial request.

If you don't specify NextToken, the request retrieves the first result page.

", "ListOperationsResponse$NextToken": "

The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.

", "ListServicesRequest$NextToken": "

A token from a previous result page. Used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones specified in the initial request.

If you don't specify NextToken, the request retrieves the first result page.

", "ListServicesResponse$NextToken": "

The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.

", + "ListVpcIngressConnectionsFilter$VpcEndpointId": "

The ID of a VPC Endpoint to filter by.

", "Service$ServiceUrl": "

A subdomain URL that App Runner generated for this service. You can use this URL to access your service web application.

", "ServiceSummary$ServiceUrl": "

A subdomain URL that App Runner generated for this service. You can use this URL to access your service web application.

", "SourceCodeVersion$Value": "

A source code version.

For a git-based repository, a branch name maps to a specific version. App Runner uses the most recent commit to the branch.

", - "StringList$member": null + "StringList$member": null, + "VpcDNSTarget$VpcId": "

The ID of the Amazon VPC that is associated with the custom domain name of the target DNS.

" } }, "StringList": { @@ -984,6 +1075,7 @@ "CreateObservabilityConfigurationRequest$Tags": "

A list of metadata items that you can associate with your observability configuration resource. A tag is a key-value pair.

", "CreateServiceRequest$Tags": "

An optional list of metadata items that you can associate with the App Runner service resource. A tag is a key-value pair.

", "CreateVpcConnectorRequest$Tags": "

A list of metadata items that you can associate with your VPC connector resource. A tag is a key-value pair.

", + "CreateVpcIngressConnectionRequest$Tags": "

An optional list of metadata items that you can associate with the VPC Ingress Connection resource. A tag is a key-value pair.

", "ListTagsForResourceResponse$Tags": "

A list of the tag key-value pairs that are associated with the resource.

", "TagResourceRequest$Tags": "

A list of tag key-value pairs to add or update. If a key is new to the resource, the tag is added with the provided value. If a key is already associated with the resource, the value of the tag is updated.

" } @@ -1022,7 +1114,9 @@ "ServiceSummary$CreatedAt": "

The time when the App Runner service was created. It's in the Unix time stamp format.

", "ServiceSummary$UpdatedAt": "

The time when the App Runner service was last updated. It's in theUnix time stamp format.

", "VpcConnector$CreatedAt": "

The time when the VPC connector was created. It's in Unix time stamp format.

", - "VpcConnector$DeletedAt": "

The time when the VPC connector was deleted. It's in Unix time stamp format.

" + "VpcConnector$DeletedAt": "

The time when the VPC connector was deleted. It's in Unix time stamp format.

", + "VpcIngressConnection$CreatedAt": "

The time when the VPC Ingress Connection was created. It's in the Unix time stamp format.

", + "VpcIngressConnection$DeletedAt": "

The time when the App Runner service was deleted. It's in the Unix time stamp format.

" } }, "TraceConfiguration": { @@ -1070,6 +1164,16 @@ "refs": { } }, + "UpdateVpcIngressConnectionRequest": { + "base": null, + "refs": { + } + }, + "UpdateVpcIngressConnectionResponse": { + "base": null, + "refs": { + } + }, "VpcConnector": { "base": "

Describes an App Runner VPC connector resource. A VPC connector describes the Amazon Virtual Private Cloud (Amazon VPC) that an App Runner service is associated with, and the subnets and security group that are used.

Multiple revisions of a connector might have the same Name and different Revision values.

At this time, App Runner supports only one revision per name.

", "refs": { @@ -1097,6 +1201,54 @@ "refs": { "ListVpcConnectorsResponse$VpcConnectors": "

A list of information records for VPC connectors. In a paginated request, the request returns up to MaxResults records for each call.

" } + }, + "VpcDNSTarget": { + "base": "

DNS Target record for a custom domain of this Amazon VPC.

", + "refs": { + "VpcDNSTargetList$member": null + } + }, + "VpcDNSTargetList": { + "base": null, + "refs": { + "AssociateCustomDomainResponse$VpcDNSTargets": "

DNS Target records for the custom domains of this Amazon VPC.

", + "DescribeCustomDomainsResponse$VpcDNSTargets": "

DNS Target records for the custom domains of this Amazon VPC.

", + "DisassociateCustomDomainResponse$VpcDNSTargets": "

DNS Target records for the custom domains of this Amazon VPC.

" + } + }, + "VpcIngressConnection": { + "base": "

The App Runner resource that specifies an App Runner endpoint for incoming traffic. It establishes a connection between a VPC interface endpoint and a App Runner service, to make your App Runner service accessible from only within an Amazon VPC.

", + "refs": { + "CreateVpcIngressConnectionResponse$VpcIngressConnection": "

A description of the App Runner VPC Ingress Connection resource that's created by this request.

", + "DeleteVpcIngressConnectionResponse$VpcIngressConnection": "

A description of the App Runner VPC Ingress Connection that this request just deleted.

", + "DescribeVpcIngressConnectionResponse$VpcIngressConnection": "

A description of the App Runner VPC Ingress Connection that you specified in this request.

", + "UpdateVpcIngressConnectionResponse$VpcIngressConnection": "

A description of the App Runner VPC Ingress Connection resource that's updated by this request.

" + } + }, + "VpcIngressConnectionName": { + "base": null, + "refs": { + "CreateVpcIngressConnectionRequest$VpcIngressConnectionName": "

A name for the VPC Ingress Connection resource. It must be unique across all the active VPC Ingress Connections in your Amazon Web Services account in the Amazon Web Services Region.

", + "VpcIngressConnection$VpcIngressConnectionName": "

The customer-provided VPC Ingress Connection name.

" + } + }, + "VpcIngressConnectionStatus": { + "base": null, + "refs": { + "VpcIngressConnection$Status": "

The current status of the VPC Ingress Connection. The VPC Ingress Connection displays one of the following statuses: AVAILABLE, PENDING_CREATION, PENDING_UPDATE, PENDING_DELETION,FAILED_CREATION, FAILED_UPDATE, FAILED_DELETION, and DELETED..

" + } + }, + "VpcIngressConnectionSummary": { + "base": "

Provides summary information about an VPC Ingress Connection, which includes its VPC Ingress Connection ARN and its associated Service ARN.

", + "refs": { + "VpcIngressConnectionSummaryList$member": null + } + }, + "VpcIngressConnectionSummaryList": { + "base": null, + "refs": { + "ListVpcIngressConnectionsResponse$VpcIngressConnectionSummaryList": "

A list of summary information records for VPC Ingress Connections. In a paginated request, the request returns up to MaxResults records for each call.

" + } } } } diff --git a/models/apis/apprunner/2020-05-15/endpoint-tests-1.json b/models/apis/apprunner/2020-05-15/endpoint-tests-1.json index 38ca6f23be..7173b9a6e0 100644 --- a/models/apis/apprunner/2020-05-15/endpoint-tests-1.json +++ b/models/apis/apprunner/2020-05-15/endpoint-tests-1.json @@ -9,8 +9,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-west-2" } }, { @@ -22,8 +22,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-west-2" } }, { @@ -35,8 +35,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-west-2" } }, { @@ -48,8 +48,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-west-2" } }, { @@ -61,8 +61,8 @@ }, "params": { "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "eu-west-1" } }, { @@ -74,8 +74,8 @@ }, "params": { "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "eu-west-1" } }, { @@ -87,8 +87,8 @@ }, "params": { "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "eu-west-1" } }, { @@ -100,8 +100,8 @@ }, "params": { "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "eu-west-1" } }, { @@ -113,8 +113,8 @@ }, "params": { "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "ap-northeast-1" } }, { @@ -126,8 +126,8 @@ }, "params": { "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { @@ -139,8 +139,8 @@ }, "params": { "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "ap-northeast-1" } }, { @@ -152,8 +152,8 @@ }, "params": { "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { @@ -165,8 +165,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-east-1" } }, { @@ -178,8 +178,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-1" } }, { @@ -191,8 +191,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-east-1" } }, { @@ -204,8 +204,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-1" } }, { @@ -217,8 +217,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-east-2" } }, { @@ -230,8 +230,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-2" } }, { @@ -243,8 +243,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-east-2" } }, { @@ -256,8 +256,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-2" } }, { @@ -269,8 +269,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -281,8 +281,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -293,8 +293,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/models/apis/apprunner/2020-05-15/paginators-1.json b/models/apis/apprunner/2020-05-15/paginators-1.json index 6b9365da08..e360ded205 100644 --- a/models/apis/apprunner/2020-05-15/paginators-1.json +++ b/models/apis/apprunner/2020-05-15/paginators-1.json @@ -34,6 +34,11 @@ "input_token": "NextToken", "output_token": "NextToken", "limit_key": "MaxResults" + }, + "ListVpcIngressConnections": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" } } } diff --git a/models/apis/connect/2017-08-08/api-2.json b/models/apis/connect/2017-08-08/api-2.json index 6761643805..db741ae5b7 100644 --- a/models/apis/connect/2017-08-08/api-2.json +++ b/models/apis/connect/2017-08-08/api-2.json @@ -1104,6 +1104,23 @@ {"shape":"ThrottlingException"} ] }, + "DismissUserContact":{ + "name":"DismissUserContact", + "http":{ + "method":"POST", + "requestUri":"/users/{InstanceId}/{UserId}/contact" + }, + "input":{"shape":"DismissUserContactRequest"}, + "output":{"shape":"DismissUserContactResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServiceException"} + ] + }, "GetContactAttributes":{ "name":"GetContactAttributes", "http":{ @@ -4791,6 +4808,32 @@ } } }, + "DismissUserContactRequest":{ + "type":"structure", + "required":[ + "UserId", + "InstanceId", + "ContactId" + ], + "members":{ + "UserId":{ + "shape":"UserId", + "location":"uri", + "locationName":"UserId" + }, + "InstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"InstanceId" + }, + "ContactId":{"shape":"ContactId"} + } + }, + "DismissUserContactResponse":{ + "type":"structure", + "members":{ + } + }, "DisplayName":{ "type":"string", "max":256, diff --git a/models/apis/connect/2017-08-08/docs-2.json b/models/apis/connect/2017-08-08/docs-2.json index 4d7e26306c..3e6be7d929 100644 --- a/models/apis/connect/2017-08-08/docs-2.json +++ b/models/apis/connect/2017-08-08/docs-2.json @@ -69,6 +69,7 @@ "DisassociateQueueQuickConnects": "

This API is in preview release for Amazon Connect and is subject to change.

Disassociates a set of quick connects from a queue.

", "DisassociateRoutingProfileQueues": "

Disassociates a set of queues from a routing profile.

", "DisassociateSecurityKey": "

This API is in preview release for Amazon Connect and is subject to change.

Deletes the specified security key.

", + "DismissUserContact": "

Dismisses contacts from an agent’s CCP and returns the agent to an available state, which allows the agent to receive a new routed contact. Contacts can only be dismissed if they are in a MISSED, ERROR, ENDED, or REJECTED state in the Agent Event Stream.

", "GetContactAttributes": "

Retrieves the contact attributes for the specified contact.

", "GetCurrentMetricData": "

Gets the real-time metric data from the specified Amazon Connect instance.

For a description of each metric, see Real-time Metrics Definitions in the Amazon Connect Administrator Guide.

", "GetCurrentUserData": "

Gets the real-time active user data from the specified Amazon Connect instance.

", @@ -155,7 +156,7 @@ "UpdateRoutingProfileQueues": "

Updates the properties associated with a set of queues for a routing profile.

", "UpdateSecurityProfile": "

This API is in preview release for Amazon Connect and is subject to change.

Updates a security profile.

", "UpdateTaskTemplate": "

Updates details about a specific task template in the specified Amazon Connect instance. This operation does not support partial updates. Instead it does a full update of template content.

", - "UpdateTrafficDistribution": "

Updates the traffic distribution for a given traffic distribution group. For more information about updating a traffic distribution group see Update telephony traffic distribution across Amazon Web Services Regions in the Amazon Connect Administrator Guide.

", + "UpdateTrafficDistribution": "

Updates the traffic distribution for a given traffic distribution group.

For more information about updating a traffic distribution group, see Update telephony traffic distribution across Amazon Web Services Regions in the Amazon Connect Administrator Guide.

", "UpdateUserHierarchy": "

Assigns the specified hierarchy group to the specified user.

", "UpdateUserHierarchyGroupName": "

Updates the name of the user hierarchy group.

", "UpdateUserHierarchyStructure": "

Updates the user hierarchy structure: add, remove, and rename user hierarchy levels.

", @@ -886,6 +887,7 @@ "Contact$InitialContactId": "

If this contact is related to other contacts, this is the ID of the initial contact.

", "Contact$PreviousContactId": "

If this contact is not the first contact, this is the ID of the previous contact.

", "DescribeContactRequest$ContactId": "

The identifier of the contact.

", + "DismissUserContactRequest$ContactId": "

The identifier of the contact.

", "GetContactAttributesRequest$InitialContactId": "

The identifier of the initial contact.

", "ListContactReferencesRequest$ContactId": "

The identifier of the initial contact.

", "ResumeContactRecordingRequest$ContactId": "

The identifier of the contact.

", @@ -1553,6 +1555,16 @@ "refs": { } }, + "DismissUserContactRequest": { + "base": null, + "refs": { + } + }, + "DismissUserContactResponse": { + "base": null, + "refs": { + } + }, "DisplayName": { "base": null, "refs": { @@ -2069,6 +2081,7 @@ "DisassociateQueueQuickConnectsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", "DisassociateRoutingProfileQueuesRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", "DisassociateSecurityKeyRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "DismissUserContactRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", "GetContactAttributesRequest$InstanceId": "

The identifier of the Amazon Connect instance.

", "GetCurrentMetricDataRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", "GetCurrentUserDataRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", @@ -4737,6 +4750,7 @@ "CreateUserResponse$UserId": "

The identifier of the user account.

", "DeleteUserRequest$UserId": "

The identifier of the user.

", "DescribeUserRequest$UserId": "

The identifier of the user account.

", + "DismissUserContactRequest$UserId": "

The identifier of the user account.

", "PutUserStatusRequest$UserId": "

The identifier of the user.

", "UpdateUserHierarchyRequest$UserId": "

The identifier of the user account.

", "UpdateUserIdentityInfoRequest$UserId": "

The identifier of the user account.

", diff --git a/models/apis/connect/2017-08-08/endpoint-rule-set-1.json b/models/apis/connect/2017-08-08/endpoint-rule-set-1.json index d8c233102d..0781a9dd7a 100644 --- a/models/apis/connect/2017-08-08/endpoint-rule-set-1.json +++ b/models/apis/connect/2017-08-08/endpoint-rule-set-1.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, diff --git a/models/apis/ec2/2016-11-15/api-2.json b/models/apis/ec2/2016-11-15/api-2.json index 1853264f92..6dadccd08d 100755 --- a/models/apis/ec2/2016-11-15/api-2.json +++ b/models/apis/ec2/2016-11-15/api-2.json @@ -12,6 +12,15 @@ "xmlNamespace":"http://ec2.amazonaws.com/doc/2016-11-15" }, "operations":{ + "AcceptAddressTransfer":{ + "name":"AcceptAddressTransfer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AcceptAddressTransferRequest"}, + "output":{"shape":"AcceptAddressTransferResult"} + }, "AcceptReservedInstancesExchangeQuote":{ "name":"AcceptReservedInstancesExchangeQuote", "http":{ @@ -1784,6 +1793,15 @@ "input":{"shape":"DescribeAccountAttributesRequest"}, "output":{"shape":"DescribeAccountAttributesResult"} }, + "DescribeAddressTransfers":{ + "name":"DescribeAddressTransfers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAddressTransfersRequest"}, + "output":{"shape":"DescribeAddressTransfersResult"} + }, "DescribeAddresses":{ "name":"DescribeAddresses", "http":{ @@ -3032,6 +3050,15 @@ }, "input":{"shape":"DetachVpnGatewayRequest"} }, + "DisableAddressTransfer":{ + "name":"DisableAddressTransfer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableAddressTransferRequest"}, + "output":{"shape":"DisableAddressTransferResult"} + }, "DisableEbsEncryptionByDefault":{ "name":"DisableEbsEncryptionByDefault", "http":{ @@ -3227,6 +3254,15 @@ "input":{"shape":"DisassociateVpcCidrBlockRequest"}, "output":{"shape":"DisassociateVpcCidrBlockResult"} }, + "EnableAddressTransfer":{ + "name":"EnableAddressTransfer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableAddressTransferRequest"}, + "output":{"shape":"EnableAddressTransferResult"} + }, "EnableEbsEncryptionByDefault":{ "name":"EnableEbsEncryptionByDefault", "http":{ @@ -4928,6 +4964,27 @@ "locationName":"item" } }, + "AcceptAddressTransferRequest":{ + "type":"structure", + "required":["Address"], + "members":{ + "Address":{"shape":"String"}, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "locationName":"TagSpecification" + }, + "DryRun":{"shape":"Boolean"} + } + }, + "AcceptAddressTransferResult":{ + "type":"structure", + "members":{ + "AddressTransfer":{ + "shape":"AddressTransfer", + "locationName":"addressTransfer" + } + } + }, "AcceptReservedInstancesExchangeQuoteRequest":{ "type":"structure", "required":["ReservedInstanceIds"], @@ -5393,6 +5450,50 @@ "locationName":"item" } }, + "AddressTransfer":{ + "type":"structure", + "members":{ + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + }, + "AllocationId":{ + "shape":"String", + "locationName":"allocationId" + }, + "TransferAccountId":{ + "shape":"String", + "locationName":"transferAccountId" + }, + "TransferOfferExpirationTimestamp":{ + "shape":"MillisecondDateTime", + "locationName":"transferOfferExpirationTimestamp" + }, + "TransferOfferAcceptedTimestamp":{ + "shape":"MillisecondDateTime", + "locationName":"transferOfferAcceptedTimestamp" + }, + "AddressTransferStatus":{ + "shape":"AddressTransferStatus", + "locationName":"addressTransferStatus" + } + } + }, + "AddressTransferList":{ + "type":"list", + "member":{ + "shape":"AddressTransfer", + "locationName":"item" + } + }, + "AddressTransferStatus":{ + "type":"string", + "enum":[ + "pending", + "disabled", + "accepted" + ] + }, "AdvertiseByoipCidrRequest":{ "type":"structure", "required":["Cidr"], @@ -12955,6 +13056,36 @@ } } }, + "DescribeAddressTransfersMaxResults":{ + "type":"integer", + "max":1000, + "min":5 + }, + "DescribeAddressTransfersRequest":{ + "type":"structure", + "members":{ + "AllocationIds":{ + "shape":"AllocationIdList", + "locationName":"AllocationId" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"DescribeAddressTransfersMaxResults"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DescribeAddressTransfersResult":{ + "type":"structure", + "members":{ + "AddressTransfers":{ + "shape":"AddressTransferList", + "locationName":"addressTransferSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, "DescribeAddressesAttributeRequest":{ "type":"structure", "members":{ @@ -17487,6 +17618,23 @@ "DirectoryId":{"shape":"String"} } }, + "DisableAddressTransferRequest":{ + "type":"structure", + "required":["AllocationId"], + "members":{ + "AllocationId":{"shape":"AllocationId"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DisableAddressTransferResult":{ + "type":"structure", + "members":{ + "AddressTransfer":{ + "shape":"AddressTransfer", + "locationName":"addressTransfer" + } + } + }, "DisableEbsEncryptionByDefaultRequest":{ "type":"structure", "members":{ @@ -18623,6 +18771,27 @@ "required" ] }, + "EnableAddressTransferRequest":{ + "type":"structure", + "required":[ + "AllocationId", + "TransferAccountId" + ], + "members":{ + "AllocationId":{"shape":"AllocationId"}, + "TransferAccountId":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "EnableAddressTransferResult":{ + "type":"structure", + "members":{ + "AddressTransfer":{ + "shape":"AddressTransfer", + "locationName":"addressTransfer" + } + } + }, "EnableEbsEncryptionByDefaultRequest":{ "type":"structure", "members":{ diff --git a/models/apis/ec2/2016-11-15/docs-2.json b/models/apis/ec2/2016-11-15/docs-2.json index 2c9ffe7eb2..229856c2c6 100755 --- a/models/apis/ec2/2016-11-15/docs-2.json +++ b/models/apis/ec2/2016-11-15/docs-2.json @@ -2,6 +2,7 @@ "version": "2.0", "service": "Amazon Elastic Compute Cloud

Amazon Elastic Compute Cloud (Amazon EC2) provides secure and resizable computing capacity in the Amazon Web Services Cloud. Using Amazon EC2 eliminates the need to invest in hardware up front, so you can develop and deploy applications faster. Amazon Virtual Private Cloud (Amazon VPC) enables you to provision a logically isolated section of the Amazon Web Services Cloud where you can launch Amazon Web Services resources in a virtual network that you've defined. Amazon Elastic Block Store (Amazon EBS) provides block level storage volumes for use with EC2 instances. EBS volumes are highly available and reliable storage volumes that can be attached to any running instance and used like a hard drive.

To learn more, see the following resources:

", "operations": { + "AcceptAddressTransfer": "

Accepts an Elastic IP address transfer. For more information, see Accept a transferred Elastic IP address in the Amazon Virtual Private Cloud User Guide.

", "AcceptReservedInstancesExchangeQuote": "

Accepts the Convertible Reserved Instance exchange quote described in the GetReservedInstancesExchangeQuote call.

", "AcceptTransitGatewayMulticastDomainAssociations": "

Accepts a request to associate subnets with a transit gateway multicast domain.

", "AcceptTransitGatewayPeeringAttachment": "

Accepts a transit gateway peering attachment request. The peering attachment must be in the pendingAcceptance state.

", @@ -202,6 +203,7 @@ "DeregisterTransitGatewayMulticastGroupMembers": "

Deregisters the specified members (network interfaces) from the transit gateway multicast group.

", "DeregisterTransitGatewayMulticastGroupSources": "

Deregisters the specified sources (network interfaces) from the transit gateway multicast group.

", "DescribeAccountAttributes": "

Describes attributes of your Amazon Web Services account. The following are the supported account attributes:

We are retiring EC2-Classic on August 15, 2022. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide.

", + "DescribeAddressTransfers": "

Describes an Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon Virtual Private Cloud User Guide.

", "DescribeAddresses": "

Describes the specified Elastic IP addresses or all of your Elastic IP addresses.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

", "DescribeAddressesAttribute": "

Describes the attributes of the specified Elastic IP addresses. For requirements, see Using reverse DNS for email applications.

", "DescribeAggregateIdFormat": "

Describes the longer ID format settings for all resource types in a specific Region. This request is useful for performing a quick audit to determine whether a specific Region is fully opted in for longer IDs (17-character IDs).

This request only returns information about resource types that support longer IDs.

The following resource types support longer IDs: bundle | conversion-task | customer-gateway | dhcp-options | elastic-ip-allocation | elastic-ip-association | export-task | flow-log | image | import-task | instance | internet-gateway | network-acl | network-acl-association | network-interface | network-interface-attachment | prefix-list | reservation | route-table | route-table-association | security-group | snapshot | subnet | subnet-cidr-block-association | volume | vpc | vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

", @@ -341,6 +343,7 @@ "DetachNetworkInterface": "

Detaches a network interface from an instance.

", "DetachVolume": "

Detaches an EBS volume from an instance. Make sure to unmount any file systems on the device within your operating system before detaching the volume. Failure to do so can result in the volume becoming stuck in the busy state while detaching. If this happens, detachment can be delayed indefinitely until you unmount the volume, force detachment, reboot the instance, or all three. If an EBS volume is the root device of an instance, it can't be detached while the instance is running. To detach the root volume, stop the instance first.

When a volume with an Amazon Web Services Marketplace product code is detached from an instance, the product code is no longer associated with the instance.

For more information, see Detach an Amazon EBS volume in the Amazon Elastic Compute Cloud User Guide.

", "DetachVpnGateway": "

Detaches a virtual private gateway from a VPC. You do this if you're planning to turn off the VPC and not use it anymore. You can confirm a virtual private gateway has been completely detached from a VPC by describing the virtual private gateway (any attachments to the virtual private gateway are also described).

You must wait for the attachment's state to switch to detached before you can delete the VPC or attach a different VPC to the virtual private gateway.

", + "DisableAddressTransfer": "

Disables Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon Virtual Private Cloud User Guide.

", "DisableEbsEncryptionByDefault": "

Disables EBS encryption by default for your account in the current Region.

After you disable encryption by default, you can still create encrypted volumes by enabling encryption when you create each volume.

Disabling encryption by default does not change the encryption status of your existing volumes.

For more information, see Amazon EBS encryption in the Amazon Elastic Compute Cloud User Guide.

", "DisableFastLaunch": "

Discontinue faster launching for a Windows AMI, and clean up existing pre-provisioned snapshots. When you disable faster launching, the AMI uses the standard launch process for each instance. All pre-provisioned snapshots must be removed before you can enable faster launching again.

To change these settings, you must own the AMI.

", "DisableFastSnapshotRestores": "

Disables fast snapshot restores for the specified snapshots in the specified Availability Zones.

", @@ -363,6 +366,7 @@ "DisassociateTransitGatewayRouteTable": "

Disassociates a resource attachment from a transit gateway route table.

", "DisassociateTrunkInterface": "

This API action is currently in limited preview only. If you are interested in using this feature, contact your account manager.

Removes an association between a branch network interface with a trunk network interface.

", "DisassociateVpcCidrBlock": "

Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you must specify its association ID. You can get the association ID by using DescribeVpcs. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.

You cannot disassociate the CIDR block with which you originally created the VPC (the primary CIDR block).

", + "EnableAddressTransfer": "

Enables Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon Virtual Private Cloud User Guide.

", "EnableEbsEncryptionByDefault": "

Enables EBS encryption by default for your account in the current Region.

After you enable encryption by default, the EBS volumes that you create are always encrypted, either using the default KMS key or the KMS key that you specified when you created each volume. For more information, see Amazon EBS encryption in the Amazon Elastic Compute Cloud User Guide.

You can specify the default KMS key for encryption by default using ModifyEbsDefaultKmsKeyId or ResetEbsDefaultKmsKeyId.

Enabling encryption by default has no effect on the encryption status of your existing volumes.

After you enable encryption by default, you can no longer launch instances using instance types that do not support encryption. For more information, see Supported instance types.

", "EnableFastLaunch": "

When you enable faster launching for a Windows AMI, images are pre-provisioned, using snapshots to launch instances up to 65% faster. To create the optimized Windows image, Amazon EC2 launches an instance and runs through Sysprep steps, rebooting as required. Then it creates a set of reserved snapshots that are used for subsequent launches. The reserved snapshots are automatically replenished as they are used, depending on your settings for launch frequency.

To change these settings, you must own the AMI.

", "EnableFastSnapshotRestores": "

Enables fast snapshot restores for the specified snapshots in the specified Availability Zones.

You get the full benefit of fast snapshot restores after they enter the enabled state. To get the current state of fast snapshot restores, use DescribeFastSnapshotRestores. To disable fast snapshot restores, use DisableFastSnapshotRestores.

For more information, see Amazon EBS fast snapshot restore in the Amazon Elastic Compute Cloud User Guide.

", @@ -609,6 +613,16 @@ "InstanceRequirementsRequest$AcceleratorTypes": "

The accelerator types that must be on the instance type.

Default: Any accelerator type

" } }, + "AcceptAddressTransferRequest": { + "base": null, + "refs": { + } + }, + "AcceptAddressTransferResult": { + "base": null, + "refs": { + } + }, "AcceptReservedInstancesExchangeQuoteRequest": { "base": "

Contains the parameters for accepting the quote.

", "refs": { @@ -858,6 +872,27 @@ "DescribeAddressesAttributeResult$Addresses": "

Information about the IP addresses.

" } }, + "AddressTransfer": { + "base": "

Details on the Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon Virtual Private Cloud User Guide.

", + "refs": { + "AcceptAddressTransferResult$AddressTransfer": "

An Elastic IP address transfer.

", + "AddressTransferList$member": null, + "DisableAddressTransferResult$AddressTransfer": "

An Elastic IP address transfer.

", + "EnableAddressTransferResult$AddressTransfer": "

An Elastic IP address transfer.

" + } + }, + "AddressTransferList": { + "base": null, + "refs": { + "DescribeAddressTransfersResult$AddressTransfers": "

The Elastic IP address transfer.

" + } + }, + "AddressTransferStatus": { + "base": null, + "refs": { + "AddressTransfer$AddressTransferStatus": "

The Elastic IP address transfer status.

" + } + }, "AdvertiseByoipCidrRequest": { "base": null, "refs": { @@ -912,6 +947,8 @@ "AllocationIds$member": null, "AssociateAddressRequest$AllocationId": "

[EC2-VPC] The allocation ID. This is required for EC2-VPC.

", "CreateNatGatewayRequest$AllocationId": "

[Public NAT gateways only] The allocation ID of an Elastic IP address to associate with the NAT gateway. You cannot specify an Elastic IP address with a private NAT gateway. If the Elastic IP address is associated with another resource, you must first disassociate it.

", + "DisableAddressTransferRequest$AllocationId": "

The allocation ID of an Elastic IP address.

", + "EnableAddressTransferRequest$AllocationId": "

The allocation ID of an Elastic IP address.

", "ModifyAddressAttributeRequest$AllocationId": "

[EC2-VPC] The allocation ID.

", "ReleaseAddressRequest$AllocationId": "

[EC2-VPC] The allocation ID. Required for EC2-VPC.

", "ResetAddressAttributeRequest$AllocationId": "

[EC2-VPC] The allocation ID.

" @@ -920,6 +957,7 @@ "AllocationIdList": { "base": null, "refs": { + "DescribeAddressTransfersRequest$AllocationIds": "

The allocation IDs of Elastic IP addresses.

", "DescribeAddressesRequest$AllocationIds": "

[EC2-VPC] Information about the allocation IDs.

" } }, @@ -1690,6 +1728,7 @@ "Boolean": { "base": null, "refs": { + "AcceptAddressTransferRequest$DryRun": "

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.

", "AcceptReservedInstancesExchangeQuoteRequest$DryRun": "

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.

", "AcceptTransitGatewayMulticastDomainAssociationsRequest$DryRun": "

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.

", "AcceptTransitGatewayPeeringAttachmentRequest$DryRun": "

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.

", @@ -1937,6 +1976,7 @@ "DeregisterTransitGatewayMulticastGroupMembersRequest$DryRun": "

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.

", "DeregisterTransitGatewayMulticastGroupSourcesRequest$DryRun": "

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.

", "DescribeAccountAttributesRequest$DryRun": "

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.

", + "DescribeAddressTransfersRequest$DryRun": "

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.

", "DescribeAddressesAttributeRequest$DryRun": "

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.

", "DescribeAddressesRequest$DryRun": "

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.

", "DescribeAggregateIdFormatRequest$DryRun": "

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.

", @@ -2078,6 +2118,7 @@ "DetachVolumeRequest$Force": "

Forces detachment if the previous detachment attempt did not occur cleanly (for example, logging into an instance, unmounting the volume, and detaching normally). This option can lead to data loss or a corrupted file system. Use this option only as a last resort to detach a volume from a failed instance. The instance won't have an opportunity to flush file system caches or file system metadata. If you use this option, you must perform file system check and repair procedures.

", "DetachVolumeRequest$DryRun": "

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.

", "DetachVpnGatewayRequest$DryRun": "

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.

", + "DisableAddressTransferRequest$DryRun": "

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.

", "DisableEbsEncryptionByDefaultRequest$DryRun": "

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.

", "DisableEbsEncryptionByDefaultResult$EbsEncryptionByDefault": "

The updated status of encryption by default.

", "DisableFastLaunchRequest$Force": "

Forces the image settings to turn off faster launching for your Windows AMI. This parameter overrides any errors that are encountered while cleaning up resources in your account.

", @@ -2110,6 +2151,7 @@ "EbsBlockDevice$Encrypted": "

Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Amazon EBS encryption in the Amazon EC2 User Guide.

In no case can you remove encryption from an encrypted volume.

Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see Supported instance types.

This parameter is not returned by DescribeImageAttribute.

", "EbsInstanceBlockDevice$DeleteOnTermination": "

Indicates whether the volume is deleted on instance termination.

", "EbsInstanceBlockDeviceSpecification$DeleteOnTermination": "

Indicates whether the volume is deleted on instance termination.

", + "EnableAddressTransferRequest$DryRun": "

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.

", "EnableEbsEncryptionByDefaultRequest$DryRun": "

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.

", "EnableEbsEncryptionByDefaultResult$EbsEncryptionByDefault": "

The updated status of encryption by default.

", "EnableFastLaunchRequest$DryRun": "

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.

", @@ -2595,7 +2637,7 @@ "AdvertiseByoipCidrResult$ByoipCidr": "

Information about the address range.

", "ByoipCidrSet$member": null, "DeprovisionByoipCidrResult$ByoipCidr": "

Information about the address range.

", - "MoveByoipCidrToIpamResult$ByoipCidr": null, + "MoveByoipCidrToIpamResult$ByoipCidr": "

The BYOIP CIDR.

", "ProvisionByoipCidrResult$ByoipCidr": "

Information about the address range.

", "WithdrawByoipCidrResult$ByoipCidr": "

Information about the address pool.

" } @@ -5331,6 +5373,22 @@ "refs": { } }, + "DescribeAddressTransfersMaxResults": { + "base": null, + "refs": { + "DescribeAddressTransfersRequest$MaxResults": "

The maximum number of address transfers to return in one page of results.

" + } + }, + "DescribeAddressTransfersRequest": { + "base": null, + "refs": { + } + }, + "DescribeAddressTransfersResult": { + "base": null, + "refs": { + } + }, "DescribeAddressesAttributeRequest": { "base": null, "refs": { @@ -7092,6 +7150,16 @@ "ClientVpnAuthenticationRequest$ActiveDirectory": "

Information about the Active Directory to be used, if applicable. You must provide this information if Type is directory-service-authentication.

" } }, + "DisableAddressTransferRequest": { + "base": null, + "refs": { + } + }, + "DisableAddressTransferResult": { + "base": null, + "refs": { + } + }, "DisableEbsEncryptionByDefaultRequest": { "base": null, "refs": { @@ -7745,6 +7813,16 @@ "NetworkInfo$EnaSupport": "

Indicates whether Elastic Network Adapter (ENA) is supported.

" } }, + "EnableAddressTransferRequest": { + "base": null, + "refs": { + } + }, + "EnableAddressTransferResult": { + "base": null, + "refs": { + } + }, "EnableEbsEncryptionByDefaultRequest": { "base": null, "refs": { @@ -11299,7 +11377,7 @@ "base": "

The CIDR for an IPAM resource.

", "refs": { "IpamResourceCidrSet$member": null, - "ModifyIpamResourceCidrResult$IpamResourceCidr": null + "ModifyIpamResourceCidrResult$IpamResourceCidr": "

The CIDR of the resource.

" } }, "IpamResourceCidrSet": { @@ -12677,6 +12755,8 @@ "MillisecondDateTime": { "base": null, "refs": { + "AddressTransfer$TransferOfferExpirationTimestamp": "

The timestamp when the Elastic IP address transfer expired. When the source account starts the transfer, the transfer account has seven hours to allocate the Elastic IP address to complete the transfer, or the Elastic IP address will return to its original owner.

", + "AddressTransfer$TransferOfferAcceptedTimestamp": "

The timestamp when the Elastic IP address transfer was accepted.

", "AthenaIntegration$PartitionStartDate": "

The start date for the partition.

", "AthenaIntegration$PartitionEndDate": "

The end date for the partition.

", "CapacityReservation$StartDate": "

The date and time at which the Capacity Reservation was started.

", @@ -14771,7 +14851,7 @@ "PublicIpv4PoolRange": { "base": "

Describes an address range of an IPv4 address pool.

", "refs": { - "ProvisionPublicIpv4PoolCidrResult$PoolAddressRange": null, + "ProvisionPublicIpv4PoolCidrResult$PoolAddressRange": "

Information about the address range of the public IPv4 pool.

", "PublicIpv4PoolRangeSet$member": null } }, @@ -15202,7 +15282,7 @@ "RequestIpamResourceTag": { "base": "

A tag on an IPAM resource.

", "refs": { - "GetIpamResourceCidrsRequest$ResourceTag": null, + "GetIpamResourceCidrsRequest$ResourceTag": "

The resource tag.

", "RequestIpamResourceTagList$member": null } }, @@ -16769,6 +16849,7 @@ "String": { "base": null, "refs": { + "AcceptAddressTransferRequest$Address": "

The Elastic IP address you are accepting for transfer.

", "AcceptReservedInstancesExchangeQuoteResult$ExchangeId": "

The ID of the successful exchange.

", "AccessScopeAnalysisFinding$FindingId": "

The ID of the finding.

", "AccountAttribute$AttributeName": "

The name of the account attribute.

", @@ -16796,6 +16877,9 @@ "Address$CustomerOwnedIpv4Pool": "

The ID of the customer-owned address pool.

", "Address$CarrierIp": "

The carrier IP address associated. This option is only available for network interfaces which reside in a subnet in a Wavelength Zone (for example an EC2 instance).

", "AddressAttribute$PtrRecord": "

The pointer (PTR) record for the IP address.

", + "AddressTransfer$PublicIp": "

The Elastic IP address being transferred.

", + "AddressTransfer$AllocationId": "

The allocation ID of an Elastic IP address.

", + "AddressTransfer$TransferAccountId": "

The ID of the account that you want to transfer the Elastic IP address to.

", "AdvertiseByoipCidrRequest$Cidr": "

The address range, in CIDR notation. This must be the exact range that you provisioned. You can't advertise only a portion of the provisioned range.

", "AllocateAddressRequest$NetworkBorderGroup": "

A unique set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services advertises IP addresses. Use this parameter to limit the IP address to this location. IP addresses cannot move between network border groups.

Use DescribeAvailabilityZones to view the network border groups.

You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 Classic, you receive an InvalidParameterCombination error.

", "AllocateAddressRequest$CustomerOwnedIpv4Pool": "

The ID of a customer-owned address pool. Use this parameter to let Amazon EC2 select an address from the address pool. Alternatively, specify a specific address from the address pool.

", @@ -17200,6 +17284,8 @@ "DeprovisionedAddressSet$member": null, "DeregisterTransitGatewayMulticastGroupMembersRequest$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", "DeregisterTransitGatewayMulticastGroupSourcesRequest$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", + "DescribeAddressTransfersRequest$NextToken": "

Specify the pagination token from a previous request to retrieve the next page of results.

", + "DescribeAddressTransfersResult$NextToken": "

Specify the pagination token from a previous request to retrieve the next page of results.

", "DescribeByoipCidrsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeCapacityReservationFleetsRequest$NextToken": "

The token to use to retrieve the next page of results.

", "DescribeCapacityReservationFleetsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", @@ -17432,6 +17518,7 @@ "ElasticInferenceAcceleratorAssociation$ElasticInferenceAcceleratorArn": "

The Amazon Resource Name (ARN) of the elastic inference accelerator.

", "ElasticInferenceAcceleratorAssociation$ElasticInferenceAcceleratorAssociationId": "

The ID of the association.

", "ElasticInferenceAcceleratorAssociation$ElasticInferenceAcceleratorAssociationState": "

The state of the elastic inference accelerator.

", + "EnableAddressTransferRequest$TransferAccountId": "

The ID of the account that you want to transfer the Elastic IP address to.

", "EnableFastLaunchRequest$ResourceType": "

The type of resource to use for pre-provisioning the Windows AMI for faster launching. Supported values include: snapshot, which is the default value.

", "EnableFastLaunchResult$OwnerId": "

The owner ID for the Windows AMI for which faster launching was enabled.

", "EnableFastLaunchResult$StateTransitionReason": "

The reason that the state changed for faster launching for the Windows AMI.

", @@ -18958,6 +19045,7 @@ "TagSpecificationList": { "base": null, "refs": { + "AcceptAddressTransferRequest$TagSpecifications": "

tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", "AllocateAddressRequest$TagSpecifications": "

The tags to assign to the Elastic IP address.

", "AllocateHostsRequest$TagSpecifications": "

The tags to apply to the Dedicated Host during creation.

", "AuthorizeSecurityGroupEgressRequest$TagSpecifications": "

The tags applied to the security group rule.

", diff --git a/models/apis/ec2/2016-11-15/endpoint-tests-1.json b/models/apis/ec2/2016-11-15/endpoint-tests-1.json index 96d0b0e0c6..7f83e4d3ca 100644 --- a/models/apis/ec2/2016-11-15/endpoint-tests-1.json +++ b/models/apis/ec2/2016-11-15/endpoint-tests-1.json @@ -8,8 +8,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-south-2", + "UseFIPS": true, "UseDualStack": true } }, @@ -21,8 +21,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-south-2", + "UseFIPS": true, "UseDualStack": false } }, @@ -34,8 +34,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-south-2", + "UseFIPS": false, "UseDualStack": true } }, @@ -47,8 +47,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-south-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -60,8 +60,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-south-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -73,8 +73,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-south-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -86,8 +86,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-south-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -99,8 +99,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-south-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -112,8 +112,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-south-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -125,8 +125,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-south-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -138,8 +138,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-south-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -151,8 +151,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-south-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -164,8 +164,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-south-2", + "UseFIPS": true, "UseDualStack": true } }, @@ -177,8 +177,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-south-2", + "UseFIPS": true, "UseDualStack": false } }, @@ -190,8 +190,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-south-2", + "UseFIPS": false, "UseDualStack": true } }, @@ -203,8 +203,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-south-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -216,8 +216,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-gov-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -229,8 +229,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-gov-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -242,8 +242,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-gov-east-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -255,8 +255,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-gov-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -268,8 +268,8 @@ } }, "params": { - "UseFIPS": true, "Region": "me-central-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -281,8 +281,8 @@ } }, "params": { - "UseFIPS": true, "Region": "me-central-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -294,8 +294,8 @@ } }, "params": { - "UseFIPS": false, "Region": "me-central-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -307,8 +307,8 @@ } }, "params": { - "UseFIPS": false, "Region": "me-central-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -320,8 +320,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ca-central-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -333,8 +333,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ca-central-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -346,8 +346,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ca-central-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -359,8 +359,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ca-central-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -372,8 +372,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-central-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -385,8 +385,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-central-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -398,8 +398,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-central-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -411,8 +411,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-central-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -422,8 +422,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, "Region": "us-iso-west-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -435,8 +435,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-iso-west-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -446,8 +446,8 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, "Region": "us-iso-west-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -459,8 +459,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-iso-west-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -472,8 +472,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-central-2", + "UseFIPS": true, "UseDualStack": true } }, @@ -485,8 +485,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-central-2", + "UseFIPS": true, "UseDualStack": false } }, @@ -498,8 +498,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-central-2", + "UseFIPS": false, "UseDualStack": true } }, @@ -511,8 +511,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-central-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -524,8 +524,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-west-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -537,8 +537,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-west-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -550,8 +550,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-west-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -563,8 +563,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-west-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -576,8 +576,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-west-2", + "UseFIPS": true, "UseDualStack": true } }, @@ -589,8 +589,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-west-2", + "UseFIPS": true, "UseDualStack": false } }, @@ -602,8 +602,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-west-2", + "UseFIPS": false, "UseDualStack": true } }, @@ -615,8 +615,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-west-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -628,8 +628,8 @@ } }, "params": { - "UseFIPS": true, "Region": "af-south-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -641,8 +641,8 @@ } }, "params": { - "UseFIPS": true, "Region": "af-south-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -654,8 +654,8 @@ } }, "params": { - "UseFIPS": false, "Region": "af-south-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -667,8 +667,8 @@ } }, "params": { - "UseFIPS": false, "Region": "af-south-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -680,8 +680,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-north-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -693,8 +693,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-north-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -706,8 +706,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-north-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -719,8 +719,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-north-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -732,8 +732,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-west-3", + "UseFIPS": true, "UseDualStack": true } }, @@ -745,8 +745,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-west-3", + "UseFIPS": true, "UseDualStack": false } }, @@ -758,8 +758,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-west-3", + "UseFIPS": false, "UseDualStack": true } }, @@ -771,8 +771,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-west-3", + "UseFIPS": false, "UseDualStack": false } }, @@ -784,8 +784,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-west-2", + "UseFIPS": true, "UseDualStack": true } }, @@ -797,8 +797,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-west-2", + "UseFIPS": true, "UseDualStack": false } }, @@ -810,8 +810,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-west-2", + "UseFIPS": false, "UseDualStack": true } }, @@ -823,8 +823,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-west-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -836,8 +836,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-west-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -849,8 +849,8 @@ } }, "params": { - "UseFIPS": true, "Region": "eu-west-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -862,8 +862,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-west-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -875,8 +875,8 @@ } }, "params": { - "UseFIPS": false, "Region": "eu-west-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -888,8 +888,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-northeast-3", + "UseFIPS": true, "UseDualStack": true } }, @@ -901,8 +901,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-northeast-3", + "UseFIPS": true, "UseDualStack": false } }, @@ -914,8 +914,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-3", + "UseFIPS": false, "UseDualStack": true } }, @@ -927,8 +927,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-3", + "UseFIPS": false, "UseDualStack": false } }, @@ -940,8 +940,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-northeast-2", + "UseFIPS": true, "UseDualStack": true } }, @@ -953,8 +953,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-northeast-2", + "UseFIPS": true, "UseDualStack": false } }, @@ -966,8 +966,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-2", + "UseFIPS": false, "UseDualStack": true } }, @@ -979,8 +979,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -992,8 +992,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-northeast-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1005,8 +1005,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-northeast-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1018,8 +1018,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1031,8 +1031,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1044,8 +1044,8 @@ } }, "params": { - "UseFIPS": true, "Region": "me-south-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1057,8 +1057,8 @@ } }, "params": { - "UseFIPS": true, "Region": "me-south-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1070,8 +1070,8 @@ } }, "params": { - "UseFIPS": false, "Region": "me-south-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1083,8 +1083,8 @@ } }, "params": { - "UseFIPS": false, "Region": "me-south-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1096,8 +1096,8 @@ } }, "params": { - "UseFIPS": true, "Region": "sa-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1109,8 +1109,8 @@ } }, "params": { - "UseFIPS": true, "Region": "sa-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1122,8 +1122,8 @@ } }, "params": { - "UseFIPS": false, "Region": "sa-east-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1135,8 +1135,8 @@ } }, "params": { - "UseFIPS": false, "Region": "sa-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1148,8 +1148,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1161,8 +1161,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1174,8 +1174,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-east-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1187,8 +1187,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1200,8 +1200,8 @@ } }, "params": { - "UseFIPS": true, "Region": "cn-north-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1213,8 +1213,8 @@ } }, "params": { - "UseFIPS": true, "Region": "cn-north-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1226,8 +1226,8 @@ } }, "params": { - "UseFIPS": false, "Region": "cn-north-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1239,8 +1239,8 @@ } }, "params": { - "UseFIPS": false, "Region": "cn-north-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1252,8 +1252,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ca-west-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1265,8 +1265,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ca-west-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1278,8 +1278,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ca-west-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1291,8 +1291,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ca-west-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1304,8 +1304,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-gov-west-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1317,8 +1317,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-gov-west-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1330,8 +1330,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-gov-west-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1343,8 +1343,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-gov-west-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1356,8 +1356,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-southeast-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1369,8 +1369,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-southeast-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1382,8 +1382,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-southeast-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1395,8 +1395,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-southeast-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1408,8 +1408,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-southeast-2", + "UseFIPS": true, "UseDualStack": true } }, @@ -1421,8 +1421,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-southeast-2", + "UseFIPS": true, "UseDualStack": false } }, @@ -1434,8 +1434,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-southeast-2", + "UseFIPS": false, "UseDualStack": true } }, @@ -1447,8 +1447,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-southeast-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -1458,8 +1458,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, "Region": "us-iso-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1471,8 +1471,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-iso-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1482,8 +1482,8 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, "Region": "us-iso-east-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1495,8 +1495,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-iso-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1508,8 +1508,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-southeast-3", + "UseFIPS": true, "UseDualStack": true } }, @@ -1521,8 +1521,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-southeast-3", + "UseFIPS": true, "UseDualStack": false } }, @@ -1534,8 +1534,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-southeast-3", + "UseFIPS": false, "UseDualStack": true } }, @@ -1547,8 +1547,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-southeast-3", + "UseFIPS": false, "UseDualStack": false } }, @@ -1560,8 +1560,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-southeast-4", + "UseFIPS": true, "UseDualStack": true } }, @@ -1573,8 +1573,8 @@ } }, "params": { - "UseFIPS": true, "Region": "ap-southeast-4", + "UseFIPS": true, "UseDualStack": false } }, @@ -1586,8 +1586,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-southeast-4", + "UseFIPS": false, "UseDualStack": true } }, @@ -1599,8 +1599,8 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-southeast-4", + "UseFIPS": false, "UseDualStack": false } }, @@ -1612,8 +1612,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1625,8 +1625,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1638,8 +1638,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1651,8 +1651,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1664,8 +1664,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-east-2", + "UseFIPS": true, "UseDualStack": true } }, @@ -1677,8 +1677,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-east-2", + "UseFIPS": true, "UseDualStack": false } }, @@ -1690,8 +1690,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-east-2", + "UseFIPS": false, "UseDualStack": true } }, @@ -1703,8 +1703,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-east-2", + "UseFIPS": false, "UseDualStack": false } }, @@ -1716,8 +1716,8 @@ } }, "params": { - "UseFIPS": true, "Region": "cn-northwest-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1729,8 +1729,8 @@ } }, "params": { - "UseFIPS": true, "Region": "cn-northwest-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1742,8 +1742,8 @@ } }, "params": { - "UseFIPS": false, "Region": "cn-northwest-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1755,8 +1755,8 @@ } }, "params": { - "UseFIPS": false, "Region": "cn-northwest-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1766,8 +1766,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1779,8 +1779,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1790,8 +1790,8 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, "Region": "us-isob-east-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1803,8 +1803,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-isob-east-1", + "UseFIPS": false, "UseDualStack": false } }, @@ -1816,8 +1816,8 @@ } }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1828,8 +1828,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1840,8 +1840,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": true, "Endpoint": "https://example.com" } diff --git a/models/apis/ec2/2016-11-15/paginators-1.json b/models/apis/ec2/2016-11-15/paginators-1.json index 4b3d20d01a..5135df216c 100755 --- a/models/apis/ec2/2016-11-15/paginators-1.json +++ b/models/apis/ec2/2016-11-15/paginators-1.json @@ -3,6 +3,12 @@ "DescribeAccountAttributes": { "result_key": "AccountAttributes" }, + "DescribeAddressTransfers": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "AddressTransfers" + }, "DescribeAddresses": { "result_key": "Addresses" }, diff --git a/models/apis/iot/2015-05-28/api-2.json b/models/apis/iot/2015-05-28/api-2.json index 4e543b7346..9084c95ae5 100644 --- a/models/apis/iot/2015-05-28/api-2.json +++ b/models/apis/iot/2015-05-28/api-2.json @@ -3899,7 +3899,8 @@ "timestream":{"shape":"TimestreamAction"}, "http":{"shape":"HttpAction"}, "kafka":{"shape":"KafkaAction"}, - "openSearch":{"shape":"OpenSearchAction"} + "openSearch":{"shape":"OpenSearchAction"}, + "location":{"shape":"LocationAction"} } }, "ActionList":{ @@ -10526,6 +10527,32 @@ "nextToken":{"shape":"NextToken"} } }, + "LocationAction":{ + "type":"structure", + "required":[ + "roleArn", + "trackerName", + "deviceId", + "latitude", + "longitude" + ], + "members":{ + "roleArn":{"shape":"AwsArn"}, + "trackerName":{"shape":"String"}, + "deviceId":{"shape":"String"}, + "timestamp":{"shape":"LocationTimestamp"}, + "latitude":{"shape":"String"}, + "longitude":{"shape":"String"} + } + }, + "LocationTimestamp":{ + "type":"structure", + "required":["value"], + "members":{ + "value":{"shape":"String"}, + "unit":{"shape":"String"} + } + }, "LogGroupName":{"type":"string"}, "LogLevel":{ "type":"string", diff --git a/models/apis/iot/2015-05-28/docs-2.json b/models/apis/iot/2015-05-28/docs-2.json index 6c29c589cb..c07c279701 100644 --- a/models/apis/iot/2015-05-28/docs-2.json +++ b/models/apis/iot/2015-05-28/docs-2.json @@ -1031,6 +1031,7 @@ "IotSiteWiseAction$roleArn": "

The ARN of the role that grants IoT permission to send an asset property value to IoT SiteWise. (\"Action\": \"iotsitewise:BatchPutAssetPropertyValue\"). The trust policy can restrict access to specific asset hierarchy paths.

", "KafkaAction$destinationArn": "

The ARN of Kafka action's VPC TopicRuleDestination.

", "KinesisAction$roleArn": "

The ARN of the IAM role that grants access to the Amazon Kinesis stream.

", + "LocationAction$roleArn": "

The IAM role that grants permission to write to the Amazon Location resource.

", "LoggingOptionsPayload$roleArn": "

The ARN of the IAM role that grants access.

", "OpenSearchAction$roleArn": "

The IAM role ARN that has access to OpenSearch.

", "RepublishAction$roleArn": "

The ARN of the IAM role that grants access.

", @@ -4926,6 +4927,18 @@ "refs": { } }, + "LocationAction": { + "base": "

The Amazon Location rule action sends device location updates from an MQTT message to an Amazon Location tracker resource.

", + "refs": { + "Action$location": "

The Amazon Location Service rule action sends device location updates from an MQTT message to an Amazon Location tracker resource.

" + } + }, + "LocationTimestamp": { + "base": "

Describes how to interpret an application-defined timestamp value from an MQTT message payload and the precision of that value.

", + "refs": { + "LocationAction$timestamp": "

The time that the location data was sampled. The default value is the time the MQTT message was processed.

" + } + }, "LogGroupName": { "base": null, "refs": { @@ -5981,9 +5994,9 @@ "ProvisioningHook": { "base": "

Structure that contains payloadVersion and targetArn.

", "refs": { - "CreateProvisioningTemplateRequest$preProvisioningHook": "

Creates a pre-provisioning hook template.

", + "CreateProvisioningTemplateRequest$preProvisioningHook": "

Creates a pre-provisioning hook template. Only supports template of type FLEET_PROVISIONING. For more information about provisioning template types, see type.

", "DescribeProvisioningTemplateResponse$preProvisioningHook": "

Gets information about a pre-provisioned hook.

", - "UpdateProvisioningTemplateRequest$preProvisioningHook": "

Updates the pre-provisioning hook template.

" + "UpdateProvisioningTemplateRequest$preProvisioningHook": "

Updates the pre-provisioning hook template. Only supports template of type FLEET_PROVISIONING. For more information about provisioning template types, see type.

" } }, "ProvisioningTemplateListing": { @@ -7190,6 +7203,12 @@ "KafkaAction$topic": "

The Kafka topic for messages to be sent to the Kafka broker.

", "KafkaAction$key": "

The Kafka message key.

", "KafkaAction$partition": "

The Kafka message partition.

", + "LocationAction$trackerName": "

The name of the tracker resource in Amazon Location in which the location is updated.

", + "LocationAction$deviceId": "

The unique ID of the device providing the location data.

", + "LocationAction$latitude": "

A string that evaluates to a double value that represents the latitude of the device's location.

", + "LocationAction$longitude": "

A string that evaluates to a double value that represents the longitude of the device's location.

", + "LocationTimestamp$value": "

An expression that returns a long epoch time value.

", + "LocationTimestamp$unit": "

The precision of the timestamp value that results from the expression described in value.

Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The default is MILLISECONDS.

", "StringMap$key": null, "StringMap$value": null, "TopicRuleDestination$statusReason": "

Additional details or reason why the topic rule destination is in the current status.

", @@ -7486,7 +7505,7 @@ "DescribeProvisioningTemplateResponse$defaultVersionId": "

The default fleet template version ID.

", "DescribeProvisioningTemplateVersionRequest$versionId": "

The provisioning template version ID.

", "DescribeProvisioningTemplateVersionResponse$versionId": "

The provisioning template version ID.

", - "ProvisioningTemplateVersionSummary$versionId": "

The ID of the fleet privisioning template version.

", + "ProvisioningTemplateVersionSummary$versionId": "

The ID of the fleet provisioning template version.

", "UpdateProvisioningTemplateRequest$defaultVersionId": "

The ID of the default provisioning template version.

" } }, @@ -7958,7 +7977,7 @@ "TinyMaxResults": { "base": null, "refs": { - "GetBehaviorModelTrainingSummariesRequest$maxResults": "

The maximum number of results to return at one time. The default is 25.

" + "GetBehaviorModelTrainingSummariesRequest$maxResults": "

The maximum number of results to return at one time. The default is 10.

" } }, "TlsContext": { diff --git a/models/apis/iot/2015-05-28/endpoint-rule-set-1.json b/models/apis/iot/2015-05-28/endpoint-rule-set-1.json new file mode 100644 index 0000000000..9143c30d53 --- /dev/null +++ b/models/apis/iot/2015-05-28/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iot-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iot.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iot.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/iot/2015-05-28/endpoint-tests-1.json b/models/apis/iot/2015-05-28/endpoint-tests-1.json new file mode 100644 index 0000000000..78c241bcfb --- /dev/null +++ b/models/apis/iot/2015-05-28/endpoint-tests-1.json @@ -0,0 +1,1335 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/logs/2014-03-28/api-2.json b/models/apis/logs/2014-03-28/api-2.json index 5c730fca3f..a9072dc0ea 100644 --- a/models/apis/logs/2014-03-28/api-2.json +++ b/models/apis/logs/2014-03-28/api-2.json @@ -404,6 +404,20 @@ {"shape":"ServiceUnavailableException"} ] }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "ListTagsLogGroup":{ "name":"ListTagsLogGroup", "http":{ @@ -415,7 +429,9 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} - ] + ], + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API ListTagsForResource" }, "PutDestination":{ "name":"PutDestination", @@ -574,6 +590,22 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParameterException"} + ], + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API TagResource" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"TooManyTagsException"} ] }, "TestMetricFilter":{ @@ -598,6 +630,21 @@ "input":{"shape":"UntagLogGroupRequest"}, "errors":[ {"shape":"ResourceNotFoundException"} + ], + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API UntagResource" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"} ] } }, @@ -606,6 +653,12 @@ "type":"string", "min":1 }, + "AmazonResourceName":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"[\\w+=/:,.@-]*" + }, "Arn":{"type":"string"}, "AssociateKmsKeyRequest":{ "type":"structure", @@ -1209,18 +1262,35 @@ }, "exception":true }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{"shape":"AmazonResourceName"} + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"Tags"} + } + }, "ListTagsLogGroupRequest":{ "type":"structure", "required":["logGroupName"], "members":{ "logGroupName":{"shape":"LogGroupName"} - } + }, + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse" }, "ListTagsLogGroupResponse":{ "type":"structure", "members":{ "tags":{"shape":"Tags"} - } + }, + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse" }, "LogEventIndex":{"type":"integer"}, "LogGroup":{ @@ -1426,7 +1496,8 @@ "members":{ "destinationName":{"shape":"DestinationName"}, "targetArn":{"shape":"TargetArn"}, - "roleArn":{"shape":"RoleArn"} + "roleArn":{"shape":"RoleArn"}, + "tags":{"shape":"Tags"} } }, "PutDestinationResponse":{ @@ -1789,6 +1860,12 @@ "min":1, "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+)$" }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":0 + }, "TagList":{ "type":"list", "member":{"shape":"TagKey"}, @@ -1803,6 +1880,19 @@ "members":{ "logGroupName":{"shape":"LogGroupName"}, "tags":{"shape":"Tags"} + }, + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API model TagResourceRequest" + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{"shape":"AmazonResourceName"}, + "tags":{"shape":"Tags"} } }, "TagValue":{ @@ -1849,6 +1939,14 @@ "min":0 }, "Token":{"type":"string"}, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "message":{"shape":"Message"}, + "resourceName":{"shape":"AmazonResourceName"} + }, + "exception":true + }, "UnrecognizedClientException":{ "type":"structure", "members":{ @@ -1864,6 +1962,19 @@ "members":{ "logGroupName":{"shape":"LogGroupName"}, "tags":{"shape":"TagList"} + }, + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API model UntagResourceRequest" + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{"shape":"AmazonResourceName"}, + "tagKeys":{"shape":"TagKeyList"} } }, "Value":{"type":"string"} diff --git a/models/apis/logs/2014-03-28/docs-2.json b/models/apis/logs/2014-03-28/docs-2.json index 6890a26b42..1490303d5b 100644 --- a/models/apis/logs/2014-03-28/docs-2.json +++ b/models/apis/logs/2014-03-28/docs-2.json @@ -4,7 +4,7 @@ "operations": { "AssociateKmsKey": "

Associates the specified Key Management Service customer master key (CMK) with the specified log group.

Associating an KMS CMK with a log group overrides any existing associations between the log group and a CMK. After a CMK is associated with a log group, all newly ingested data for the log group is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested.

CloudWatch Logs supports only symmetric CMKs. Do not use an associate an asymmetric CMK with your log group. For more information, see Using Symmetric and Asymmetric Keys.

It can take up to 5 minutes for this operation to take effect.

If you attempt to associate a CMK with a log group but the CMK does not exist or the CMK is disabled, you receive an InvalidParameterException error.

", "CancelExportTask": "

Cancels the specified export task.

The task must be in the PENDING or RUNNING state.

", - "CreateExportTask": "

Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket. When you perform a CreateExportTask operation, you must use credentials that have permission to write to the S3 bucket that you specify as the destination.

Exporting log data to Amazon S3 buckets that are encrypted by KMS is not supported. Exporting log data to Amazon S3 buckets that have S3 Object Lock enabled with a retention period is not supported.

Exporting to S3 buckets that are encrypted with AES-256 is supported.

This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask.

You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate out log data for each export task, you can specify a prefix to be used as the Amazon S3 key prefix for all exported objects.

Time-based sorting on chunks of log data inside an exported file is not guaranteed. You can sort the exported log fild data by using Linux utilities.

", + "CreateExportTask": "

Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket. When you perform a CreateExportTask operation, you must use credentials that have permission to write to the S3 bucket that you specify as the destination.

This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask.

You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate out log data for each export task, you can specify a prefix to be used as the Amazon S3 key prefix for all exported objects.

Exporting to S3 buckets that are encrypted with AES-256 is supported. Exporting to S3 buckets encrypted with SSE-KMS is not supported.

", "CreateLogGroup": "

Creates a log group with the specified name. You can create up to 20,000 log groups per account.

You must use the following guidelines when naming a log group:

When you create a log group, by default the log events in the log group never expire. To set a retention policy so that events expire and are deleted after a specified time, use PutRetentionPolicy.

If you associate a Key Management Service customer master key (CMK) with the log group, ingested data is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested.

If you attempt to associate a CMK with the log group but the CMK does not exist or the CMK is disabled, you receive an InvalidParameterException error.

CloudWatch Logs supports only symmetric CMKs. Do not associate an asymmetric CMK with your log group. For more information, see Using Symmetric and Asymmetric Keys.

", "CreateLogStream": "

Creates a log stream for the specified log group. A log stream is a sequence of log events that originate from a single source, such as an application instance or a resource that is being monitored.

There is no limit on the number of log streams that you can create for a log group. There is a limit of 50 TPS on CreateLogStream operations, after which transactions are throttled.

You must use the following guidelines when naming a log stream:

", "DeleteDestination": "

Deletes the specified destination, and eventually disables all the subscription filters that publish to it. This operation does not delete the physical resource encapsulated by the destination.

", @@ -30,7 +30,8 @@ "GetLogGroupFields": "

Returns a list of the fields that are included in log events in the specified log group, along with the percentage of log events that contain each field. The search is limited to a time period that you specify.

In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, @timestamp is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see Supported Logs and Discovered Fields.

The response results are sorted by the frequency percentage, starting with the highest percentage.

", "GetLogRecord": "

Retrieves all of the fields and values of a single log event. All fields are retrieved, even if the original query that produced the logRecordPointer retrieved only a subset of fields. Fields are returned as field name/field value pairs.

The full unparsed log event is returned within @message.

", "GetQueryResults": "

Returns the results from the specified query.

Only the fields requested in the query are returned, along with a @ptr field, which is the identifier for the log record. You can use the value of @ptr in a GetLogRecord operation to get the full log record.

GetQueryResults does not start a query execution. To run a query, use StartQuery.

If the value of the Status field in the output is Running, this operation returns only partial results. If you see a value of Scheduled or Running for the status, you can retry the operation later to see the final results.

", - "ListTagsLogGroup": "

Lists the tags for the specified log group.

", + "ListTagsForResource": "

Displays the tags associated with a CloudWatch Logs resource. Currently, log groups and destinations support tagging.

", + "ListTagsLogGroup": "

The ListTagsLogGroup operation is on the path to deprecation. We recommend that you use ListTagsForResource instead.

Lists the tags for the specified log group.

", "PutDestination": "

Creates or updates a destination. This operation is used only to create destinations for cross-account subscriptions.

A destination encapsulates a physical resource (such as an Amazon Kinesis stream) and enables you to subscribe to a real-time stream of log events for a different account, ingested using PutLogEvents.

Through an access policy, a destination controls what is written to it. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call PutSubscriptionFilter against this destination. To enable this, the destination owner must call PutDestinationPolicy after PutDestination.

To perform a PutDestination operation, you must also have the iam:PassRole permission.

", "PutDestinationPolicy": "

Creates or updates an access policy associated with an existing destination. An access policy is an IAM policy document that is used to authorize claims to register a subscription filter against a given destination.

If multiple Amazon Web Services accounts are sending logs to this destination, each sender account must be listed separately in the policy. The policy does not support specifying * as the Principal or the use of the aws:PrincipalOrgId global key.

", "PutLogEvents": "

Uploads a batch of log events to the specified log stream.

You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token in the expectedSequenceToken field from InvalidSequenceTokenException. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls might be successful or one might be rejected.

The batch of events must satisfy the following constraints:

If a call to PutLogEvents returns \"UnrecognizedClientException\" the most likely cause is an invalid Amazon Web Services access key ID or secret key.

", @@ -41,9 +42,11 @@ "PutSubscriptionFilter": "

Creates or updates a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events ingested through PutLogEvents and have them delivered to a specific destination. 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:

Each log group can have up to two subscription filters associated with it. If you are updating an existing filter, you must specify the correct name in filterName.

To perform a PutSubscriptionFilter operation, you must also have the iam:PassRole permission.

", "StartQuery": "

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.

Queries time out after 15 minutes of execution. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries.

", "StopQuery": "

Stops a CloudWatch Logs Insights query that is in progress. If the query has already ended, the operation returns an error indicating that the specified query is not running.

", - "TagLogGroup": "

Adds or updates the specified tags for the specified log group.

To list the tags for a log group, use ListTagsLogGroup. To remove tags, use UntagLogGroup.

For more information about tags, see Tag Log Groups in Amazon CloudWatch Logs in the Amazon CloudWatch Logs User Guide.

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. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

", + "TagLogGroup": "

The TagLogGroup operation is on the path to deprecation. We recommend that you use TagResource instead.

Adds or updates the specified tags for the specified log group.

To list the tags for a log group, use ListTagsForResource. To remove tags, use UntagResource.

For more information about tags, see Tag Log Groups in Amazon CloudWatch Logs in the Amazon CloudWatch Logs User Guide.

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. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

", + "TagResource": "

Assigns one or more tags (key-value pairs) to the specified CloudWatch Logs resource. Currently, the only CloudWatch Logs resources that can be tagged are log groups and destinations.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

You can use the TagResource action with a resource that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a CloudWatch Logs resource.

", "TestMetricFilter": "

Tests the filter pattern of a metric filter against a sample of log event messages. You can use this operation to validate the correctness of a metric filter pattern.

", - "UntagLogGroup": "

Removes the specified tags from the specified log group.

To list the tags for a log group, use ListTagsLogGroup. To add tags, use TagLogGroup.

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.

" + "UntagLogGroup": "

The UntagLogGroup operation is on the path to deprecation. We recommend that you use UntagResource instead.

Removes the specified tags from the specified log group.

To list the tags for a log group, use ListTagsForResource. To add tags, use TagResource.

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.

", + "UntagResource": "

Removes one or more tags from the specified resource.

" }, "shapes": { "AccessPolicy": { @@ -53,6 +56,15 @@ "PutDestinationPolicyRequest$accessPolicy": "

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.

" } }, + "AmazonResourceName": { + "base": null, + "refs": { + "ListTagsForResourceRequest$resourceArn": "

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.

", + "TagResourceRequest$resourceArn": "

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.

", + "TooManyTagsException$resourceName": "

The name of the resource.

", + "UntagResourceRequest$resourceArn": "

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.

" + } + }, "Arn": { "base": null, "refs": { @@ -97,7 +109,7 @@ } }, "Days": { - "base": "

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, 1827, 2192, 2557, 2922, 3288, and 3653.

To set a log group to never have log events expire, use DeleteRetentionPolicy.

", + "base": "

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, 1827, and 3653.

To set a log group to never have log events expire, use DeleteRetentionPolicy.

", "refs": { "LogGroup$retentionInDays": null, "PutRetentionPolicyRequest$retentionInDays": null @@ -589,6 +601,16 @@ "refs": { } }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, "ListTagsLogGroupRequest": { "base": null, "refs": { @@ -730,7 +752,8 @@ "Message": { "base": null, "refs": { - "QueryCompileError$message": "

Reserved.

" + "QueryCompileError$message": "

Reserved.

", + "TooManyTagsException$message": null } }, "MetricFilter": { @@ -1172,10 +1195,17 @@ "TagKey": { "base": null, "refs": { + "TagKeyList$member": null, "TagList$member": null, "Tags$key": null } }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

The list of tag keys to remove from the resource.

" + } + }, "TagList": { "base": null, "refs": { @@ -1187,6 +1217,11 @@ "refs": { } }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, "TagValue": { "base": null, "refs": { @@ -1197,8 +1232,11 @@ "base": null, "refs": { "CreateLogGroupRequest$tags": "

The key-value pairs to use for the tags.

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. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

", + "ListTagsForResourceResponse$tags": "

The list of tags associated with the requested resource.>

", "ListTagsLogGroupResponse$tags": "

The tags for the log group.

", - "TagLogGroupRequest$tags": "

The key-value pairs to use for the tags.

" + "PutDestinationRequest$tags": "

An optional list of key-value pairs to associate with the resource.

For more information about tagging, see Tagging Amazon Web Services resources

", + "TagLogGroupRequest$tags": "

The key-value pairs to use for the tags.

", + "TagResourceRequest$tags": "

The list of key-value pairs to associate with the resource.

" } }, "TargetArn": { @@ -1264,6 +1302,11 @@ "ExtractedValues$key": null } }, + "TooManyTagsException": { + "base": "

A resource can have no more than 50 tags.

", + "refs": { + } + }, "UnrecognizedClientException": { "base": "

The most likely cause is an invalid Amazon Web Services access key ID or secret key.

", "refs": { @@ -1274,6 +1317,11 @@ "refs": { } }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, "Value": { "base": null, "refs": { diff --git a/models/apis/logs/2014-03-28/endpoint-rule-set-1.json b/models/apis/logs/2014-03-28/endpoint-rule-set-1.json new file mode 100644 index 0000000000..9f403fbffa --- /dev/null +++ b/models/apis/logs/2014-03-28/endpoint-rule-set-1.json @@ -0,0 +1,353 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://logs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://logs.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://logs.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://logs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://logs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://logs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/logs/2014-03-28/endpoint-tests-1.json b/models/apis/logs/2014-03-28/endpoint-tests-1.json new file mode 100644 index 0000000000..695be96f2c --- /dev/null +++ b/models/apis/logs/2014-03-28/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/sesv2/2019-09-27/api-2.json b/models/apis/sesv2/2019-09-27/api-2.json index 4c341c78f3..4aa7e159ec 100644 --- a/models/apis/sesv2/2019-09-27/api-2.json +++ b/models/apis/sesv2/2019-09-27/api-2.json @@ -13,6 +13,21 @@ "uid":"sesv2-2019-09-27" }, "operations":{ + "BatchGetMetricData":{ + "name":"BatchGetMetricData", + "http":{ + "method":"POST", + "requestUri":"/v2/email/metrics/batch" + }, + "input":{"shape":"BatchGetMetricDataRequest"}, + "output":{"shape":"BatchGetMetricDataResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotFoundException"} + ] + }, "CreateConfigurationSet":{ "name":"CreateConfigurationSet", "http":{ @@ -732,6 +747,20 @@ {"shape":"BadRequestException"} ] }, + "ListRecommendations":{ + "name":"ListRecommendations", + "http":{ + "method":"POST", + "requestUri":"/v2/email/vdm/recommendations" + }, + "input":{"shape":"ListRecommendationsRequest"}, + "output":{"shape":"ListRecommendationsResponse"}, + "errors":[ + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"} + ] + }, "ListSuppressedDestinations":{ "name":"ListSuppressedDestinations", "http":{ @@ -813,6 +842,19 @@ {"shape":"BadRequestException"} ] }, + "PutAccountVdmAttributes":{ + "name":"PutAccountVdmAttributes", + "http":{ + "method":"PUT", + "requestUri":"/v2/email/account/vdm" + }, + "input":{"shape":"PutAccountVdmAttributesRequest"}, + "output":{"shape":"PutAccountVdmAttributesResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"TooManyRequestsException"} + ] + }, "PutConfigurationSetDeliveryOptions":{ "name":"PutConfigurationSetDeliveryOptions", "http":{ @@ -883,6 +925,20 @@ {"shape":"BadRequestException"} ] }, + "PutConfigurationSetVdmOptions":{ + "name":"PutConfigurationSetVdmOptions", + "http":{ + "method":"PUT", + "requestUri":"/v2/email/configuration-sets/{ConfigurationSetName}/vdm-options" + }, + "input":{"shape":"PutConfigurationSetVdmOptionsRequest"}, + "output":{"shape":"PutConfigurationSetVdmOptionsResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"} + ] + }, "PutDedicatedIpInPool":{ "name":"PutDedicatedIpInPool", "http":{ @@ -1246,6 +1302,44 @@ "error":{"httpStatusCode":400}, "exception":true }, + "BatchGetMetricDataQueries":{ + "type":"list", + "member":{"shape":"BatchGetMetricDataQuery"}, + "max":10, + "min":1 + }, + "BatchGetMetricDataQuery":{ + "type":"structure", + "required":[ + "Id", + "Namespace", + "Metric", + "StartDate", + "EndDate" + ], + "members":{ + "Id":{"shape":"QueryIdentifier"}, + "Namespace":{"shape":"MetricNamespace"}, + "Metric":{"shape":"Metric"}, + "Dimensions":{"shape":"Dimensions"}, + "StartDate":{"shape":"Timestamp"}, + "EndDate":{"shape":"Timestamp"} + } + }, + "BatchGetMetricDataRequest":{ + "type":"structure", + "required":["Queries"], + "members":{ + "Queries":{"shape":"BatchGetMetricDataQueries"} + } + }, + "BatchGetMetricDataResponse":{ + "type":"structure", + "members":{ + "Results":{"shape":"MetricDataResultList"}, + "Errors":{"shape":"MetricDataErrorList"} + } + }, "BehaviorOnMxFailure":{ "type":"string", "enum":[ @@ -1431,6 +1525,7 @@ "Charset":{"shape":"Charset"} } }, + "Counter":{"type":"long"}, "CreateConfigurationSetEventDestinationRequest":{ "type":"structure", "required":[ @@ -1463,7 +1558,8 @@ "ReputationOptions":{"shape":"ReputationOptions"}, "SendingOptions":{"shape":"SendingOptions"}, "Tags":{"shape":"TagList"}, - "SuppressionOptions":{"shape":"SuppressionOptions"} + "SuppressionOptions":{"shape":"SuppressionOptions"}, + "VdmOptions":{"shape":"VdmOptions"} } }, "CreateConfigurationSetResponse":{ @@ -1675,6 +1771,18 @@ "type":"list", "member":{"shape":"DailyVolume"} }, + "DashboardAttributes":{ + "type":"structure", + "members":{ + "EngagementMetrics":{"shape":"FeatureStatus"} + } + }, + "DashboardOptions":{ + "type":"structure", + "members":{ + "EngagementMetrics":{"shape":"FeatureStatus"} + } + }, "DataFormat":{ "type":"string", "enum":[ @@ -1952,6 +2060,13 @@ "LINK_TAG" ] }, + "Dimensions":{ + "type":"map", + "key":{"shape":"MetricDimensionName"}, + "value":{"shape":"MetricDimensionValue"}, + "max":3, + "min":1 + }, "DisplayName":{"type":"string"}, "DkimAttributes":{ "type":"structure", @@ -2164,6 +2279,13 @@ } }, "FailureRedirectionURL":{"type":"string"}, + "FeatureStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "FeedbackId":{"type":"string"}, "GeneralEnforcementStatus":{"type":"string"}, "GetAccountRequest":{ @@ -2180,7 +2302,8 @@ "SendQuota":{"shape":"SendQuota"}, "SendingEnabled":{"shape":"Enabled"}, "SuppressionAttributes":{"shape":"SuppressionAttributes"}, - "Details":{"shape":"AccountDetails"} + "Details":{"shape":"AccountDetails"}, + "VdmAttributes":{"shape":"VdmAttributes"} } }, "GetBlacklistReportsRequest":{ @@ -2238,7 +2361,8 @@ "ReputationOptions":{"shape":"ReputationOptions"}, "SendingOptions":{"shape":"SendingOptions"}, "Tags":{"shape":"TagList"}, - "SuppressionOptions":{"shape":"SuppressionOptions"} + "SuppressionOptions":{"shape":"SuppressionOptions"}, + "VdmOptions":{"shape":"VdmOptions"} } }, "GetContactListRequest":{ @@ -2581,6 +2705,18 @@ "SuppressedDestination":{"shape":"SuppressedDestination"} } }, + "GuardianAttributes":{ + "type":"structure", + "members":{ + "OptimizedSharedDelivery":{"shape":"FeatureStatus"} + } + }, + "GuardianOptions":{ + "type":"structure", + "members":{ + "OptimizedSharedDelivery":{"shape":"FeatureStatus"} + } + }, "Identity":{ "type":"string", "min":1 @@ -2654,6 +2790,14 @@ "TrackedIsps":{"shape":"IspNameList"} } }, + "InternalServiceErrorException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, "InvalidNextTokenException":{ "type":"structure", "members":{ @@ -2991,6 +3135,42 @@ "type":"list", "member":{"shape":"PoolName"} }, + "ListRecommendationFilterValue":{ + "type":"string", + "max":512, + "min":1 + }, + "ListRecommendationsFilter":{ + "type":"map", + "key":{"shape":"ListRecommendationsFilterKey"}, + "value":{"shape":"ListRecommendationFilterValue"}, + "max":2, + "min":1 + }, + "ListRecommendationsFilterKey":{ + "type":"string", + "enum":[ + "TYPE", + "IMPACT", + "STATUS", + "RESOURCE_ARN" + ] + }, + "ListRecommendationsRequest":{ + "type":"structure", + "members":{ + "Filter":{"shape":"ListRecommendationsFilter"}, + "NextToken":{"shape":"NextToken"}, + "PageSize":{"shape":"MaxItems"} + } + }, + "ListRecommendationsResponse":{ + "type":"structure", + "members":{ + "Recommendations":{"shape":"RecommendationsList"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListSuppressedDestinationsRequest":{ "type":"structure", "members":{ @@ -3123,6 +3303,62 @@ }, "MessageTagName":{"type":"string"}, "MessageTagValue":{"type":"string"}, + "Metric":{ + "type":"string", + "enum":[ + "SEND", + "COMPLAINT", + "PERMANENT_BOUNCE", + "TRANSIENT_BOUNCE", + "OPEN", + "CLICK", + "DELIVERY", + "DELIVERY_OPEN", + "DELIVERY_CLICK", + "DELIVERY_COMPLAINT" + ] + }, + "MetricDataError":{ + "type":"structure", + "members":{ + "Id":{"shape":"QueryIdentifier"}, + "Code":{"shape":"QueryErrorCode"}, + "Message":{"shape":"QueryErrorMessage"} + } + }, + "MetricDataErrorList":{ + "type":"list", + "member":{"shape":"MetricDataError"} + }, + "MetricDataResult":{ + "type":"structure", + "members":{ + "Id":{"shape":"QueryIdentifier"}, + "Timestamps":{"shape":"TimestampList"}, + "Values":{"shape":"MetricValueList"} + } + }, + "MetricDataResultList":{ + "type":"list", + "member":{"shape":"MetricDataResult"} + }, + "MetricDimensionName":{ + "type":"string", + "enum":[ + "EMAIL_IDENTITY", + "CONFIGURATION_SET", + "ISP" + ] + }, + "MetricDimensionValue":{"type":"string"}, + "MetricNamespace":{ + "type":"string", + "enum":["VDM"] + }, + "MetricValueList":{ + "type":"list", + "member":{"shape":"Counter"} + }, "NextToken":{"type":"string"}, "NotFoundException":{ "type":"structure", @@ -3235,6 +3471,18 @@ "members":{ } }, + "PutAccountVdmAttributesRequest":{ + "type":"structure", + "required":["VdmAttributes"], + "members":{ + "VdmAttributes":{"shape":"VdmAttributes"} + } + }, + "PutAccountVdmAttributesResponse":{ + "type":"structure", + "members":{ + } + }, "PutConfigurationSetDeliveryOptionsRequest":{ "type":"structure", "required":["ConfigurationSetName"], @@ -3321,6 +3569,23 @@ "members":{ } }, + "PutConfigurationSetVdmOptionsRequest":{ + "type":"structure", + "required":["ConfigurationSetName"], + "members":{ + "ConfigurationSetName":{ + "shape":"ConfigurationSetName", + "location":"uri", + "locationName":"ConfigurationSetName" + }, + "VdmOptions":{"shape":"VdmOptions"} + } + }, + "PutConfigurationSetVdmOptionsResponse":{ + "type":"structure", + "members":{ + } + }, "PutDedicatedIpInPoolRequest":{ "type":"structure", "required":[ @@ -3482,6 +3747,19 @@ "members":{ } }, + "QueryErrorCode":{ + "type":"string", + "enum":[ + "INTERNAL_FAILURE", + "ACCESS_DENIED" + ] + }, + "QueryErrorMessage":{"type":"string"}, + "QueryIdentifier":{ + "type":"string", + "max":255, + "min":1 + }, "RawMessage":{ "type":"structure", "required":["Data"], @@ -3491,6 +3769,45 @@ }, "RawMessageData":{"type":"blob"}, "RblName":{"type":"string"}, + "Recommendation":{ + "type":"structure", + "members":{ + "ResourceArn":{"shape":"AmazonResourceName"}, + "Type":{"shape":"RecommendationType"}, + "Description":{"shape":"RecommendationDescription"}, + "Status":{"shape":"RecommendationStatus"}, + "CreatedTimestamp":{"shape":"Timestamp"}, + "LastUpdatedTimestamp":{"shape":"Timestamp"}, + "Impact":{"shape":"RecommendationImpact"} + } + }, + "RecommendationDescription":{"type":"string"}, + "RecommendationImpact":{ + "type":"string", + "enum":[ + "LOW", + "HIGH" + ] + }, + "RecommendationStatus":{ + "type":"string", + "enum":[ + "OPEN", + "FIXED" + ] + }, + "RecommendationType":{ + "type":"string", + "enum":[ + "DKIM", + "DMARC", + "SPF" + ] + }, + "RecommendationsList":{ + "type":"list", + "member":{"shape":"Recommendation"} + }, "RenderedEmailTemplate":{"type":"string"}, "ReplacementEmailContent":{ "type":"structure", @@ -3794,6 +4111,10 @@ } }, "Timestamp":{"type":"timestamp"}, + "TimestampList":{ + "type":"list", + "member":{"shape":"Timestamp"} + }, "TlsPolicy":{ "type":"string", "enum":[ @@ -4033,6 +4354,22 @@ "sensitive":true }, "UseDefaultIfPreferenceUnavailable":{"type":"boolean"}, + "VdmAttributes":{ + "type":"structure", + "required":["VdmEnabled"], + "members":{ + "VdmEnabled":{"shape":"FeatureStatus"}, + "DashboardAttributes":{"shape":"DashboardAttributes"}, + "GuardianAttributes":{"shape":"GuardianAttributes"} + } + }, + "VdmOptions":{ + "type":"structure", + "members":{ + "DashboardOptions":{"shape":"DashboardOptions"}, + "GuardianOptions":{"shape":"GuardianOptions"} + } + }, "VerificationStatus":{ "type":"string", "enum":[ diff --git a/models/apis/sesv2/2019-09-27/docs-2.json b/models/apis/sesv2/2019-09-27/docs-2.json index 1a740f7279..b60aa5e589 100644 --- a/models/apis/sesv2/2019-09-27/docs-2.json +++ b/models/apis/sesv2/2019-09-27/docs-2.json @@ -2,6 +2,7 @@ "version": "2.0", "service": "Amazon SES API v2

Amazon SES is an Amazon Web Services service that you can use to send email messages to your customers.

If you're new to Amazon SES API v2, you might find it helpful to review the Amazon Simple Email Service Developer Guide. The Amazon SES Developer Guide provides information and code samples that demonstrate how to use Amazon SES API v2 features programmatically.

", "operations": { + "BatchGetMetricData": "

Retrieves batches of metric data collected based on your sending activity.

You can execute this operation no more than 16 times per second, and with at most 160 queries from the batches per second (cumulative).

", "CreateConfigurationSet": "

Create a configuration set. Configuration sets are groups of rules that you can apply to the emails that you send. You apply a configuration set to an email by specifying the name of the configuration set when you call the Amazon SES API v2. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

", "CreateConfigurationSetEventDestination": "

Create an event destination. Events include message sends, deliveries, opens, clicks, bounces, and complaints. Event destinations are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.

A single configuration set can include more than one event destination.

", "CreateContact": "

Creates a contact, which is an end-user who is receiving the email, and adds them to a contact list.

", @@ -52,17 +53,20 @@ "ListEmailIdentities": "

Returns a list of all of the email identities that are associated with your Amazon Web Services account. An identity can be either an email address or a domain. This operation returns identities that are verified as well as those that aren't. This operation returns identities that are associated with Amazon SES and Amazon Pinpoint.

", "ListEmailTemplates": "

Lists the email templates present in your Amazon SES account in the current Amazon Web Services Region.

You can execute this operation no more than once per second.

", "ListImportJobs": "

Lists all of the import jobs.

", + "ListRecommendations": "

Lists the recommendations present in your Amazon SES account in the current Amazon Web Services Region.

You can execute this operation no more than once per second.

", "ListSuppressedDestinations": "

Retrieves a list of email addresses that are on the suppression list for your account.

", "ListTagsForResource": "

Retrieve a list of the tags (keys and values) that are associated with a specified resource. A tag is a label that you optionally define and associate with a resource. Each tag consists of a required tag key and an optional associated tag value. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key.

", "PutAccountDedicatedIpWarmupAttributes": "

Enable or disable the automatic warm-up feature for dedicated IP addresses.

", "PutAccountDetails": "

Update your Amazon SES account details.

", "PutAccountSendingAttributes": "

Enable or disable the ability of your account to send email.

", "PutAccountSuppressionAttributes": "

Change the settings for the account-level suppression list.

", + "PutAccountVdmAttributes": "

Update your Amazon SES account VDM attributes.

You can execute this operation no more than once per second.

", "PutConfigurationSetDeliveryOptions": "

Associate a configuration set with a dedicated IP pool. You can use dedicated IP pools to create groups of dedicated IP addresses for sending specific types of email.

", "PutConfigurationSetReputationOptions": "

Enable or disable collection of reputation metrics for emails that you send using a particular configuration set in a specific Amazon Web Services Region.

", "PutConfigurationSetSendingOptions": "

Enable or disable email sending for messages that use a particular configuration set in a specific Amazon Web Services Region.

", "PutConfigurationSetSuppressionOptions": "

Specify the account suppression list preferences for a configuration set.

", "PutConfigurationSetTrackingOptions": "

Specify a custom domain to use for open and click tracking elements in email that you send.

", + "PutConfigurationSetVdmOptions": "

Specify VDM preferences for email that you send using the configuration set.

You can execute this operation no more than once per second.

", "PutDedicatedIpInPool": "

Move a dedicated IP address to an existing dedicated IP pool.

The dedicated IP address that you specify must already exist, and must be associated with your Amazon Web Services account.

The dedicated IP pool you specify must already exist. You can create a new pool by using the CreateDedicatedIpPool operation.

", "PutDedicatedIpWarmupAttributes": "

", "PutDeliverabilityDashboardOption": "

Enable or disable the Deliverability dashboard. When you enable the Deliverability dashboard, you gain access to reputation, deliverability, and other metrics for the domains that you use to send email. You also gain the ability to perform predictive inbox placement tests.

When you use the Deliverability dashboard, you pay a monthly subscription charge, in addition to any other fees that you accrue by using Amazon SES and other Amazon Web Services services. For more information about the features and cost of a Deliverability dashboard subscription, see Amazon SES Pricing.

", @@ -122,6 +126,7 @@ "KinesisFirehoseDestination$DeliveryStreamArn": "

The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose stream that the Amazon SES API v2 sends email events to.

", "ListTagsForResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource that you want to retrieve tag information for.

", "PinpointDestination$ApplicationArn": "

The Amazon Resource Name (ARN) of the Amazon Pinpoint project to send email events to.

", + "Recommendation$ResourceArn": "

The resource affected by the recommendation, with values like arn:aws:ses:us-east-1:123456789012:identity/example.com.

", "SendBulkEmailRequest$FromEmailAddressIdentityArn": "

This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the FromEmailAddress parameter.

For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use sender@example.com, then you would specify the FromEmailAddressIdentityArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the FromEmailAddress to be sender@example.com.

For more information about sending authorization, see the Amazon SES Developer Guide.

", "SendBulkEmailRequest$FeedbackForwardingEmailAddressIdentityArn": "

This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the FeedbackForwardingEmailAddress parameter.

For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use feedback@example.com, then you would specify the FeedbackForwardingEmailAddressIdentityArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the FeedbackForwardingEmailAddress to be feedback@example.com.

For more information about sending authorization, see the Amazon SES Developer Guide.

", "SendEmailRequest$FromEmailAddressIdentityArn": "

This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the FromEmailAddress parameter.

For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use sender@example.com, then you would specify the FromEmailAddressIdentityArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the FromEmailAddress to be sender@example.com.

For more information about sending authorization, see the Amazon SES Developer Guide.

For Raw emails, the FromEmailAddressIdentityArn value overrides the X-SES-SOURCE-ARN and X-SES-FROM-ARN headers specified in raw email message content.

", @@ -145,6 +150,28 @@ "refs": { } }, + "BatchGetMetricDataQueries": { + "base": null, + "refs": { + "BatchGetMetricDataRequest$Queries": "

A list of queries for metrics to be retrieved.

" + } + }, + "BatchGetMetricDataQuery": { + "base": "

Represents a single metric data query to include in a batch.

", + "refs": { + "BatchGetMetricDataQueries$member": null + } + }, + "BatchGetMetricDataRequest": { + "base": "

Represents a request to retrieve a batch of metric data.

", + "refs": { + } + }, + "BatchGetMetricDataResponse": { + "base": "

Represents the result of processing your metric data batch request

", + "refs": { + } + }, "BehaviorOnMxFailure": { "base": "

The action to take if the required MX record can't be found when you send an email. When you set this value to UseDefaultValue, the mail is sent using amazonses.com as the MAIL FROM domain. When you set this value to RejectMessage, the Amazon SES API v2 returns a MailFromDomainNotVerified error, and doesn't attempt to deliver the email.

These behaviors are taken when the custom MAIL FROM domain configuration is in the Pending, Failed, and TemporaryFailure states.

", "refs": { @@ -292,6 +319,7 @@ "PutConfigurationSetSendingOptionsRequest$ConfigurationSetName": "

The name of the configuration set to enable or disable email sending for.

", "PutConfigurationSetSuppressionOptionsRequest$ConfigurationSetName": "

The name of the configuration set to change the suppression list preferences for.

", "PutConfigurationSetTrackingOptionsRequest$ConfigurationSetName": "

The name of the configuration set.

", + "PutConfigurationSetVdmOptionsRequest$ConfigurationSetName": "

The name of the configuration set.

", "PutEmailIdentityConfigurationSetAttributesRequest$ConfigurationSetName": "

The configuration set to associate with an email identity.

", "SendBulkEmailRequest$ConfigurationSetName": "

The name of the configuration set to use when sending the email.

", "SendCustomVerificationEmailRequest$ConfigurationSetName": "

Name of a configuration set to use when sending the verification email.

", @@ -368,6 +396,12 @@ "Message$Subject": "

The subject line of the email. The subject line can only contain 7-bit ASCII characters. However, you can specify non-ASCII characters in the subject line by using encoded-word syntax, as described in RFC 2047.

" } }, + "Counter": { + "base": null, + "refs": { + "MetricValueList$member": null + } + }, "CreateConfigurationSetEventDestinationRequest": { "base": "

A request to add an event destination to a configuration set.

", "refs": { @@ -509,6 +543,18 @@ "GetDomainStatisticsReportResponse$DailyVolumes": "

An object that contains deliverability metrics for the domain that you specified. This object contains data for each day, starting on the StartDate and ending on the EndDate.

" } }, + "DashboardAttributes": { + "base": "

An object containing additional settings for your VDM configuration as applicable to the Dashboard.

", + "refs": { + "VdmAttributes$DashboardAttributes": "

Specifies additional settings for your VDM configuration as applicable to the Dashboard.

" + } + }, + "DashboardOptions": { + "base": "

An object containing additional settings for your VDM configuration as applicable to the Dashboard.

", + "refs": { + "VdmOptions$DashboardOptions": "

Specifies additional settings for your VDM configuration as applicable to the Dashboard.

" + } + }, "DataFormat": { "base": "

The data format of the import job's data source.

", "refs": { @@ -707,6 +753,12 @@ "CloudWatchDimensionConfiguration$DimensionValueSource": "

The location where the Amazon SES API v2 finds the value of a dimension to publish to Amazon CloudWatch. To use the message tags that you specify using an X-SES-MESSAGE-TAGS header or a parameter to the SendEmail or SendRawEmail API, choose messageTag. To use your own email headers, choose emailHeader. To use link tags, choose linkTags.

" } }, + "Dimensions": { + "base": null, + "refs": { + "BatchGetMetricDataQuery$Dimensions": "

An object that contains mapping between MetricDimensionName and MetricDimensionValue to filter metrics by.

" + } + }, "DisplayName": { "base": null, "refs": { @@ -1044,6 +1096,16 @@ "UpdateCustomVerificationEmailTemplateRequest$FailureRedirectionURL": "

The URL that the recipient of the verification email is sent to if his or her address is not successfully verified.

" } }, + "FeatureStatus": { + "base": null, + "refs": { + "DashboardAttributes$EngagementMetrics": "

Specifies the status of your VDM engagement metrics collection. Can be one of the following:

", + "DashboardOptions$EngagementMetrics": "

Specifies the status of your VDM engagement metrics collection. Can be one of the following:

", + "GuardianAttributes$OptimizedSharedDelivery": "

Specifies the status of your VDM optimized shared delivery. Can be one of the following:

", + "GuardianOptions$OptimizedSharedDelivery": "

Specifies the status of your VDM optimized shared delivery. Can be one of the following:

", + "VdmAttributes$VdmEnabled": "

Specifies the status of your VDM configuration. Can be one of the following:

" + } + }, "FeedbackId": { "base": null, "refs": { @@ -1246,6 +1308,18 @@ "refs": { } }, + "GuardianAttributes": { + "base": "

An object containing additional settings for your VDM configuration as applicable to the Guardian.

", + "refs": { + "VdmAttributes$GuardianAttributes": "

Specifies additional settings for your VDM configuration as applicable to the Guardian.

" + } + }, + "GuardianOptions": { + "base": "

An object containing additional settings for your VDM configuration as applicable to the Guardian.

", + "refs": { + "VdmOptions$GuardianOptions": "

Specifies additional settings for your VDM configuration as applicable to the Guardian.

" + } + }, "Identity": { "base": null, "refs": { @@ -1331,6 +1405,11 @@ "DomainDeliverabilityTrackingOption$InboxPlacementTrackingOption": "

An object that contains information about the inbox placement data settings for the domain.

" } }, + "InternalServiceErrorException": { + "base": "

The request couldn't be processed because an error occurred with the Amazon SES API v2.

", + "refs": { + } + }, "InvalidNextTokenException": { "base": "

The specified request includes an invalid or expired token.

", "refs": { @@ -1542,6 +1621,34 @@ "ListDedicatedIpPoolsResponse$DedicatedIpPools": "

A list of all of the dedicated IP pools that are associated with your Amazon Web Services account in the current Region.

" } }, + "ListRecommendationFilterValue": { + "base": null, + "refs": { + "ListRecommendationsFilter$value": null + } + }, + "ListRecommendationsFilter": { + "base": "

An object that contains mapping between ListRecommendationsFilterKey and ListRecommendationFilterValue to filter by.

", + "refs": { + "ListRecommendationsRequest$Filter": "

Filters applied when retrieving recommendations. Can eiter be an individual filter, or combinations of STATUS and IMPACT or STATUS and TYPE

" + } + }, + "ListRecommendationsFilterKey": { + "base": "

The ListRecommendations filter type. This can be one of the following:

", + "refs": { + "ListRecommendationsFilter$key": null + } + }, + "ListRecommendationsRequest": { + "base": "

Represents a request to list the existing recommendations for your account.

", + "refs": { + } + }, + "ListRecommendationsResponse": { + "base": "

Contains the response to your request to retrieve the list of recommendations for your account.

", + "refs": { + } + }, "ListSuppressedDestinationsRequest": { "base": "

A request to obtain a list of email destinations that are on the suppression list for your account.

", "refs": { @@ -1613,6 +1720,7 @@ "ListEmailIdentitiesRequest$PageSize": "

The number of results to show in a single call to ListEmailIdentities. If the number of results is larger than the number you specified in this parameter, then the response includes a NextToken element, which you can use to obtain additional results.

The value you specify has to be at least 0, and can be no more than 1000.

", "ListEmailTemplatesRequest$PageSize": "

The number of results to show in a single call to ListEmailTemplates. If the number of results is larger than the number you specified in this parameter, then the response includes a NextToken element, which you can use to obtain additional results.

The value you specify has to be at least 1, and can be no more than 10.

", "ListImportJobsRequest$PageSize": "

Maximum number of import jobs to return at once. Use this parameter to paginate results. If additional import jobs exist beyond the specified limit, the NextToken element is sent in the response. Use the NextToken value in subsequent requests to retrieve additional addresses.

", + "ListRecommendationsRequest$PageSize": "

The number of results to show in a single call to ListRecommendations. If the number of results is larger than the number you specified in this parameter, then the response includes a NextToken element, which you can use to obtain additional results.

The value you specify has to be at least 1, and can be no more than 100.

", "ListSuppressedDestinationsRequest$PageSize": "

The number of results to show in a single call to ListSuppressedDestinations. If the number of results is larger than the number you specified in this parameter, then the response includes a NextToken element, which you can use to obtain additional results.

" } }, @@ -1671,6 +1779,60 @@ "MessageTag$Value": "

The value of the message tag. The message tag value has to meet the following criteria:

" } }, + "Metric": { + "base": null, + "refs": { + "BatchGetMetricDataQuery$Metric": "

The queried metric. This can be one of the following:

" + } + }, + "MetricDataError": { + "base": "

An error corresponding to the unsuccessful processing of a single metric data query.

", + "refs": { + "MetricDataErrorList$member": null + } + }, + "MetricDataErrorList": { + "base": null, + "refs": { + "BatchGetMetricDataResponse$Errors": "

A list of MetricDataError encountered while processing your metric data batch request.

" + } + }, + "MetricDataResult": { + "base": "

The result of a single metric data query.

", + "refs": { + "MetricDataResultList$member": null + } + }, + "MetricDataResultList": { + "base": null, + "refs": { + "BatchGetMetricDataResponse$Results": "

A list of successfully retrieved MetricDataResult.

" + } + }, + "MetricDimensionName": { + "base": "

The BatchGetMetricDataQuery dimension name. This can be one of the following:

", + "refs": { + "Dimensions$key": null + } + }, + "MetricDimensionValue": { + "base": null, + "refs": { + "Dimensions$value": null + } + }, + "MetricNamespace": { + "base": null, + "refs": { + "BatchGetMetricDataQuery$Namespace": "

The query namespace - e.g. VDM

" + } + }, + "MetricValueList": { + "base": null, + "refs": { + "MetricDataResult$Values": "

A list of values (cumulative / sum) for the metric data results.

" + } + }, "NextToken": { "base": null, "refs": { @@ -1696,6 +1858,8 @@ "ListEmailTemplatesResponse$NextToken": "

A token indicating that there are additional email templates available to be listed. Pass this token to a subsequent ListEmailTemplates call to retrieve the next 10 email templates.

", "ListImportJobsRequest$NextToken": "

A string token indicating that there might be additional import jobs available to be listed. Copy this token to a subsequent call to ListImportJobs with the same parameters to retrieve the next page of import jobs.

", "ListImportJobsResponse$NextToken": "

A string token indicating that there might be additional import jobs available to be listed. Copy this token to a subsequent call to ListImportJobs with the same parameters to retrieve the next page of import jobs.

", + "ListRecommendationsRequest$NextToken": "

A token returned from a previous call to ListRecommendations to indicate the position in the list of recommendations.

", + "ListRecommendationsResponse$NextToken": "

A string token indicating that there might be additional recommendations available to be listed. Use the token provided in the ListRecommendationsResponse to use in the subsequent call to ListRecommendations with the same parameters to retrieve the next page of recommendations.

", "ListSuppressedDestinationsRequest$NextToken": "

A token returned from a previous call to ListSuppressedDestinations to indicate the position in the list of suppressed email addresses.

", "ListSuppressedDestinationsResponse$NextToken": "

A token that indicates that there are additional email addresses on the suppression list for your account. To view additional suppressed addresses, issue another request to ListSuppressedDestinations, and pass this token in the NextToken parameter.

" } @@ -1848,6 +2012,16 @@ "refs": { } }, + "PutAccountVdmAttributesRequest": { + "base": "

A request to submit new account VDM attributes.

", + "refs": { + } + }, + "PutAccountVdmAttributesResponse": { + "base": null, + "refs": { + } + }, "PutConfigurationSetDeliveryOptionsRequest": { "base": "

A request to associate a configuration set with a dedicated IP pool.

", "refs": { @@ -1898,6 +2072,16 @@ "refs": { } }, + "PutConfigurationSetVdmOptionsRequest": { + "base": "

A request to add specific VDM settings to a configuration set.

", + "refs": { + } + }, + "PutConfigurationSetVdmOptionsResponse": { + "base": "

An HTTP 200 response if the request succeeds, or an error message if the request fails.

", + "refs": { + } + }, "PutDedicatedIpInPoolRequest": { "base": "

A request to move a dedicated IP address to a dedicated IP pool.

", "refs": { @@ -1988,6 +2172,26 @@ "refs": { } }, + "QueryErrorCode": { + "base": null, + "refs": { + "MetricDataError$Code": "

The query error code. Can be one of:

" + } + }, + "QueryErrorMessage": { + "base": null, + "refs": { + "MetricDataError$Message": "

The error message associated with the current query error.

" + } + }, + "QueryIdentifier": { + "base": null, + "refs": { + "BatchGetMetricDataQuery$Id": "

The query identifier.

", + "MetricDataError$Id": "

The query identifier.

", + "MetricDataResult$Id": "

The query identifier.

" + } + }, "RawMessage": { "base": "

Represents the raw content of an email message.

", "refs": { @@ -2006,6 +2210,42 @@ "BlacklistEntry$RblName": "

The name of the blacklist that the IP address appears on.

" } }, + "Recommendation": { + "base": "

A recommendation generated for your account.

", + "refs": { + "RecommendationsList$member": null + } + }, + "RecommendationDescription": { + "base": null, + "refs": { + "Recommendation$Description": "

The recommendation description / disambiguator - e.g. DKIM1 and DKIM2 are different recommendations about your DKIM setup.

" + } + }, + "RecommendationImpact": { + "base": null, + "refs": { + "Recommendation$Impact": "

The recommendation impact, with values like HIGH or LOW.

" + } + }, + "RecommendationStatus": { + "base": null, + "refs": { + "Recommendation$Status": "

The recommendation status, with values like OPEN or FIXED.

" + } + }, + "RecommendationType": { + "base": null, + "refs": { + "Recommendation$Type": "

The recommendation type, with values like DKIM, SPF or DMARC.

" + } + }, + "RecommendationsList": { + "base": null, + "refs": { + "ListRecommendationsResponse$Recommendations": "

The recommendations applicable to your account.

" + } + }, "RenderedEmailTemplate": { "base": "

The complete MIME message rendered by applying the data in the TemplateData parameter to the template specified in the TemplateName parameter.

", "refs": { @@ -2314,6 +2554,8 @@ "Timestamp": { "base": null, "refs": { + "BatchGetMetricDataQuery$StartDate": "

Represents the start date for the query interval.

", + "BatchGetMetricDataQuery$EndDate": "

Represents the end date for the query interval.

", "BlacklistEntry$ListingTime": "

The time when the blacklisting event occurred.

", "Contact$LastUpdatedTimestamp": "

A timestamp noting the last time the contact's information was updated.

", "ContactList$LastUpdatedTimestamp": "

A timestamp noting the last time the contact list was updated.

", @@ -2338,8 +2580,17 @@ "ListDomainDeliverabilityCampaignsRequest$EndDate": "

The last day that you want to obtain deliverability data for. This value has to be less than or equal to 30 days after the value of the StartDate parameter.

", "ListSuppressedDestinationsRequest$StartDate": "

Used to filter the list of suppressed email destinations so that it only includes addresses that were added to the list after a specific date.

", "ListSuppressedDestinationsRequest$EndDate": "

Used to filter the list of suppressed email destinations so that it only includes addresses that were added to the list before a specific date.

", + "Recommendation$CreatedTimestamp": "

The first time this issue was encountered and the recommendation was generated.

", + "Recommendation$LastUpdatedTimestamp": "

The last time the recommendation was updated.

", "SuppressedDestination$LastUpdateTime": "

The date and time when the suppressed destination was last updated, shown in Unix time format.

", - "SuppressedDestinationSummary$LastUpdateTime": "

The date and time when the suppressed destination was last updated, shown in Unix time format.

" + "SuppressedDestinationSummary$LastUpdateTime": "

The date and time when the suppressed destination was last updated, shown in Unix time format.

", + "TimestampList$member": null + } + }, + "TimestampList": { + "base": null, + "refs": { + "MetricDataResult$Timestamps": "

A list of timestamps for the metric data results.

" } }, "TlsPolicy": { @@ -2499,6 +2750,21 @@ "TopicFilter$UseDefaultIfPreferenceUnavailable": "

Notes that the default subscription status should be applied to a contact because the contact has not noted their preference for subscribing to a topic.

" } }, + "VdmAttributes": { + "base": "

The VDM attributes that apply to your Amazon SES account.

", + "refs": { + "GetAccountResponse$VdmAttributes": "

The VDM attributes that apply to your Amazon SES account.

", + "PutAccountVdmAttributesRequest$VdmAttributes": "

The VDM attributes that you wish to apply to your Amazon SES account.

" + } + }, + "VdmOptions": { + "base": "

An object that defines the VDM settings that apply to emails that you send using the configuration set.

", + "refs": { + "CreateConfigurationSetRequest$VdmOptions": "

An object that defines the VDM options for emails that you send using the configuration set.

", + "GetConfigurationSetResponse$VdmOptions": "

An object that contains information about the VDM preferences for your configuration set.

", + "PutConfigurationSetVdmOptionsRequest$VdmOptions": "

The VDM options to apply to the configuration set.

" + } + }, "VerificationStatus": { "base": null, "refs": { diff --git a/models/apis/sesv2/2019-09-27/endpoint-rule-set-1.json b/models/apis/sesv2/2019-09-27/endpoint-rule-set-1.json index 15ffbd7a1b..103753b59b 100644 --- a/models/apis/sesv2/2019-09-27/endpoint-rule-set-1.json +++ b/models/apis/sesv2/2019-09-27/endpoint-rule-set-1.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, diff --git a/models/apis/sesv2/2019-09-27/paginators-1.json b/models/apis/sesv2/2019-09-27/paginators-1.json index 3d39be48f4..188b42d8a1 100644 --- a/models/apis/sesv2/2019-09-27/paginators-1.json +++ b/models/apis/sesv2/2019-09-27/paginators-1.json @@ -55,6 +55,11 @@ "output_token": "NextToken", "limit_key": "PageSize" }, + "ListRecommendations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize" + }, "ListSuppressedDestinations": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/models/apis/textract/2018-06-27/api-2.json b/models/apis/textract/2018-06-27/api-2.json index ce263d5885..9c52b88c77 100644 --- a/models/apis/textract/2018-06-27/api-2.json +++ b/models/apis/textract/2018-06-27/api-2.json @@ -419,6 +419,13 @@ "member":{"shape":"EntityType"} }, "ErrorCode":{"type":"string"}, + "ExpenseCurrency":{ + "type":"structure", + "members":{ + "Code":{"shape":"String"}, + "Confidence":{"shape":"Percent"} + } + }, "ExpenseDetection":{ "type":"structure", "members":{ @@ -432,7 +439,8 @@ "members":{ "ExpenseIndex":{"shape":"UInteger"}, "SummaryFields":{"shape":"ExpenseFieldList"}, - "LineItemGroups":{"shape":"LineItemGroupList"} + "LineItemGroups":{"shape":"LineItemGroupList"}, + "Blocks":{"shape":"BlockList"} } }, "ExpenseDocumentList":{ @@ -445,13 +453,26 @@ "Type":{"shape":"ExpenseType"}, "LabelDetection":{"shape":"ExpenseDetection"}, "ValueDetection":{"shape":"ExpenseDetection"}, - "PageNumber":{"shape":"UInteger"} + "PageNumber":{"shape":"UInteger"}, + "Currency":{"shape":"ExpenseCurrency"}, + "GroupProperties":{"shape":"ExpenseGroupPropertyList"} } }, "ExpenseFieldList":{ "type":"list", "member":{"shape":"ExpenseField"} }, + "ExpenseGroupProperty":{ + "type":"structure", + "members":{ + "Types":{"shape":"StringList"}, + "Id":{"shape":"String"} + } + }, + "ExpenseGroupPropertyList":{ + "type":"list", + "member":{"shape":"ExpenseGroupProperty"} + }, "ExpenseType":{ "type":"structure", "members":{ @@ -958,6 +979,10 @@ }, "StatusMessage":{"type":"string"}, "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, "TextType":{ "type":"string", "enum":[ diff --git a/models/apis/textract/2018-06-27/docs-2.json b/models/apis/textract/2018-06-27/docs-2.json index b695884e98..69d3fa2987 100644 --- a/models/apis/textract/2018-06-27/docs-2.json +++ b/models/apis/textract/2018-06-27/docs-2.json @@ -2,11 +2,11 @@ "version": "2.0", "service": "

Amazon Textract detects and analyzes text in documents and converts it into machine-readable text. This is the API reference documentation for Amazon Textract.

", "operations": { - "AnalyzeDocument": "

Analyzes an input document for relationships between detected items.

The types of information returned are as follows:

Selection elements such as check boxes and option buttons (radio buttons) can be detected in form data and in tables. A SELECTION_ELEMENT Block object contains information about a selection element, including the selection status.

You can choose which type of analysis to perform by specifying the FeatureTypes list.

The output is returned in a list of Block objects.

AnalyzeDocument is a synchronous operation. To analyze documents asynchronously, use StartDocumentAnalysis.

For more information, see Document Text Analysis.

", - "AnalyzeExpense": "

AnalyzeExpense synchronously analyzes an input document for financially related relationships between text.

Information is returned as ExpenseDocuments and seperated as follows.

", + "AnalyzeDocument": "

Analyzes an input document for relationships between detected items.

The types of information returned are as follows:

Selection elements such as check boxes and option buttons (radio buttons) can be detected in form data and in tables. A SELECTION_ELEMENT Block object contains information about a selection element, including the selection status.

You can choose which type of analysis to perform by specifying the FeatureTypes list.

The output is returned in a list of Block objects.

AnalyzeDocument is a synchronous operation. To analyze documents asynchronously, use StartDocumentAnalysis.

For more information, see Document Text Analysis.

", + "AnalyzeExpense": "

AnalyzeExpense synchronously analyzes an input document for financially related relationships between text.

Information is returned as ExpenseDocuments and seperated as follows:

", "AnalyzeID": "

Analyzes identity documents for relevant information. This information is extracted and returned as IdentityDocumentFields, which records both the normalized field and value of the extracted text.Unlike other Amazon Textract operations, AnalyzeID doesn't return any Geometry data.

", - "DetectDocumentText": "

Detects text in the input document. Amazon Textract can detect lines of text and the words that make up a line of text. The input document must be an image in JPEG, PNG, PDF, or TIFF format. DetectDocumentText returns the detected text in an array of Block objects.

Each document page has as an associated Block of type PAGE. Each PAGE Block object is the parent of LINE Block objects that represent the lines of detected text on a page. A LINE Block object is a parent for each word that makes up the line. Words are represented by Block objects of type WORD.

DetectDocumentText is a synchronous operation. To analyze documents asynchronously, use StartDocumentTextDetection.

For more information, see Document Text Detection.

", - "GetDocumentAnalysis": "

Gets the results for an Amazon Textract asynchronous operation that analyzes text in a document.

You start asynchronous text analysis by calling StartDocumentAnalysis, which returns a job identifier (JobId). When the text analysis operation finishes, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that's registered in the initial call to StartDocumentAnalysis. To get the results of the text-detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetDocumentAnalysis, and pass the job identifier (JobId) from the initial call to StartDocumentAnalysis.

GetDocumentAnalysis returns an array of Block objects. The following types of information are returned:

Selection elements such as check boxes and option buttons (radio buttons) can be detected in form data and in tables. A SELECTION_ELEMENT Block object contains information about a selection element, including the selection status.

Use the MaxResults parameter to limit the number of blocks that are returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetDocumentAnalysis, and populate the NextToken request parameter with the token value that's returned from the previous call to GetDocumentAnalysis.

For more information, see Document Text Analysis.

", + "DetectDocumentText": "

Detects text in the input document. Amazon Textract can detect lines of text and the words that make up a line of text. The input document must be in one of the following image formats: JPEG, PNG, PDF, or TIFF. DetectDocumentText returns the detected text in an array of Block objects.

Each document page has as an associated Block of type PAGE. Each PAGE Block object is the parent of LINE Block objects that represent the lines of detected text on a page. A LINE Block object is a parent for each word that makes up the line. Words are represented by Block objects of type WORD.

DetectDocumentText is a synchronous operation. To analyze documents asynchronously, use StartDocumentTextDetection.

For more information, see Document Text Detection.

", + "GetDocumentAnalysis": "

Gets the results for an Amazon Textract asynchronous operation that analyzes text in a document.

You start asynchronous text analysis by calling StartDocumentAnalysis, which returns a job identifier (JobId). When the text analysis operation finishes, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that's registered in the initial call to StartDocumentAnalysis. To get the results of the text-detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetDocumentAnalysis, and pass the job identifier (JobId) from the initial call to StartDocumentAnalysis.

GetDocumentAnalysis returns an array of Block objects. The following types of information are returned:

While processing a document with queries, look out for INVALID_REQUEST_PARAMETERS output. This indicates that either the per page query limit has been exceeded or that the operation is trying to query a page in the document which doesn’t exist.

Selection elements such as check boxes and option buttons (radio buttons) can be detected in form data and in tables. A SELECTION_ELEMENT Block object contains information about a selection element, including the selection status.

Use the MaxResults parameter to limit the number of blocks that are returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetDocumentAnalysis, and populate the NextToken request parameter with the token value that's returned from the previous call to GetDocumentAnalysis.

For more information, see Document Text Analysis.

", "GetDocumentTextDetection": "

Gets the results for an Amazon Textract asynchronous operation that detects text in a document. Amazon Textract can detect lines of text and the words that make up a line of text.

You start asynchronous text detection by calling StartDocumentTextDetection, which returns a job identifier (JobId). When the text detection operation finishes, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that's registered in the initial call to StartDocumentTextDetection. To get the results of the text-detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetDocumentTextDetection, and pass the job identifier (JobId) from the initial call to StartDocumentTextDetection.

GetDocumentTextDetection returns an array of Block objects.

Each document page has as an associated Block of type PAGE. Each PAGE Block object is the parent of LINE Block objects that represent the lines of detected text on a page. A LINE Block object is a parent for each word that makes up the line. Words are represented by Block objects of type WORD.

Use the MaxResults parameter to limit the number of blocks that are returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetDocumentTextDetection, and populate the NextToken request parameter with the token value that's returned from the previous call to GetDocumentTextDetection.

For more information, see Document Text Detection.

", "GetExpenseAnalysis": "

Gets the results for an Amazon Textract asynchronous operation that analyzes invoices and receipts. Amazon Textract finds contact information, items purchased, and vendor name, from input invoices and receipts.

You start asynchronous invoice/receipt analysis by calling StartExpenseAnalysis, which returns a job identifier (JobId). Upon completion of the invoice/receipt analysis, Amazon Textract publishes the completion status to the Amazon Simple Notification Service (Amazon SNS) topic. This topic must be registered in the initial call to StartExpenseAnalysis. To get the results of the invoice/receipt analysis operation, first ensure that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetExpenseAnalysis, and pass the job identifier (JobId) from the initial call to StartExpenseAnalysis.

Use the MaxResults parameter to limit the number of blocks that are returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetExpenseAnalysis, and populate the NextToken request parameter with the token value that's returned from the previous call to GetExpenseAnalysis.

For more information, see Analyzing Invoices and Receipts.

", "StartDocumentAnalysis": "

Starts the asynchronous analysis of an input document for relationships between detected items such as key-value pairs, tables, and selection elements.

StartDocumentAnalysis can analyze text in documents that are in JPEG, PNG, TIFF, and PDF format. The documents are stored in an Amazon S3 bucket. Use DocumentLocation to specify the bucket name and file name of the document.

StartDocumentAnalysis returns a job identifier (JobId) that you use to get the results of the operation. When text analysis is finished, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that you specify in NotificationChannel. To get the results of the text analysis operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetDocumentAnalysis, and pass the job identifier (JobId) from the initial call to StartDocumentAnalysis.

For more information, see Document Text Analysis.

", @@ -72,6 +72,7 @@ "refs": { "AnalyzeDocumentResponse$Blocks": "

The items that are detected and analyzed by AnalyzeDocument.

", "DetectDocumentTextResponse$Blocks": "

An array of Block objects that contain the text that's detected in the document.

", + "ExpenseDocument$Blocks": "

This is a block object, the same as reported when DetectDocumentText is run on a document. It provides word level recognition of text.

", "GetDocumentAnalysisResponse$Blocks": "

The results of the text-analysis operation.

", "GetDocumentTextDetectionResponse$Blocks": "

The results of the text-detection operation.

" } @@ -79,7 +80,7 @@ "BlockType": { "base": null, "refs": { - "Block$BlockType": "

The type of text item that's recognized. In operations for text detection, the following types are returned:

In text analysis operations, the following types are returned:

" + "Block$BlockType": "

The type of text item that's recognized. In operations for text detection, the following types are returned:

In text analysis operations, the following types are returned:

" } }, "BoundingBox": { @@ -176,6 +177,12 @@ "Warning$ErrorCode": "

The error code for the warning.

" } }, + "ExpenseCurrency": { + "base": "

Returns the kind of currency detected.

", + "refs": { + "ExpenseField$Currency": "

Shows the kind of currency, both the code and confidence associated with any monatary value detected.

" + } + }, "ExpenseDetection": { "base": "

An object used to store information about the Value or Label detected by Amazon Textract.

", "refs": { @@ -209,6 +216,18 @@ "LineItemFields$LineItemExpenseFields": "

ExpenseFields used to show information from detected lines on a table.

" } }, + "ExpenseGroupProperty": { + "base": "

Shows the group that a certain key belongs to. This helps differentiate responses like addresses that can appear similar in response JSON.

", + "refs": { + "ExpenseGroupPropertyList$member": null + } + }, + "ExpenseGroupPropertyList": { + "base": null, + "refs": { + "ExpenseField$GroupProperties": "

Shows which group a response object belongs to, such as whether an address line belongs to the vendor's address or the recipent's address.

" + } + }, "ExpenseType": { "base": "

An object used to store information about the Type detected by Amazon Textract.

", "refs": { @@ -524,6 +543,7 @@ "refs": { "AnalyzeIDDetections$Confidence": "

The confidence score of the detected text.

", "Block$Confidence": "

The confidence score that Amazon Textract has in the accuracy of the recognized text and the accuracy of the geometry points around the recognized text.

", + "ExpenseCurrency$Confidence": "

Percentage confideence in the detected currency.

", "ExpenseDetection$Confidence": "

The confidence in detection, as a percentage

", "ExpenseType$Confidence": "

The confidence of accuracy, as a percentage.

" } @@ -581,7 +601,7 @@ "QueryPages": { "base": null, "refs": { - "Query$Pages": "

List of pages associated with the query. The following is a list of rules for using this parameter.

" + "Query$Pages": "

Pages is a parameter that the user inputs to specify which pages to apply a query to. The following is a list of rules for using this parameter.

" } }, "Relationship": { @@ -693,7 +713,9 @@ "AnalyzeIDResponse$AnalyzeIDModelVersion": "

The version of the AnalyzeIdentity API being used to process documents.

", "Block$Text": "

The word or line of text that's recognized by Amazon Textract.

", "DetectDocumentTextResponse$DetectDocumentTextModelVersion": "

", + "ExpenseCurrency$Code": "

Currency code for detected currency.

", "ExpenseDetection$Text": "

The word or line of text recognized by Amazon Textract

", + "ExpenseGroupProperty$Id": "

Provides a group Id number, which will be the same for each in the group.

", "ExpenseType$Text": "

The word or line of text detected by Amazon Textract.

", "GetDocumentAnalysisResponse$AnalyzeDocumentModelVersion": "

", "GetDocumentTextDetectionResponse$DetectDocumentTextModelVersion": "

", @@ -701,7 +723,14 @@ "HumanLoopQuotaExceededException$ResourceType": "

The resource type.

", "HumanLoopQuotaExceededException$QuotaCode": "

The quota code.

", "HumanLoopQuotaExceededException$ServiceCode": "

The service code.

", - "NormalizedValue$Value": "

The value of the date, written as Year-Month-DayTHour:Minute:Second.

" + "NormalizedValue$Value": "

The value of the date, written as Year-Month-DayTHour:Minute:Second.

", + "StringList$member": null + } + }, + "StringList": { + "base": null, + "refs": { + "ExpenseGroupProperty$Types": "

Informs you on the kind of label associated with the group

" } }, "TextType": { @@ -722,7 +751,7 @@ "Block$ColumnIndex": "

The column in which a table cell appears. The first column position is 1. ColumnIndex isn't returned by DetectDocumentText and GetDocumentTextDetection.

", "Block$RowSpan": "

The number of rows that a table cell spans. Currently this value is always 1, even if the number of rows spanned is greater than 1. RowSpan isn't returned by DetectDocumentText and GetDocumentTextDetection.

", "Block$ColumnSpan": "

The number of columns that a table cell spans. Currently this value is always 1, even if the number of columns spanned is greater than 1. ColumnSpan isn't returned by DetectDocumentText and GetDocumentTextDetection.

", - "Block$Page": "

The page on which a block was detected. Page is returned by asynchronous operations. Page values greater than 1 are only returned for multipage documents that are in PDF or TIFF format. A scanned image (JPEG/PNG), even if it contains multiple document pages, is considered to be a single-page document. The value of Page is always 1. Synchronous operations don't return Page because every input document is considered to be a single-page document.

", + "Block$Page": "

The page on which a block was detected. Page is returned by synchronous and asynchronous operations. Page values greater than 1 are only returned for multipage documents that are in PDF or TIFF format. A scanned image (JPEG/PNG) provided to an asynchronous operation, even if it contains multiple document pages, is considered a single-page document. This means that for scanned images the value of Page is always 1. Synchronous operations operations will also return a Page value of 1 because every input document is considered to be a single-page document.

", "DocumentMetadata$Pages": "

The number of pages that are detected in the document.

", "ExpenseDocument$ExpenseIndex": "

Denotes which invoice or receipt in the document the information is coming from. First document will be 1, the second 2, and so on.

", "ExpenseField$PageNumber": "

The page number the value was detected on.

", diff --git a/models/apis/textract/2018-06-27/endpoint-rule-set-1.json b/models/apis/textract/2018-06-27/endpoint-rule-set-1.json new file mode 100644 index 0000000000..1a38c64786 --- /dev/null +++ b/models/apis/textract/2018-06-27/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://textract-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://textract-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://textract.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://textract.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/textract/2018-06-27/endpoint-tests-1.json b/models/apis/textract/2018-06-27/endpoint-tests-1.json new file mode 100644 index 0000000000..40ad9a46b8 --- /dev/null +++ b/models/apis/textract/2018-06-27/endpoint-tests-1.json @@ -0,0 +1,871 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index f31c07f025..4b10aa4e1a 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -6367,6 +6367,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "fsx-fips.ca-central-1.amazonaws.com", @@ -12055,6 +12056,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "tags" : [ "fips" ] diff --git a/service/apprunner/api.go b/service/apprunner/api.go index 54c3cdd4c1..a3ce60d4df 100644 --- a/service/apprunner/api.go +++ b/service/apprunner/api.go @@ -605,6 +605,101 @@ func (c *AppRunner) CreateVpcConnectorWithContext(ctx aws.Context, input *Create return out, req.Send() } +const opCreateVpcIngressConnection = "CreateVpcIngressConnection" + +// CreateVpcIngressConnectionRequest generates a "aws/request.Request" representing the +// client's request for the CreateVpcIngressConnection operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateVpcIngressConnection for more information on using the CreateVpcIngressConnection +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateVpcIngressConnectionRequest method. +// req, resp := client.CreateVpcIngressConnectionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/CreateVpcIngressConnection +func (c *AppRunner) CreateVpcIngressConnectionRequest(input *CreateVpcIngressConnectionInput) (req *request.Request, output *CreateVpcIngressConnectionOutput) { + op := &request.Operation{ + Name: opCreateVpcIngressConnection, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateVpcIngressConnectionInput{} + } + + output = &CreateVpcIngressConnectionOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateVpcIngressConnection API operation for AWS App Runner. +// +// Create an App Runner VPC Ingress Connection resource. App Runner requires +// this resource when you want to associate your App Runner service with an +// Amazon VPC endpoint. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS App Runner's +// API operation CreateVpcIngressConnection for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// One or more input parameters aren't valid. Refer to the API action's document +// page, correct the input parameters, and try the action again. +// +// - InvalidStateException +// You can't perform this action when the resource is in its current state. +// +// - InternalServiceErrorException +// An unexpected service exception occurred. +// +// - ServiceQuotaExceededException +// App Runner can't create this resource. You've reached your account quota +// for this resource type. +// +// For App Runner per-resource quotas, see App Runner endpoints and quotas (https://docs.aws.amazon.com/general/latest/gr/apprunner.html) +// in the Amazon Web Services General Reference. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/CreateVpcIngressConnection +func (c *AppRunner) CreateVpcIngressConnection(input *CreateVpcIngressConnectionInput) (*CreateVpcIngressConnectionOutput, error) { + req, out := c.CreateVpcIngressConnectionRequest(input) + return out, req.Send() +} + +// CreateVpcIngressConnectionWithContext is the same as CreateVpcIngressConnection with the addition of +// the ability to pass a context and additional request options. +// +// See CreateVpcIngressConnection for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppRunner) CreateVpcIngressConnectionWithContext(ctx aws.Context, input *CreateVpcIngressConnectionInput, opts ...request.Option) (*CreateVpcIngressConnectionOutput, error) { + req, out := c.CreateVpcIngressConnectionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteAutoScalingConfiguration = "DeleteAutoScalingConfiguration" // DeleteAutoScalingConfigurationRequest generates a "aws/request.Request" representing the @@ -921,6 +1016,9 @@ func (c *AppRunner) DeleteServiceRequest(input *DeleteServiceInput) (req *reques // returned OperationId and the ListOperations call to track the operation's // progress. // +// Make sure that you don't have any active VPCIngressConnections associated +// with the service you want to delete. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -1054,6 +1152,106 @@ func (c *AppRunner) DeleteVpcConnectorWithContext(ctx aws.Context, input *Delete return out, req.Send() } +const opDeleteVpcIngressConnection = "DeleteVpcIngressConnection" + +// DeleteVpcIngressConnectionRequest generates a "aws/request.Request" representing the +// client's request for the DeleteVpcIngressConnection operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteVpcIngressConnection for more information on using the DeleteVpcIngressConnection +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteVpcIngressConnectionRequest method. +// req, resp := client.DeleteVpcIngressConnectionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/DeleteVpcIngressConnection +func (c *AppRunner) DeleteVpcIngressConnectionRequest(input *DeleteVpcIngressConnectionInput) (req *request.Request, output *DeleteVpcIngressConnectionOutput) { + op := &request.Operation{ + Name: opDeleteVpcIngressConnection, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteVpcIngressConnectionInput{} + } + + output = &DeleteVpcIngressConnectionOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteVpcIngressConnection API operation for AWS App Runner. +// +// Delete an App Runner VPC Ingress Connection resource that's associated with +// an App Runner service. The VPC Ingress Connection must be in one of the following +// states to be deleted: +// +// - AVAILABLE +// +// - FAILED_CREATION +// +// - FAILED_UPDATE +// +// - FAILED_DELETION +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS App Runner's +// API operation DeleteVpcIngressConnection for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// One or more input parameters aren't valid. Refer to the API action's document +// page, correct the input parameters, and try the action again. +// +// - InternalServiceErrorException +// An unexpected service exception occurred. +// +// - ResourceNotFoundException +// A resource doesn't exist for the specified Amazon Resource Name (ARN) in +// your Amazon Web Services account. +// +// - InvalidStateException +// You can't perform this action when the resource is in its current state. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/DeleteVpcIngressConnection +func (c *AppRunner) DeleteVpcIngressConnection(input *DeleteVpcIngressConnectionInput) (*DeleteVpcIngressConnectionOutput, error) { + req, out := c.DeleteVpcIngressConnectionRequest(input) + return out, req.Send() +} + +// DeleteVpcIngressConnectionWithContext is the same as DeleteVpcIngressConnection with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteVpcIngressConnection for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppRunner) DeleteVpcIngressConnectionWithContext(ctx aws.Context, input *DeleteVpcIngressConnectionInput, opts ...request.Option) (*DeleteVpcIngressConnectionOutput, error) { + req, out := c.DeleteVpcIngressConnectionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeAutoScalingConfiguration = "DescribeAutoScalingConfiguration" // DescribeAutoScalingConfigurationRequest generates a "aws/request.Request" representing the @@ -1548,6 +1746,93 @@ func (c *AppRunner) DescribeVpcConnectorWithContext(ctx aws.Context, input *Desc return out, req.Send() } +const opDescribeVpcIngressConnection = "DescribeVpcIngressConnection" + +// DescribeVpcIngressConnectionRequest generates a "aws/request.Request" representing the +// client's request for the DescribeVpcIngressConnection operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DescribeVpcIngressConnection for more information on using the DescribeVpcIngressConnection +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DescribeVpcIngressConnectionRequest method. +// req, resp := client.DescribeVpcIngressConnectionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/DescribeVpcIngressConnection +func (c *AppRunner) DescribeVpcIngressConnectionRequest(input *DescribeVpcIngressConnectionInput) (req *request.Request, output *DescribeVpcIngressConnectionOutput) { + op := &request.Operation{ + Name: opDescribeVpcIngressConnection, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeVpcIngressConnectionInput{} + } + + output = &DescribeVpcIngressConnectionOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeVpcIngressConnection API operation for AWS App Runner. +// +// Return a full description of an App Runner VPC Ingress Connection resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS App Runner's +// API operation DescribeVpcIngressConnection for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// One or more input parameters aren't valid. Refer to the API action's document +// page, correct the input parameters, and try the action again. +// +// - InternalServiceErrorException +// An unexpected service exception occurred. +// +// - ResourceNotFoundException +// A resource doesn't exist for the specified Amazon Resource Name (ARN) in +// your Amazon Web Services account. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/DescribeVpcIngressConnection +func (c *AppRunner) DescribeVpcIngressConnection(input *DescribeVpcIngressConnectionInput) (*DescribeVpcIngressConnectionOutput, error) { + req, out := c.DescribeVpcIngressConnectionRequest(input) + return out, req.Send() +} + +// DescribeVpcIngressConnectionWithContext is the same as DescribeVpcIngressConnection with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeVpcIngressConnection for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppRunner) DescribeVpcIngressConnectionWithContext(ctx aws.Context, input *DescribeVpcIngressConnectionInput, opts ...request.Option) (*DescribeVpcIngressConnectionOutput, error) { + req, out := c.DescribeVpcIngressConnectionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDisassociateCustomDomain = "DisassociateCustomDomain" // DisassociateCustomDomainRequest generates a "aws/request.Request" representing the @@ -2596,62 +2881,64 @@ func (c *AppRunner) ListVpcConnectorsPagesWithContext(ctx aws.Context, input *Li return p.Err() } -const opPauseService = "PauseService" +const opListVpcIngressConnections = "ListVpcIngressConnections" -// PauseServiceRequest generates a "aws/request.Request" representing the -// client's request for the PauseService operation. The "output" return +// ListVpcIngressConnectionsRequest generates a "aws/request.Request" representing the +// client's request for the ListVpcIngressConnections operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See PauseService for more information on using the PauseService +// See ListVpcIngressConnections for more information on using the ListVpcIngressConnections // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PauseServiceRequest method. -// req, resp := client.PauseServiceRequest(params) +// // Example sending a request using the ListVpcIngressConnectionsRequest method. +// req, resp := client.ListVpcIngressConnectionsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/PauseService -func (c *AppRunner) PauseServiceRequest(input *PauseServiceInput) (req *request.Request, output *PauseServiceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/ListVpcIngressConnections +func (c *AppRunner) ListVpcIngressConnectionsRequest(input *ListVpcIngressConnectionsInput) (req *request.Request, output *ListVpcIngressConnectionsOutput) { op := &request.Operation{ - Name: opPauseService, + Name: opListVpcIngressConnections, HTTPMethod: "POST", HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { - input = &PauseServiceInput{} + input = &ListVpcIngressConnectionsInput{} } - output = &PauseServiceOutput{} + output = &ListVpcIngressConnectionsOutput{} req = c.newRequest(op, input, output) return } -// PauseService API operation for AWS App Runner. -// -// Pause an active App Runner service. App Runner reduces compute capacity for -// the service to zero and loses state (for example, ephemeral storage is removed). +// ListVpcIngressConnections API operation for AWS App Runner. // -// This is an asynchronous operation. On a successful call, you can use the -// returned OperationId and the ListOperations call to track the operation's -// progress. +// Return a list of App Runner VPC Ingress Connections in your Amazon Web Services +// account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS App Runner's -// API operation PauseService for usage and error information. +// API operation ListVpcIngressConnections for usage and error information. // // Returned Error Types: // @@ -2659,42 +2946,181 @@ func (c *AppRunner) PauseServiceRequest(input *PauseServiceInput) (req *request. // One or more input parameters aren't valid. Refer to the API action's document // page, correct the input parameters, and try the action again. // -// - ResourceNotFoundException -// A resource doesn't exist for the specified Amazon Resource Name (ARN) in -// your Amazon Web Services account. -// // - InternalServiceErrorException // An unexpected service exception occurred. // -// - InvalidStateException -// You can't perform this action when the resource is in its current state. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/PauseService -func (c *AppRunner) PauseService(input *PauseServiceInput) (*PauseServiceOutput, error) { - req, out := c.PauseServiceRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/ListVpcIngressConnections +func (c *AppRunner) ListVpcIngressConnections(input *ListVpcIngressConnectionsInput) (*ListVpcIngressConnectionsOutput, error) { + req, out := c.ListVpcIngressConnectionsRequest(input) return out, req.Send() } -// PauseServiceWithContext is the same as PauseService with the addition of +// ListVpcIngressConnectionsWithContext is the same as ListVpcIngressConnections with the addition of // the ability to pass a context and additional request options. // -// See PauseService for details on how to use this API operation. +// See ListVpcIngressConnections for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *AppRunner) PauseServiceWithContext(ctx aws.Context, input *PauseServiceInput, opts ...request.Option) (*PauseServiceOutput, error) { - req, out := c.PauseServiceRequest(input) +func (c *AppRunner) ListVpcIngressConnectionsWithContext(ctx aws.Context, input *ListVpcIngressConnectionsInput, opts ...request.Option) (*ListVpcIngressConnectionsOutput, error) { + req, out := c.ListVpcIngressConnectionsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opResumeService = "ResumeService" - -// ResumeServiceRequest generates a "aws/request.Request" representing the -// client's request for the ResumeService operation. The "output" return +// ListVpcIngressConnectionsPages iterates over the pages of a ListVpcIngressConnections operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListVpcIngressConnections method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListVpcIngressConnections operation. +// pageNum := 0 +// err := client.ListVpcIngressConnectionsPages(params, +// func(page *apprunner.ListVpcIngressConnectionsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *AppRunner) ListVpcIngressConnectionsPages(input *ListVpcIngressConnectionsInput, fn func(*ListVpcIngressConnectionsOutput, bool) bool) error { + return c.ListVpcIngressConnectionsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListVpcIngressConnectionsPagesWithContext same as ListVpcIngressConnectionsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppRunner) ListVpcIngressConnectionsPagesWithContext(ctx aws.Context, input *ListVpcIngressConnectionsInput, fn func(*ListVpcIngressConnectionsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListVpcIngressConnectionsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListVpcIngressConnectionsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListVpcIngressConnectionsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opPauseService = "PauseService" + +// PauseServiceRequest generates a "aws/request.Request" representing the +// client's request for the PauseService operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PauseService for more information on using the PauseService +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the PauseServiceRequest method. +// req, resp := client.PauseServiceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/PauseService +func (c *AppRunner) PauseServiceRequest(input *PauseServiceInput) (req *request.Request, output *PauseServiceOutput) { + op := &request.Operation{ + Name: opPauseService, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PauseServiceInput{} + } + + output = &PauseServiceOutput{} + req = c.newRequest(op, input, output) + return +} + +// PauseService API operation for AWS App Runner. +// +// Pause an active App Runner service. App Runner reduces compute capacity for +// the service to zero and loses state (for example, ephemeral storage is removed). +// +// This is an asynchronous operation. On a successful call, you can use the +// returned OperationId and the ListOperations call to track the operation's +// progress. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS App Runner's +// API operation PauseService for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// One or more input parameters aren't valid. Refer to the API action's document +// page, correct the input parameters, and try the action again. +// +// - ResourceNotFoundException +// A resource doesn't exist for the specified Amazon Resource Name (ARN) in +// your Amazon Web Services account. +// +// - InternalServiceErrorException +// An unexpected service exception occurred. +// +// - InvalidStateException +// You can't perform this action when the resource is in its current state. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/PauseService +func (c *AppRunner) PauseService(input *PauseServiceInput) (*PauseServiceOutput, error) { + req, out := c.PauseServiceRequest(input) + return out, req.Send() +} + +// PauseServiceWithContext is the same as PauseService with the addition of +// the ability to pass a context and additional request options. +// +// See PauseService for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppRunner) PauseServiceWithContext(ctx aws.Context, input *PauseServiceInput, opts ...request.Option) (*PauseServiceOutput, error) { + req, out := c.PauseServiceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opResumeService = "ResumeService" + +// ResumeServiceRequest generates a "aws/request.Request" representing the +// client's request for the ResumeService operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // @@ -3167,6 +3593,103 @@ func (c *AppRunner) UpdateServiceWithContext(ctx aws.Context, input *UpdateServi return out, req.Send() } +const opUpdateVpcIngressConnection = "UpdateVpcIngressConnection" + +// UpdateVpcIngressConnectionRequest generates a "aws/request.Request" representing the +// client's request for the UpdateVpcIngressConnection operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateVpcIngressConnection for more information on using the UpdateVpcIngressConnection +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateVpcIngressConnectionRequest method. +// req, resp := client.UpdateVpcIngressConnectionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/UpdateVpcIngressConnection +func (c *AppRunner) UpdateVpcIngressConnectionRequest(input *UpdateVpcIngressConnectionInput) (req *request.Request, output *UpdateVpcIngressConnectionOutput) { + op := &request.Operation{ + Name: opUpdateVpcIngressConnection, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateVpcIngressConnectionInput{} + } + + output = &UpdateVpcIngressConnectionOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateVpcIngressConnection API operation for AWS App Runner. +// +// Update an existing App Runner VPC Ingress Connection resource. The VPC Ingress +// Connection must be in one of the following states to be updated: +// +// - AVAILABLE +// +// - FAILED_CREATION +// +// - FAILED_UPDATE +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS App Runner's +// API operation UpdateVpcIngressConnection for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// One or more input parameters aren't valid. Refer to the API action's document +// page, correct the input parameters, and try the action again. +// +// - ResourceNotFoundException +// A resource doesn't exist for the specified Amazon Resource Name (ARN) in +// your Amazon Web Services account. +// +// - InvalidStateException +// You can't perform this action when the resource is in its current state. +// +// - InternalServiceErrorException +// An unexpected service exception occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/UpdateVpcIngressConnection +func (c *AppRunner) UpdateVpcIngressConnection(input *UpdateVpcIngressConnectionInput) (*UpdateVpcIngressConnectionOutput, error) { + req, out := c.UpdateVpcIngressConnectionRequest(input) + return out, req.Send() +} + +// UpdateVpcIngressConnectionWithContext is the same as UpdateVpcIngressConnection with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateVpcIngressConnection for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppRunner) UpdateVpcIngressConnectionWithContext(ctx aws.Context, input *UpdateVpcIngressConnectionInput, opts ...request.Option) (*UpdateVpcIngressConnectionOutput, error) { + req, out := c.UpdateVpcIngressConnectionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + type AssociateCustomDomainInput struct { _ struct{} `type:"structure"` @@ -3267,6 +3790,11 @@ type AssociateCustomDomainOutput struct { // // ServiceArn is a required field ServiceArn *string `min:"1" type:"string" required:"true"` + + // DNS Target records for the custom domains of this Amazon VPC. + // + // VpcDNSTargets is a required field + VpcDNSTargets []*VpcDNSTarget `type:"list" required:"true"` } // String returns the string representation. @@ -3305,6 +3833,12 @@ func (s *AssociateCustomDomainOutput) SetServiceArn(v string) *AssociateCustomDo return s } +// SetVpcDNSTargets sets the VpcDNSTargets field's value. +func (s *AssociateCustomDomainOutput) SetVpcDNSTargets(v []*VpcDNSTarget) *AssociateCustomDomainOutput { + s.VpcDNSTargets = v + return s +} + // Describes resources needed to authenticate access to some source repositories. // The specific resource depends on the repository provider. type AuthenticationConfiguration struct { @@ -4793,30 +5327,32 @@ func (s *CreateVpcConnectorOutput) SetVpcConnector(v *VpcConnector) *CreateVpcCo return s } -// Describes a custom domain that's associated with an App Runner service. -type CustomDomain struct { +type CreateVpcIngressConnectionInput struct { _ struct{} `type:"structure"` - // A list of certificate CNAME records that's used for this domain name. - CertificateValidationRecords []*CertificateValidationRecord `type:"list"` - - // An associated custom domain endpoint. It can be a root domain (for example, - // example.com), a subdomain (for example, login.example.com or admin.login.example.com), - // or a wildcard (for example, *.example.com). + // Specifications for the customer’s Amazon VPC and the related Amazon Web + // Services PrivateLink VPC endpoint that are used to create the VPC Ingress + // Connection resource. // - // DomainName is a required field - DomainName *string `min:"1" type:"string" required:"true"` + // IngressVpcConfiguration is a required field + IngressVpcConfiguration *IngressVpcConfiguration `type:"structure" required:"true"` - // When true, the subdomain www.DomainName is associated with the App Runner - // service in addition to the base domain. + // The Amazon Resource Name (ARN) for this App Runner service that is used to + // create the VPC Ingress Connection resource. // - // EnableWWWSubdomain is a required field - EnableWWWSubdomain *bool `type:"boolean" required:"true"` + // ServiceArn is a required field + ServiceArn *string `min:"1" type:"string" required:"true"` - // The current state of the domain name association. + // An optional list of metadata items that you can associate with the VPC Ingress + // Connection resource. A tag is a key-value pair. + Tags []*Tag `type:"list"` + + // A name for the VPC Ingress Connection resource. It must be unique across + // all the active VPC Ingress Connections in your Amazon Web Services account + // in the Amazon Web Services Region. // - // Status is a required field - Status *string `type:"string" required:"true" enum:"CustomDomainAssociationStatus"` + // VpcIngressConnectionName is a required field + VpcIngressConnectionName *string `min:"4" type:"string" required:"true"` } // String returns the string representation. @@ -4824,7 +5360,7 @@ type CustomDomain struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CustomDomain) String() string { +func (s CreateVpcIngressConnectionInput) String() string { return awsutil.Prettify(s) } @@ -4833,28 +5369,165 @@ func (s CustomDomain) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CustomDomain) GoString() string { +func (s CreateVpcIngressConnectionInput) GoString() string { return s.String() } -// SetCertificateValidationRecords sets the CertificateValidationRecords field's value. -func (s *CustomDomain) SetCertificateValidationRecords(v []*CertificateValidationRecord) *CustomDomain { - s.CertificateValidationRecords = v - return s -} - -// SetDomainName sets the DomainName field's value. -func (s *CustomDomain) SetDomainName(v string) *CustomDomain { - s.DomainName = &v - return s -} - -// SetEnableWWWSubdomain sets the EnableWWWSubdomain field's value. -func (s *CustomDomain) SetEnableWWWSubdomain(v bool) *CustomDomain { - s.EnableWWWSubdomain = &v - return s -} - +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateVpcIngressConnectionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateVpcIngressConnectionInput"} + if s.IngressVpcConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("IngressVpcConfiguration")) + } + if s.ServiceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ServiceArn")) + } + if s.ServiceArn != nil && len(*s.ServiceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ServiceArn", 1)) + } + if s.VpcIngressConnectionName == nil { + invalidParams.Add(request.NewErrParamRequired("VpcIngressConnectionName")) + } + if s.VpcIngressConnectionName != nil && len(*s.VpcIngressConnectionName) < 4 { + invalidParams.Add(request.NewErrParamMinLen("VpcIngressConnectionName", 4)) + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetIngressVpcConfiguration sets the IngressVpcConfiguration field's value. +func (s *CreateVpcIngressConnectionInput) SetIngressVpcConfiguration(v *IngressVpcConfiguration) *CreateVpcIngressConnectionInput { + s.IngressVpcConfiguration = v + return s +} + +// SetServiceArn sets the ServiceArn field's value. +func (s *CreateVpcIngressConnectionInput) SetServiceArn(v string) *CreateVpcIngressConnectionInput { + s.ServiceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateVpcIngressConnectionInput) SetTags(v []*Tag) *CreateVpcIngressConnectionInput { + s.Tags = v + return s +} + +// SetVpcIngressConnectionName sets the VpcIngressConnectionName field's value. +func (s *CreateVpcIngressConnectionInput) SetVpcIngressConnectionName(v string) *CreateVpcIngressConnectionInput { + s.VpcIngressConnectionName = &v + return s +} + +type CreateVpcIngressConnectionOutput struct { + _ struct{} `type:"structure"` + + // A description of the App Runner VPC Ingress Connection resource that's created + // by this request. + // + // VpcIngressConnection is a required field + VpcIngressConnection *VpcIngressConnection `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateVpcIngressConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateVpcIngressConnectionOutput) GoString() string { + return s.String() +} + +// SetVpcIngressConnection sets the VpcIngressConnection field's value. +func (s *CreateVpcIngressConnectionOutput) SetVpcIngressConnection(v *VpcIngressConnection) *CreateVpcIngressConnectionOutput { + s.VpcIngressConnection = v + return s +} + +// Describes a custom domain that's associated with an App Runner service. +type CustomDomain struct { + _ struct{} `type:"structure"` + + // A list of certificate CNAME records that's used for this domain name. + CertificateValidationRecords []*CertificateValidationRecord `type:"list"` + + // An associated custom domain endpoint. It can be a root domain (for example, + // example.com), a subdomain (for example, login.example.com or admin.login.example.com), + // or a wildcard (for example, *.example.com). + // + // DomainName is a required field + DomainName *string `min:"1" type:"string" required:"true"` + + // When true, the subdomain www.DomainName is associated with the App Runner + // service in addition to the base domain. + // + // EnableWWWSubdomain is a required field + EnableWWWSubdomain *bool `type:"boolean" required:"true"` + + // The current state of the domain name association. + // + // Status is a required field + Status *string `type:"string" required:"true" enum:"CustomDomainAssociationStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CustomDomain) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CustomDomain) GoString() string { + return s.String() +} + +// SetCertificateValidationRecords sets the CertificateValidationRecords field's value. +func (s *CustomDomain) SetCertificateValidationRecords(v []*CertificateValidationRecord) *CustomDomain { + s.CertificateValidationRecords = v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *CustomDomain) SetDomainName(v string) *CustomDomain { + s.DomainName = &v + return s +} + +// SetEnableWWWSubdomain sets the EnableWWWSubdomain field's value. +func (s *CustomDomain) SetEnableWWWSubdomain(v bool) *CustomDomain { + s.EnableWWWSubdomain = &v + return s +} + // SetStatus sets the Status field's value. func (s *CustomDomain) SetStatus(v string) *CustomDomain { s.Status = &v @@ -5299,6 +5972,90 @@ func (s *DeleteVpcConnectorOutput) SetVpcConnector(v *VpcConnector) *DeleteVpcCo return s } +type DeleteVpcIngressConnectionInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the App Runner VPC Ingress Connection that + // you want to delete. + // + // VpcIngressConnectionArn is a required field + VpcIngressConnectionArn *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteVpcIngressConnectionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteVpcIngressConnectionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteVpcIngressConnectionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteVpcIngressConnectionInput"} + if s.VpcIngressConnectionArn == nil { + invalidParams.Add(request.NewErrParamRequired("VpcIngressConnectionArn")) + } + if s.VpcIngressConnectionArn != nil && len(*s.VpcIngressConnectionArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("VpcIngressConnectionArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetVpcIngressConnectionArn sets the VpcIngressConnectionArn field's value. +func (s *DeleteVpcIngressConnectionInput) SetVpcIngressConnectionArn(v string) *DeleteVpcIngressConnectionInput { + s.VpcIngressConnectionArn = &v + return s +} + +type DeleteVpcIngressConnectionOutput struct { + _ struct{} `type:"structure"` + + // A description of the App Runner VPC Ingress Connection that this request + // just deleted. + // + // VpcIngressConnection is a required field + VpcIngressConnection *VpcIngressConnection `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteVpcIngressConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteVpcIngressConnectionOutput) GoString() string { + return s.String() +} + +// SetVpcIngressConnection sets the VpcIngressConnection field's value. +func (s *DeleteVpcIngressConnectionOutput) SetVpcIngressConnection(v *VpcIngressConnection) *DeleteVpcIngressConnectionOutput { + s.VpcIngressConnection = v + return s +} + type DescribeAutoScalingConfigurationInput struct { _ struct{} `type:"structure"` @@ -5491,6 +6248,11 @@ type DescribeCustomDomainsOutput struct { // // ServiceArn is a required field ServiceArn *string `min:"1" type:"string" required:"true"` + + // DNS Target records for the custom domains of this Amazon VPC. + // + // VpcDNSTargets is a required field + VpcDNSTargets []*VpcDNSTarget `type:"list" required:"true"` } // String returns the string representation. @@ -5535,6 +6297,12 @@ func (s *DescribeCustomDomainsOutput) SetServiceArn(v string) *DescribeCustomDom return s } +// SetVpcDNSTargets sets the VpcDNSTargets field's value. +func (s *DescribeCustomDomainsOutput) SetVpcDNSTargets(v []*VpcDNSTarget) *DescribeCustomDomainsOutput { + s.VpcDNSTargets = v + return s +} + type DescribeObservabilityConfigurationInput struct { _ struct{} `type:"structure"` @@ -5792,6 +6560,90 @@ func (s *DescribeVpcConnectorOutput) SetVpcConnector(v *VpcConnector) *DescribeV return s } +type DescribeVpcIngressConnectionInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the App Runner VPC Ingress Connection that + // you want a description for. + // + // VpcIngressConnectionArn is a required field + VpcIngressConnectionArn *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeVpcIngressConnectionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeVpcIngressConnectionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeVpcIngressConnectionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeVpcIngressConnectionInput"} + if s.VpcIngressConnectionArn == nil { + invalidParams.Add(request.NewErrParamRequired("VpcIngressConnectionArn")) + } + if s.VpcIngressConnectionArn != nil && len(*s.VpcIngressConnectionArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("VpcIngressConnectionArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetVpcIngressConnectionArn sets the VpcIngressConnectionArn field's value. +func (s *DescribeVpcIngressConnectionInput) SetVpcIngressConnectionArn(v string) *DescribeVpcIngressConnectionInput { + s.VpcIngressConnectionArn = &v + return s +} + +type DescribeVpcIngressConnectionOutput struct { + _ struct{} `type:"structure"` + + // A description of the App Runner VPC Ingress Connection that you specified + // in this request. + // + // VpcIngressConnection is a required field + VpcIngressConnection *VpcIngressConnection `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeVpcIngressConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeVpcIngressConnectionOutput) GoString() string { + return s.String() +} + +// SetVpcIngressConnection sets the VpcIngressConnection field's value. +func (s *DescribeVpcIngressConnectionOutput) SetVpcIngressConnection(v *VpcIngressConnection) *DescribeVpcIngressConnectionOutput { + s.VpcIngressConnection = v + return s +} + type DisassociateCustomDomainInput struct { _ struct{} `type:"structure"` @@ -5878,6 +6730,11 @@ type DisassociateCustomDomainOutput struct { // // ServiceArn is a required field ServiceArn *string `min:"1" type:"string" required:"true"` + + // DNS Target records for the custom domains of this Amazon VPC. + // + // VpcDNSTargets is a required field + VpcDNSTargets []*VpcDNSTarget `type:"list" required:"true"` } // String returns the string representation. @@ -5916,6 +6773,12 @@ func (s *DisassociateCustomDomainOutput) SetServiceArn(v string) *DisassociateCu return s } +// SetVpcDNSTargets sets the VpcDNSTargets field's value. +func (s *DisassociateCustomDomainOutput) SetVpcDNSTargets(v []*VpcDNSTarget) *DisassociateCustomDomainOutput { + s.VpcDNSTargets = v + return s +} + // Describes configuration settings related to outbound network traffic of an // App Runner service. type EgressConfiguration struct { @@ -6286,6 +7149,83 @@ func (s *ImageRepository) SetImageRepositoryType(v string) *ImageRepository { return s } +// Network configuration settings for inbound network traffic. +type IngressConfiguration struct { + _ struct{} `type:"structure"` + + // Specifies whether your App Runner service is publicly accessible. To make + // the service publicly accessible set it to True. To make the service privately + // accessible, from only within an Amazon VPC set it to False. + IsPubliclyAccessible *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IngressConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IngressConfiguration) GoString() string { + return s.String() +} + +// SetIsPubliclyAccessible sets the IsPubliclyAccessible field's value. +func (s *IngressConfiguration) SetIsPubliclyAccessible(v bool) *IngressConfiguration { + s.IsPubliclyAccessible = &v + return s +} + +// The configuration of your VPC and the associated VPC endpoint. The VPC endpoint +// is an Amazon Web Services PrivateLink resource that allows access to your +// App Runner services from within an Amazon VPC. +type IngressVpcConfiguration struct { + _ struct{} `type:"structure"` + + // The ID of the VPC endpoint that your App Runner service connects to. + VpcEndpointId *string `type:"string"` + + // The ID of the VPC that is used for the VPC endpoint. + VpcId *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IngressVpcConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IngressVpcConfiguration) GoString() string { + return s.String() +} + +// SetVpcEndpointId sets the VpcEndpointId field's value. +func (s *IngressVpcConfiguration) SetVpcEndpointId(v string) *IngressVpcConfiguration { + s.VpcEndpointId = &v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *IngressVpcConfiguration) SetVpcId(v string) *IngressVpcConfiguration { + s.VpcId = &v + return s +} + // Describes the runtime configuration of an App Runner service instance (scaling // unit). type InstanceConfiguration struct { @@ -7254,15 +8194,182 @@ func (s ListTagsForResourceOutput) GoString() string { return s.String() } -// SetTags sets the Tags field's value. -func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput { - s.Tags = v +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +type ListVpcConnectorsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to include in each response (result page). + // It's used for a paginated request. + // + // If you don't specify MaxResults, the request retrieves all available results + // in a single response. + MaxResults *int64 `min:"1" type:"integer"` + + // A token from a previous result page. It's used for a paginated request. The + // request retrieves the next result page. All other parameter values must be + // identical to the ones that are specified in the initial request. + // + // If you don't specify NextToken, the request retrieves the first result page. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListVpcConnectorsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListVpcConnectorsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListVpcConnectorsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListVpcConnectorsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListVpcConnectorsInput) SetMaxResults(v int64) *ListVpcConnectorsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListVpcConnectorsInput) SetNextToken(v string) *ListVpcConnectorsInput { + s.NextToken = &v + return s +} + +type ListVpcConnectorsOutput struct { + _ struct{} `type:"structure"` + + // The token that you can pass in a subsequent request to get the next result + // page. It's returned in a paginated request. + NextToken *string `min:"1" type:"string"` + + // A list of information records for VPC connectors. In a paginated request, + // the request returns up to MaxResults records for each call. + // + // VpcConnectors is a required field + VpcConnectors []*VpcConnector `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListVpcConnectorsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListVpcConnectorsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListVpcConnectorsOutput) SetNextToken(v string) *ListVpcConnectorsOutput { + s.NextToken = &v + return s +} + +// SetVpcConnectors sets the VpcConnectors field's value. +func (s *ListVpcConnectorsOutput) SetVpcConnectors(v []*VpcConnector) *ListVpcConnectorsOutput { + s.VpcConnectors = v + return s +} + +// Returns a list of VPC Ingress Connections based on the filter provided. It +// can return either ServiceArn or VpcEndpointId, or both. +type ListVpcIngressConnectionsFilter struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of a service to filter by. + ServiceArn *string `min:"1" type:"string"` + + // The ID of a VPC Endpoint to filter by. + VpcEndpointId *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListVpcIngressConnectionsFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListVpcIngressConnectionsFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListVpcIngressConnectionsFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListVpcIngressConnectionsFilter"} + if s.ServiceArn != nil && len(*s.ServiceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ServiceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetServiceArn sets the ServiceArn field's value. +func (s *ListVpcIngressConnectionsFilter) SetServiceArn(v string) *ListVpcIngressConnectionsFilter { + s.ServiceArn = &v return s } -type ListVpcConnectorsInput struct { +// SetVpcEndpointId sets the VpcEndpointId field's value. +func (s *ListVpcIngressConnectionsFilter) SetVpcEndpointId(v string) *ListVpcIngressConnectionsFilter { + s.VpcEndpointId = &v + return s +} + +type ListVpcIngressConnectionsInput struct { _ struct{} `type:"structure"` + // The VPC Ingress Connections to be listed based on either the Service Arn + // or Vpc Endpoint Id, or both. + Filter *ListVpcIngressConnectionsFilter `type:"structure"` + // The maximum number of results to include in each response (result page). // It's used for a paginated request. // @@ -7283,7 +8390,7 @@ type ListVpcConnectorsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListVpcConnectorsInput) String() string { +func (s ListVpcIngressConnectionsInput) String() string { return awsutil.Prettify(s) } @@ -7292,19 +8399,24 @@ func (s ListVpcConnectorsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListVpcConnectorsInput) GoString() string { +func (s ListVpcIngressConnectionsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ListVpcConnectorsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListVpcConnectorsInput"} +func (s *ListVpcIngressConnectionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListVpcIngressConnectionsInput"} if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if s.NextToken != nil && len(*s.NextToken) < 1 { invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -7312,30 +8424,36 @@ func (s *ListVpcConnectorsInput) Validate() error { return nil } +// SetFilter sets the Filter field's value. +func (s *ListVpcIngressConnectionsInput) SetFilter(v *ListVpcIngressConnectionsFilter) *ListVpcIngressConnectionsInput { + s.Filter = v + return s +} + // SetMaxResults sets the MaxResults field's value. -func (s *ListVpcConnectorsInput) SetMaxResults(v int64) *ListVpcConnectorsInput { +func (s *ListVpcIngressConnectionsInput) SetMaxResults(v int64) *ListVpcIngressConnectionsInput { s.MaxResults = &v return s } // SetNextToken sets the NextToken field's value. -func (s *ListVpcConnectorsInput) SetNextToken(v string) *ListVpcConnectorsInput { +func (s *ListVpcIngressConnectionsInput) SetNextToken(v string) *ListVpcIngressConnectionsInput { s.NextToken = &v return s } -type ListVpcConnectorsOutput struct { +type ListVpcIngressConnectionsOutput struct { _ struct{} `type:"structure"` // The token that you can pass in a subsequent request to get the next result // page. It's returned in a paginated request. NextToken *string `min:"1" type:"string"` - // A list of information records for VPC connectors. In a paginated request, - // the request returns up to MaxResults records for each call. + // A list of summary information records for VPC Ingress Connections. In a paginated + // request, the request returns up to MaxResults records for each call. // - // VpcConnectors is a required field - VpcConnectors []*VpcConnector `type:"list" required:"true"` + // VpcIngressConnectionSummaryList is a required field + VpcIngressConnectionSummaryList []*VpcIngressConnectionSummary `type:"list" required:"true"` } // String returns the string representation. @@ -7343,7 +8461,7 @@ type ListVpcConnectorsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListVpcConnectorsOutput) String() string { +func (s ListVpcIngressConnectionsOutput) String() string { return awsutil.Prettify(s) } @@ -7352,19 +8470,19 @@ func (s ListVpcConnectorsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListVpcConnectorsOutput) GoString() string { +func (s ListVpcIngressConnectionsOutput) GoString() string { return s.String() } // SetNextToken sets the NextToken field's value. -func (s *ListVpcConnectorsOutput) SetNextToken(v string) *ListVpcConnectorsOutput { +func (s *ListVpcIngressConnectionsOutput) SetNextToken(v string) *ListVpcIngressConnectionsOutput { s.NextToken = &v return s } -// SetVpcConnectors sets the VpcConnectors field's value. -func (s *ListVpcConnectorsOutput) SetVpcConnectors(v []*VpcConnector) *ListVpcConnectorsOutput { - s.VpcConnectors = v +// SetVpcIngressConnectionSummaryList sets the VpcIngressConnectionSummaryList field's value. +func (s *ListVpcIngressConnectionsOutput) SetVpcIngressConnectionSummaryList(v []*VpcIngressConnectionSummary) *ListVpcIngressConnectionsOutput { + s.VpcIngressConnectionSummaryList = v return s } @@ -7375,6 +8493,9 @@ type NetworkConfiguration struct { // Network configuration settings for outbound message traffic. EgressConfiguration *EgressConfiguration `type:"structure"` + + // Network configuration settings for inbound message traffic. + IngressConfiguration *IngressConfiguration `type:"structure"` } // String returns the string representation. @@ -7416,6 +8537,12 @@ func (s *NetworkConfiguration) SetEgressConfiguration(v *EgressConfiguration) *N return s } +// SetIngressConfiguration sets the IngressConfiguration field's value. +func (s *NetworkConfiguration) SetIngressConfiguration(v *IngressConfiguration) *NetworkConfiguration { + s.IngressConfiguration = v + return s +} + // Describes an App Runner observability configuration resource. Multiple revisions // of a configuration have the same ObservabilityConfigurationName and different // ObservabilityConfigurationRevision values. @@ -8002,9 +9129,7 @@ type Service struct { // A subdomain URL that App Runner generated for this service. You can use this // URL to access your service web application. - // - // ServiceUrl is a required field - ServiceUrl *string `type:"string" required:"true"` + ServiceUrl *string `type:"string"` // The source deployed to the App Runner service. It can be a code or an image // repository. @@ -9120,6 +10245,106 @@ func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput { return s } +type UpdateVpcIngressConnectionInput struct { + _ struct{} `type:"structure"` + + // Specifications for the customer’s Amazon VPC and the related Amazon Web + // Services PrivateLink VPC endpoint that are used to update the VPC Ingress + // Connection resource. + // + // IngressVpcConfiguration is a required field + IngressVpcConfiguration *IngressVpcConfiguration `type:"structure" required:"true"` + + // The Amazon Resource Name (Arn) for the App Runner VPC Ingress Connection + // resource that you want to update. + // + // VpcIngressConnectionArn is a required field + VpcIngressConnectionArn *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateVpcIngressConnectionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateVpcIngressConnectionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateVpcIngressConnectionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateVpcIngressConnectionInput"} + if s.IngressVpcConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("IngressVpcConfiguration")) + } + if s.VpcIngressConnectionArn == nil { + invalidParams.Add(request.NewErrParamRequired("VpcIngressConnectionArn")) + } + if s.VpcIngressConnectionArn != nil && len(*s.VpcIngressConnectionArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("VpcIngressConnectionArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetIngressVpcConfiguration sets the IngressVpcConfiguration field's value. +func (s *UpdateVpcIngressConnectionInput) SetIngressVpcConfiguration(v *IngressVpcConfiguration) *UpdateVpcIngressConnectionInput { + s.IngressVpcConfiguration = v + return s +} + +// SetVpcIngressConnectionArn sets the VpcIngressConnectionArn field's value. +func (s *UpdateVpcIngressConnectionInput) SetVpcIngressConnectionArn(v string) *UpdateVpcIngressConnectionInput { + s.VpcIngressConnectionArn = &v + return s +} + +type UpdateVpcIngressConnectionOutput struct { + _ struct{} `type:"structure"` + + // A description of the App Runner VPC Ingress Connection resource that's updated + // by this request. + // + // VpcIngressConnection is a required field + VpcIngressConnection *VpcIngressConnection `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateVpcIngressConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateVpcIngressConnectionOutput) GoString() string { + return s.String() +} + +// SetVpcIngressConnection sets the VpcIngressConnection field's value. +func (s *UpdateVpcIngressConnectionOutput) SetVpcIngressConnection(v *VpcIngressConnection) *UpdateVpcIngressConnectionOutput { + s.VpcIngressConnection = v + return s +} + // Describes an App Runner VPC connector resource. A VPC connector describes // the Amazon Virtual Private Cloud (Amazon VPC) that an App Runner service // is associated with, and the subnets and security group that are used. @@ -9231,6 +10456,222 @@ func (s *VpcConnector) SetVpcConnectorRevision(v int64) *VpcConnector { return s } +// DNS Target record for a custom domain of this Amazon VPC. +type VpcDNSTarget struct { + _ struct{} `type:"structure"` + + // The domain name of your target DNS that is associated with the Amazon VPC. + DomainName *string `min:"1" type:"string"` + + // The ID of the Amazon VPC that is associated with the custom domain name of + // the target DNS. + VpcId *string `type:"string"` + + // The Amazon Resource Name (ARN) of the VPC Ingress Connection that is associated + // with your service. + VpcIngressConnectionArn *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VpcDNSTarget) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VpcDNSTarget) GoString() string { + return s.String() +} + +// SetDomainName sets the DomainName field's value. +func (s *VpcDNSTarget) SetDomainName(v string) *VpcDNSTarget { + s.DomainName = &v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *VpcDNSTarget) SetVpcId(v string) *VpcDNSTarget { + s.VpcId = &v + return s +} + +// SetVpcIngressConnectionArn sets the VpcIngressConnectionArn field's value. +func (s *VpcDNSTarget) SetVpcIngressConnectionArn(v string) *VpcDNSTarget { + s.VpcIngressConnectionArn = &v + return s +} + +// The App Runner resource that specifies an App Runner endpoint for incoming +// traffic. It establishes a connection between a VPC interface endpoint and +// a App Runner service, to make your App Runner service accessible from only +// within an Amazon VPC. +type VpcIngressConnection struct { + _ struct{} `type:"structure"` + + // The Account Id you use to create the VPC Ingress Connection resource. + AccountId *string `min:"12" type:"string"` + + // The time when the VPC Ingress Connection was created. It's in the Unix time + // stamp format. + // + // * Type: Timestamp + // + // * Required: Yes + CreatedAt *time.Time `type:"timestamp"` + + // The time when the App Runner service was deleted. It's in the Unix time stamp + // format. + // + // * Type: Timestamp + // + // * Required: No + DeletedAt *time.Time `type:"timestamp"` + + // The domain name associated with the VPC Ingress Connection resource. + DomainName *string `min:"1" type:"string"` + + // Specifications for the customer’s VPC and related PrivateLink VPC endpoint + // that are used to associate with the VPC Ingress Connection resource. + IngressVpcConfiguration *IngressVpcConfiguration `type:"structure"` + + // The Amazon Resource Name (ARN) of the service associated with the VPC Ingress + // Connection. + ServiceArn *string `min:"1" type:"string"` + + // The current status of the VPC Ingress Connection. The VPC Ingress Connection + // displays one of the following statuses: AVAILABLE, PENDING_CREATION, PENDING_UPDATE, + // PENDING_DELETION,FAILED_CREATION, FAILED_UPDATE, FAILED_DELETION, and DELETED.. + Status *string `type:"string" enum:"VpcIngressConnectionStatus"` + + // The Amazon Resource Name (ARN) of the VPC Ingress Connection. + VpcIngressConnectionArn *string `min:"1" type:"string"` + + // The customer-provided VPC Ingress Connection name. + VpcIngressConnectionName *string `min:"4" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VpcIngressConnection) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VpcIngressConnection) GoString() string { + return s.String() +} + +// SetAccountId sets the AccountId field's value. +func (s *VpcIngressConnection) SetAccountId(v string) *VpcIngressConnection { + s.AccountId = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *VpcIngressConnection) SetCreatedAt(v time.Time) *VpcIngressConnection { + s.CreatedAt = &v + return s +} + +// SetDeletedAt sets the DeletedAt field's value. +func (s *VpcIngressConnection) SetDeletedAt(v time.Time) *VpcIngressConnection { + s.DeletedAt = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *VpcIngressConnection) SetDomainName(v string) *VpcIngressConnection { + s.DomainName = &v + return s +} + +// SetIngressVpcConfiguration sets the IngressVpcConfiguration field's value. +func (s *VpcIngressConnection) SetIngressVpcConfiguration(v *IngressVpcConfiguration) *VpcIngressConnection { + s.IngressVpcConfiguration = v + return s +} + +// SetServiceArn sets the ServiceArn field's value. +func (s *VpcIngressConnection) SetServiceArn(v string) *VpcIngressConnection { + s.ServiceArn = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *VpcIngressConnection) SetStatus(v string) *VpcIngressConnection { + s.Status = &v + return s +} + +// SetVpcIngressConnectionArn sets the VpcIngressConnectionArn field's value. +func (s *VpcIngressConnection) SetVpcIngressConnectionArn(v string) *VpcIngressConnection { + s.VpcIngressConnectionArn = &v + return s +} + +// SetVpcIngressConnectionName sets the VpcIngressConnectionName field's value. +func (s *VpcIngressConnection) SetVpcIngressConnectionName(v string) *VpcIngressConnection { + s.VpcIngressConnectionName = &v + return s +} + +// Provides summary information about an VPC Ingress Connection, which includes +// its VPC Ingress Connection ARN and its associated Service ARN. +type VpcIngressConnectionSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the service associated with the VPC Ingress + // Connection. + ServiceArn *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the VPC Ingress Connection. + VpcIngressConnectionArn *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VpcIngressConnectionSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VpcIngressConnectionSummary) GoString() string { + return s.String() +} + +// SetServiceArn sets the ServiceArn field's value. +func (s *VpcIngressConnectionSummary) SetServiceArn(v string) *VpcIngressConnectionSummary { + s.ServiceArn = &v + return s +} + +// SetVpcIngressConnectionArn sets the VpcIngressConnectionArn field's value. +func (s *VpcIngressConnectionSummary) SetVpcIngressConnectionArn(v string) *VpcIngressConnectionSummary { + s.VpcIngressConnectionArn = &v + return s +} + const ( // AutoScalingConfigurationStatusActive is a AutoScalingConfigurationStatus enum value AutoScalingConfigurationStatusActive = "ACTIVE" @@ -9602,3 +11043,43 @@ func VpcConnectorStatus_Values() []string { VpcConnectorStatusInactive, } } + +const ( + // VpcIngressConnectionStatusAvailable is a VpcIngressConnectionStatus enum value + VpcIngressConnectionStatusAvailable = "AVAILABLE" + + // VpcIngressConnectionStatusPendingCreation is a VpcIngressConnectionStatus enum value + VpcIngressConnectionStatusPendingCreation = "PENDING_CREATION" + + // VpcIngressConnectionStatusPendingUpdate is a VpcIngressConnectionStatus enum value + VpcIngressConnectionStatusPendingUpdate = "PENDING_UPDATE" + + // VpcIngressConnectionStatusPendingDeletion is a VpcIngressConnectionStatus enum value + VpcIngressConnectionStatusPendingDeletion = "PENDING_DELETION" + + // VpcIngressConnectionStatusFailedCreation is a VpcIngressConnectionStatus enum value + VpcIngressConnectionStatusFailedCreation = "FAILED_CREATION" + + // VpcIngressConnectionStatusFailedUpdate is a VpcIngressConnectionStatus enum value + VpcIngressConnectionStatusFailedUpdate = "FAILED_UPDATE" + + // VpcIngressConnectionStatusFailedDeletion is a VpcIngressConnectionStatus enum value + VpcIngressConnectionStatusFailedDeletion = "FAILED_DELETION" + + // VpcIngressConnectionStatusDeleted is a VpcIngressConnectionStatus enum value + VpcIngressConnectionStatusDeleted = "DELETED" +) + +// VpcIngressConnectionStatus_Values returns all elements of the VpcIngressConnectionStatus enum +func VpcIngressConnectionStatus_Values() []string { + return []string{ + VpcIngressConnectionStatusAvailable, + VpcIngressConnectionStatusPendingCreation, + VpcIngressConnectionStatusPendingUpdate, + VpcIngressConnectionStatusPendingDeletion, + VpcIngressConnectionStatusFailedCreation, + VpcIngressConnectionStatusFailedUpdate, + VpcIngressConnectionStatusFailedDeletion, + VpcIngressConnectionStatusDeleted, + } +} diff --git a/service/apprunner/apprunneriface/interface.go b/service/apprunner/apprunneriface/interface.go index fb803b4efa..d67543d1c2 100644 --- a/service/apprunner/apprunneriface/interface.go +++ b/service/apprunner/apprunneriface/interface.go @@ -84,6 +84,10 @@ type AppRunnerAPI interface { CreateVpcConnectorWithContext(aws.Context, *apprunner.CreateVpcConnectorInput, ...request.Option) (*apprunner.CreateVpcConnectorOutput, error) CreateVpcConnectorRequest(*apprunner.CreateVpcConnectorInput) (*request.Request, *apprunner.CreateVpcConnectorOutput) + CreateVpcIngressConnection(*apprunner.CreateVpcIngressConnectionInput) (*apprunner.CreateVpcIngressConnectionOutput, error) + CreateVpcIngressConnectionWithContext(aws.Context, *apprunner.CreateVpcIngressConnectionInput, ...request.Option) (*apprunner.CreateVpcIngressConnectionOutput, error) + CreateVpcIngressConnectionRequest(*apprunner.CreateVpcIngressConnectionInput) (*request.Request, *apprunner.CreateVpcIngressConnectionOutput) + DeleteAutoScalingConfiguration(*apprunner.DeleteAutoScalingConfigurationInput) (*apprunner.DeleteAutoScalingConfigurationOutput, error) DeleteAutoScalingConfigurationWithContext(aws.Context, *apprunner.DeleteAutoScalingConfigurationInput, ...request.Option) (*apprunner.DeleteAutoScalingConfigurationOutput, error) DeleteAutoScalingConfigurationRequest(*apprunner.DeleteAutoScalingConfigurationInput) (*request.Request, *apprunner.DeleteAutoScalingConfigurationOutput) @@ -104,6 +108,10 @@ type AppRunnerAPI interface { DeleteVpcConnectorWithContext(aws.Context, *apprunner.DeleteVpcConnectorInput, ...request.Option) (*apprunner.DeleteVpcConnectorOutput, error) DeleteVpcConnectorRequest(*apprunner.DeleteVpcConnectorInput) (*request.Request, *apprunner.DeleteVpcConnectorOutput) + DeleteVpcIngressConnection(*apprunner.DeleteVpcIngressConnectionInput) (*apprunner.DeleteVpcIngressConnectionOutput, error) + DeleteVpcIngressConnectionWithContext(aws.Context, *apprunner.DeleteVpcIngressConnectionInput, ...request.Option) (*apprunner.DeleteVpcIngressConnectionOutput, error) + DeleteVpcIngressConnectionRequest(*apprunner.DeleteVpcIngressConnectionInput) (*request.Request, *apprunner.DeleteVpcIngressConnectionOutput) + DescribeAutoScalingConfiguration(*apprunner.DescribeAutoScalingConfigurationInput) (*apprunner.DescribeAutoScalingConfigurationOutput, error) DescribeAutoScalingConfigurationWithContext(aws.Context, *apprunner.DescribeAutoScalingConfigurationInput, ...request.Option) (*apprunner.DescribeAutoScalingConfigurationOutput, error) DescribeAutoScalingConfigurationRequest(*apprunner.DescribeAutoScalingConfigurationInput) (*request.Request, *apprunner.DescribeAutoScalingConfigurationOutput) @@ -127,6 +135,10 @@ type AppRunnerAPI interface { DescribeVpcConnectorWithContext(aws.Context, *apprunner.DescribeVpcConnectorInput, ...request.Option) (*apprunner.DescribeVpcConnectorOutput, error) DescribeVpcConnectorRequest(*apprunner.DescribeVpcConnectorInput) (*request.Request, *apprunner.DescribeVpcConnectorOutput) + DescribeVpcIngressConnection(*apprunner.DescribeVpcIngressConnectionInput) (*apprunner.DescribeVpcIngressConnectionOutput, error) + DescribeVpcIngressConnectionWithContext(aws.Context, *apprunner.DescribeVpcIngressConnectionInput, ...request.Option) (*apprunner.DescribeVpcIngressConnectionOutput, error) + DescribeVpcIngressConnectionRequest(*apprunner.DescribeVpcIngressConnectionInput) (*request.Request, *apprunner.DescribeVpcIngressConnectionOutput) + DisassociateCustomDomain(*apprunner.DisassociateCustomDomainInput) (*apprunner.DisassociateCustomDomainOutput, error) DisassociateCustomDomainWithContext(aws.Context, *apprunner.DisassociateCustomDomainInput, ...request.Option) (*apprunner.DisassociateCustomDomainOutput, error) DisassociateCustomDomainRequest(*apprunner.DisassociateCustomDomainInput) (*request.Request, *apprunner.DisassociateCustomDomainOutput) @@ -177,6 +189,13 @@ type AppRunnerAPI interface { ListVpcConnectorsPages(*apprunner.ListVpcConnectorsInput, func(*apprunner.ListVpcConnectorsOutput, bool) bool) error ListVpcConnectorsPagesWithContext(aws.Context, *apprunner.ListVpcConnectorsInput, func(*apprunner.ListVpcConnectorsOutput, bool) bool, ...request.Option) error + ListVpcIngressConnections(*apprunner.ListVpcIngressConnectionsInput) (*apprunner.ListVpcIngressConnectionsOutput, error) + ListVpcIngressConnectionsWithContext(aws.Context, *apprunner.ListVpcIngressConnectionsInput, ...request.Option) (*apprunner.ListVpcIngressConnectionsOutput, error) + ListVpcIngressConnectionsRequest(*apprunner.ListVpcIngressConnectionsInput) (*request.Request, *apprunner.ListVpcIngressConnectionsOutput) + + ListVpcIngressConnectionsPages(*apprunner.ListVpcIngressConnectionsInput, func(*apprunner.ListVpcIngressConnectionsOutput, bool) bool) error + ListVpcIngressConnectionsPagesWithContext(aws.Context, *apprunner.ListVpcIngressConnectionsInput, func(*apprunner.ListVpcIngressConnectionsOutput, bool) bool, ...request.Option) error + PauseService(*apprunner.PauseServiceInput) (*apprunner.PauseServiceOutput, error) PauseServiceWithContext(aws.Context, *apprunner.PauseServiceInput, ...request.Option) (*apprunner.PauseServiceOutput, error) PauseServiceRequest(*apprunner.PauseServiceInput) (*request.Request, *apprunner.PauseServiceOutput) @@ -200,6 +219,10 @@ type AppRunnerAPI interface { UpdateService(*apprunner.UpdateServiceInput) (*apprunner.UpdateServiceOutput, error) UpdateServiceWithContext(aws.Context, *apprunner.UpdateServiceInput, ...request.Option) (*apprunner.UpdateServiceOutput, error) UpdateServiceRequest(*apprunner.UpdateServiceInput) (*request.Request, *apprunner.UpdateServiceOutput) + + UpdateVpcIngressConnection(*apprunner.UpdateVpcIngressConnectionInput) (*apprunner.UpdateVpcIngressConnectionOutput, error) + UpdateVpcIngressConnectionWithContext(aws.Context, *apprunner.UpdateVpcIngressConnectionInput, ...request.Option) (*apprunner.UpdateVpcIngressConnectionOutput, error) + UpdateVpcIngressConnectionRequest(*apprunner.UpdateVpcIngressConnectionInput) (*request.Request, *apprunner.UpdateVpcIngressConnectionOutput) } var _ AppRunnerAPI = (*apprunner.AppRunner)(nil) diff --git a/service/cloudwatchlogs/api.go b/service/cloudwatchlogs/api.go index d76732316e..602fc7b9ad 100644 --- a/service/cloudwatchlogs/api.go +++ b/service/cloudwatchlogs/api.go @@ -257,12 +257,6 @@ func (c *CloudWatchLogs) CreateExportTaskRequest(input *CreateExportTaskInput) ( // you must use credentials that have permission to write to the S3 bucket that // you specify as the destination. // -// Exporting log data to Amazon S3 buckets that are encrypted by KMS is not -// supported. Exporting log data to Amazon S3 buckets that have S3 Object Lock -// enabled with a retention period is not supported. -// -// Exporting to S3 buckets that are encrypted with AES-256 is supported. -// // This is an asynchronous call. If all the required information is provided, // this operation initiates an export task and responds with the ID of the task. // After the task has started, you can use DescribeExportTasks (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeExportTasks.html) @@ -274,8 +268,8 @@ func (c *CloudWatchLogs) CreateExportTaskRequest(input *CreateExportTaskInput) ( // same S3 bucket. To separate out log data for each export task, you can specify // a prefix to be used as the Amazon S3 key prefix for all exported objects. // -// Time-based sorting on chunks of log data inside an exported file is not guaranteed. -// You can sort the exported log fild data by using Linux utilities. +// Exporting to S3 buckets that are encrypted with AES-256 is supported. Exporting +// to S3 buckets encrypted with SSE-KMS is not supported. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3025,6 +3019,92 @@ func (c *CloudWatchLogs) GetQueryResultsWithContext(ctx aws.Context, input *GetQ return out, req.Send() } +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListTagsForResource +func (c *CloudWatchLogs) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for Amazon CloudWatch Logs. +// +// Displays the tags associated with a CloudWatch Logs resource. Currently, +// log groups and destinations support tagging. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Logs's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// A parameter is specified incorrectly. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ServiceUnavailableException +// The service cannot complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListTagsForResource +func (c *CloudWatchLogs) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + return out, req.Send() +} + +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// the ability to pass a context and additional request options. +// +// See ListTagsForResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchLogs) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListTagsLogGroup = "ListTagsLogGroup" // ListTagsLogGroupRequest generates a "aws/request.Request" representing the @@ -3050,7 +3130,12 @@ const opListTagsLogGroup = "ListTagsLogGroup" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListTagsLogGroup +// +// Deprecated: Please use the generic tagging API ListTagsForResource func (c *CloudWatchLogs) ListTagsLogGroupRequest(input *ListTagsLogGroupInput) (req *request.Request, output *ListTagsLogGroupOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, ListTagsLogGroup, has been deprecated") + } op := &request.Operation{ Name: opListTagsLogGroup, HTTPMethod: "POST", @@ -3068,6 +3153,10 @@ func (c *CloudWatchLogs) ListTagsLogGroupRequest(input *ListTagsLogGroupInput) ( // ListTagsLogGroup API operation for Amazon CloudWatch Logs. // +// The ListTagsLogGroup operation is on the path to deprecation. We recommend +// that you use ListTagsForResource (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListTagsForResource.html) +// instead. +// // Lists the tags for the specified log group. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -3086,6 +3175,8 @@ func (c *CloudWatchLogs) ListTagsLogGroupRequest(input *ListTagsLogGroupInput) ( // The service cannot complete the request. // // See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListTagsLogGroup +// +// Deprecated: Please use the generic tagging API ListTagsForResource func (c *CloudWatchLogs) ListTagsLogGroup(input *ListTagsLogGroupInput) (*ListTagsLogGroupOutput, error) { req, out := c.ListTagsLogGroupRequest(input) return out, req.Send() @@ -3100,6 +3191,8 @@ func (c *CloudWatchLogs) ListTagsLogGroup(input *ListTagsLogGroupInput) (*ListTa // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: Please use the generic tagging API ListTagsForResource func (c *CloudWatchLogs) ListTagsLogGroupWithContext(ctx aws.Context, input *ListTagsLogGroupInput, opts ...request.Option) (*ListTagsLogGroupOutput, error) { req, out := c.ListTagsLogGroupRequest(input) req.SetContext(ctx) @@ -4156,7 +4249,12 @@ const opTagLogGroup = "TagLogGroup" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/TagLogGroup +// +// Deprecated: Please use the generic tagging API TagResource func (c *CloudWatchLogs) TagLogGroupRequest(input *TagLogGroupInput) (req *request.Request, output *TagLogGroupOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, TagLogGroup, has been deprecated") + } op := &request.Operation{ Name: opTagLogGroup, HTTPMethod: "POST", @@ -4175,10 +4273,14 @@ func (c *CloudWatchLogs) TagLogGroupRequest(input *TagLogGroupInput) (req *reque // TagLogGroup API operation for Amazon CloudWatch Logs. // +// The TagLogGroup operation is on the path to deprecation. We recommend that +// you use TagResource (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_TagResource.html) +// instead. +// // Adds or updates the specified tags for the specified log group. // -// To list the tags for a log group, use ListTagsLogGroup (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListTagsLogGroup.html). -// To remove tags, use UntagLogGroup (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UntagLogGroup.html). +// To list the tags for a log group, use ListTagsForResource (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListTagsForResource.html). +// To remove tags, use UntagResource (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UntagResource.html). // // For more information about tags, see Tag Log Groups in Amazon CloudWatch // Logs (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#log-group-tagging) @@ -4205,6 +4307,8 @@ func (c *CloudWatchLogs) TagLogGroupRequest(input *TagLogGroupInput) (req *reque // A parameter is specified incorrectly. // // See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/TagLogGroup +// +// Deprecated: Please use the generic tagging API TagResource func (c *CloudWatchLogs) TagLogGroup(input *TagLogGroupInput) (*TagLogGroupOutput, error) { req, out := c.TagLogGroupRequest(input) return out, req.Send() @@ -4219,6 +4323,8 @@ func (c *CloudWatchLogs) TagLogGroup(input *TagLogGroupInput) (*TagLogGroupOutpu // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: Please use the generic tagging API TagResource func (c *CloudWatchLogs) TagLogGroupWithContext(ctx aws.Context, input *TagLogGroupInput, opts ...request.Option) (*TagLogGroupOutput, error) { req, out := c.TagLogGroupRequest(input) req.SetContext(ctx) @@ -4226,6 +4332,112 @@ func (c *CloudWatchLogs) TagLogGroupWithContext(ctx aws.Context, input *TagLogGr return out, req.Send() } +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/TagResource +func (c *CloudWatchLogs) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// TagResource API operation for Amazon CloudWatch Logs. +// +// Assigns one or more tags (key-value pairs) to the specified CloudWatch Logs +// resource. Currently, the only CloudWatch Logs resources that can be tagged +// are log groups and destinations. +// +// Tags can help you organize and categorize your resources. You can also use +// them to scope user permissions by granting a user permission to access or +// change only resources with certain tag values. +// +// Tags don't have any semantic meaning to Amazon Web Services and are interpreted +// strictly as strings of characters. +// +// You can use the TagResource action with a resource that already has tags. +// If you specify a new tag key for the alarm, this tag is appended to the list +// of tags associated with the alarm. If you specify a tag key that is already +// associated with the alarm, the new tag value that you specify replaces the +// previous value for that tag. +// +// You can associate as many as 50 tags with a CloudWatch Logs resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Logs's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// A parameter is specified incorrectly. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ServiceUnavailableException +// The service cannot complete the request. +// +// - TooManyTagsException +// A resource can have no more than 50 tags. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/TagResource +func (c *CloudWatchLogs) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + return out, req.Send() +} + +// TagResourceWithContext is the same as TagResource with the addition of +// the ability to pass a context and additional request options. +// +// See TagResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchLogs) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opTestMetricFilter = "TestMetricFilter" // TestMetricFilterRequest generates a "aws/request.Request" representing the @@ -4335,7 +4547,12 @@ const opUntagLogGroup = "UntagLogGroup" // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/UntagLogGroup +// +// Deprecated: Please use the generic tagging API UntagResource func (c *CloudWatchLogs) UntagLogGroupRequest(input *UntagLogGroupInput) (req *request.Request, output *UntagLogGroupOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, UntagLogGroup, has been deprecated") + } op := &request.Operation{ Name: opUntagLogGroup, HTTPMethod: "POST", @@ -4354,10 +4571,14 @@ func (c *CloudWatchLogs) UntagLogGroupRequest(input *UntagLogGroupInput) (req *r // UntagLogGroup API operation for Amazon CloudWatch Logs. // +// 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 ListTagsLogGroup (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListTagsLogGroup.html). -// To add tags, use TagLogGroup (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_TagLogGroup.html). +// 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 @@ -4375,6 +4596,8 @@ func (c *CloudWatchLogs) UntagLogGroupRequest(input *UntagLogGroupInput) (req *r // The specified resource does not exist. // // See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/UntagLogGroup +// +// Deprecated: Please use the generic tagging API UntagResource func (c *CloudWatchLogs) UntagLogGroup(input *UntagLogGroupInput) (*UntagLogGroupOutput, error) { req, out := c.UntagLogGroupRequest(input) return out, req.Send() @@ -4389,6 +4612,8 @@ func (c *CloudWatchLogs) UntagLogGroup(input *UntagLogGroupInput) (*UntagLogGrou // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. +// +// Deprecated: Please use the generic tagging API UntagResource func (c *CloudWatchLogs) UntagLogGroupWithContext(ctx aws.Context, input *UntagLogGroupInput, opts ...request.Option) (*UntagLogGroupOutput, error) { req, out := c.UntagLogGroupRequest(input) req.SetContext(ctx) @@ -4396,6 +4621,92 @@ func (c *CloudWatchLogs) UntagLogGroupWithContext(ctx aws.Context, input *UntagL return out, req.Send() } +const opUntagResource = "UntagResource" + +// UntagResourceRequest generates a "aws/request.Request" representing the +// client's request for the UntagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UntagResource for more information on using the UntagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UntagResourceRequest method. +// req, resp := client.UntagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/UntagResource +func (c *CloudWatchLogs) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UntagResource API operation for Amazon CloudWatch Logs. +// +// Removes one or more tags from the specified resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Logs's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// A parameter is specified incorrectly. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ServiceUnavailableException +// The service cannot complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/UntagResource +func (c *CloudWatchLogs) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + return out, req.Send() +} + +// UntagResourceWithContext is the same as UntagResource with the addition of +// the ability to pass a context and additional request options. +// +// See UntagResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchLogs) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + type AssociateKmsKeyInput struct { _ struct{} `type:"structure"` @@ -8111,9 +8422,97 @@ func (s *LimitExceededException) RequestID() string { return s.RespMetadata.RequestID } -type ListTagsLogGroupInput struct { +type ListTagsForResourceInput struct { _ struct{} `type:"structure"` + // 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). + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The list of tags associated with the requested resource.> + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +// Deprecated: Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse +type ListTagsLogGroupInput struct { + _ struct{} `deprecated:"true" type:"structure"` + // The name of the log group. // // LogGroupName is a required field @@ -8160,8 +8559,9 @@ func (s *ListTagsLogGroupInput) SetLogGroupName(v string) *ListTagsLogGroupInput return s } +// Deprecated: Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse type ListTagsLogGroupOutput struct { - _ struct{} `type:"structure"` + _ struct{} `deprecated:"true" type:"structure"` // The tags for the log group. Tags map[string]*string `locationName:"tags" min:"1" type:"map"` @@ -8213,7 +8613,7 @@ type LogGroup struct { // 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, - // 1827, 2192, 2557, 2922, 3288, and 3653. + // 1827, and 3653. // // To set a log group to never have log events expire, use DeleteRetentionPolicy // (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). @@ -8880,6 +9280,12 @@ type PutDestinationInput struct { // RoleArn is a required field RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"` + // 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) + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // The ARN of an Amazon Kinesis stream to which to deliver matching log events. // // TargetArn is a required field @@ -8919,6 +9325,9 @@ func (s *PutDestinationInput) Validate() error { if s.RoleArn != nil && len(*s.RoleArn) < 1 { invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } if s.TargetArn == nil { invalidParams.Add(request.NewErrParamRequired("TargetArn")) } @@ -8944,6 +9353,12 @@ func (s *PutDestinationInput) SetRoleArn(v string) *PutDestinationInput { return s } +// SetTags sets the Tags field's value. +func (s *PutDestinationInput) SetTags(v map[string]*string) *PutDestinationInput { + s.Tags = v + return s +} + // SetTargetArn sets the TargetArn field's value. func (s *PutDestinationInput) SetTargetArn(v string) *PutDestinationInput { s.TargetArn = &v @@ -9610,7 +10025,7 @@ type PutRetentionPolicyInput struct { // 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, - // 1827, 2192, 2557, 2922, 3288, and 3653. + // 1827, and 3653. // // To set a log group to never have log events expire, use DeleteRetentionPolicy // (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). @@ -10828,8 +11243,9 @@ func (s *SubscriptionFilter) SetRoleArn(v string) *SubscriptionFilter { return s } +// Deprecated: Please use the generic tagging API model TagResourceRequest type TagLogGroupInput struct { - _ struct{} `type:"structure"` + _ struct{} `deprecated:"true" type:"structure"` // The name of the log group. // @@ -10916,6 +11332,101 @@ func (s TagLogGroupOutput) GoString() string { return s.String() } +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // 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). + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"` + + // The list of key-value pairs to associate with the resource. + // + // Tags is a required field + Tags map[string]*string `locationName:"tags" min:"1" type:"map" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { + s.Tags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) GoString() string { + return s.String() +} + type TestMetricFilterInput struct { _ struct{} `type:"structure"` @@ -11013,6 +11524,73 @@ func (s *TestMetricFilterOutput) SetMatches(v []*MetricFilterMatchRecord) *TestM return s } +// A resource can have no more than 50 tags. +type TooManyTagsException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The name of the resource. + ResourceName *string `locationName:"resourceName" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TooManyTagsException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TooManyTagsException) GoString() string { + return s.String() +} + +func newErrorTooManyTagsException(v protocol.ResponseMetadata) error { + return &TooManyTagsException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *TooManyTagsException) Code() string { + return "TooManyTagsException" +} + +// Message returns the exception's message. +func (s *TooManyTagsException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *TooManyTagsException) OrigErr() error { + return nil +} + +func (s *TooManyTagsException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *TooManyTagsException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *TooManyTagsException) RequestID() string { + return s.RespMetadata.RequestID +} + // The most likely cause is an invalid Amazon Web Services access key ID or // secret key. type UnrecognizedClientException struct { @@ -11078,8 +11656,9 @@ func (s *UnrecognizedClientException) RequestID() string { return s.RespMetadata.RequestID } +// Deprecated: Please use the generic tagging API model UntagResourceRequest type UntagLogGroupInput struct { - _ struct{} `type:"structure"` + _ struct{} `deprecated:"true" type:"structure"` // The name of the log group. // @@ -11166,6 +11745,98 @@ func (s UntagLogGroupOutput) GoString() string { return s.String() } +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // 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). + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"` + + // The list of tag keys to remove from the resource. + // + // TagKeys is a required field + TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTagKeys sets the TagKeys field's value. +func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { + s.TagKeys = v + return s +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) GoString() string { + return s.String() +} + // The method used to distribute log data to the destination, which can be either // random or grouped by log stream. const ( diff --git a/service/cloudwatchlogs/cloudwatchlogsiface/interface.go b/service/cloudwatchlogs/cloudwatchlogsiface/interface.go index 2e43c8b69a..9709534e77 100644 --- a/service/cloudwatchlogs/cloudwatchlogsiface/interface.go +++ b/service/cloudwatchlogs/cloudwatchlogsiface/interface.go @@ -193,6 +193,10 @@ type CloudWatchLogsAPI interface { GetQueryResultsWithContext(aws.Context, *cloudwatchlogs.GetQueryResultsInput, ...request.Option) (*cloudwatchlogs.GetQueryResultsOutput, error) GetQueryResultsRequest(*cloudwatchlogs.GetQueryResultsInput) (*request.Request, *cloudwatchlogs.GetQueryResultsOutput) + ListTagsForResource(*cloudwatchlogs.ListTagsForResourceInput) (*cloudwatchlogs.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *cloudwatchlogs.ListTagsForResourceInput, ...request.Option) (*cloudwatchlogs.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*cloudwatchlogs.ListTagsForResourceInput) (*request.Request, *cloudwatchlogs.ListTagsForResourceOutput) + ListTagsLogGroup(*cloudwatchlogs.ListTagsLogGroupInput) (*cloudwatchlogs.ListTagsLogGroupOutput, error) ListTagsLogGroupWithContext(aws.Context, *cloudwatchlogs.ListTagsLogGroupInput, ...request.Option) (*cloudwatchlogs.ListTagsLogGroupOutput, error) ListTagsLogGroupRequest(*cloudwatchlogs.ListTagsLogGroupInput) (*request.Request, *cloudwatchlogs.ListTagsLogGroupOutput) @@ -241,6 +245,10 @@ type CloudWatchLogsAPI interface { TagLogGroupWithContext(aws.Context, *cloudwatchlogs.TagLogGroupInput, ...request.Option) (*cloudwatchlogs.TagLogGroupOutput, error) TagLogGroupRequest(*cloudwatchlogs.TagLogGroupInput) (*request.Request, *cloudwatchlogs.TagLogGroupOutput) + TagResource(*cloudwatchlogs.TagResourceInput) (*cloudwatchlogs.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *cloudwatchlogs.TagResourceInput, ...request.Option) (*cloudwatchlogs.TagResourceOutput, error) + TagResourceRequest(*cloudwatchlogs.TagResourceInput) (*request.Request, *cloudwatchlogs.TagResourceOutput) + TestMetricFilter(*cloudwatchlogs.TestMetricFilterInput) (*cloudwatchlogs.TestMetricFilterOutput, error) TestMetricFilterWithContext(aws.Context, *cloudwatchlogs.TestMetricFilterInput, ...request.Option) (*cloudwatchlogs.TestMetricFilterOutput, error) TestMetricFilterRequest(*cloudwatchlogs.TestMetricFilterInput) (*request.Request, *cloudwatchlogs.TestMetricFilterOutput) @@ -248,6 +256,10 @@ type CloudWatchLogsAPI interface { UntagLogGroup(*cloudwatchlogs.UntagLogGroupInput) (*cloudwatchlogs.UntagLogGroupOutput, error) UntagLogGroupWithContext(aws.Context, *cloudwatchlogs.UntagLogGroupInput, ...request.Option) (*cloudwatchlogs.UntagLogGroupOutput, error) UntagLogGroupRequest(*cloudwatchlogs.UntagLogGroupInput) (*request.Request, *cloudwatchlogs.UntagLogGroupOutput) + + UntagResource(*cloudwatchlogs.UntagResourceInput) (*cloudwatchlogs.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *cloudwatchlogs.UntagResourceInput, ...request.Option) (*cloudwatchlogs.UntagResourceOutput, error) + UntagResourceRequest(*cloudwatchlogs.UntagResourceInput) (*request.Request, *cloudwatchlogs.UntagResourceOutput) } var _ CloudWatchLogsAPI = (*cloudwatchlogs.CloudWatchLogs)(nil) diff --git a/service/cloudwatchlogs/errors.go b/service/cloudwatchlogs/errors.go index 9da085e328..db1d6da26b 100644 --- a/service/cloudwatchlogs/errors.go +++ b/service/cloudwatchlogs/errors.go @@ -73,6 +73,12 @@ const ( // The service cannot complete the request. ErrCodeServiceUnavailableException = "ServiceUnavailableException" + // ErrCodeTooManyTagsException for service response error code + // "TooManyTagsException". + // + // A resource can have no more than 50 tags. + ErrCodeTooManyTagsException = "TooManyTagsException" + // ErrCodeUnrecognizedClientException for service response error code // "UnrecognizedClientException". // @@ -92,5 +98,6 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "ResourceAlreadyExistsException": newErrorResourceAlreadyExistsException, "ResourceNotFoundException": newErrorResourceNotFoundException, "ServiceUnavailableException": newErrorServiceUnavailableException, + "TooManyTagsException": newErrorTooManyTagsException, "UnrecognizedClientException": newErrorUnrecognizedClientException, } diff --git a/service/connect/api.go b/service/connect/api.go index 93d2c76bf8..fb0269a978 100644 --- a/service/connect/api.go +++ b/service/connect/api.go @@ -6451,6 +6451,104 @@ func (c *Connect) DisassociateSecurityKeyWithContext(ctx aws.Context, input *Dis return out, req.Send() } +const opDismissUserContact = "DismissUserContact" + +// DismissUserContactRequest generates a "aws/request.Request" representing the +// client's request for the DismissUserContact operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DismissUserContact for more information on using the DismissUserContact +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DismissUserContactRequest method. +// req, resp := client.DismissUserContactRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/DismissUserContact +func (c *Connect) DismissUserContactRequest(input *DismissUserContactInput) (req *request.Request, output *DismissUserContactOutput) { + op := &request.Operation{ + Name: opDismissUserContact, + HTTPMethod: "POST", + HTTPPath: "/users/{InstanceId}/{UserId}/contact", + } + + if input == nil { + input = &DismissUserContactInput{} + } + + output = &DismissUserContactOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DismissUserContact API operation for Amazon Connect Service. +// +// Dismisses contacts from an agent’s CCP and returns the agent to an available +// state, which allows the agent to receive a new routed contact. Contacts can +// only be dismissed if they are in a MISSED, ERROR, ENDED, or REJECTED state +// in the Agent Event Stream (https://docs.aws.amazon.com/connect/latest/adminguide/about-contact-states.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Service's +// API operation DismissUserContact for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/DismissUserContact +func (c *Connect) DismissUserContact(input *DismissUserContactInput) (*DismissUserContactOutput, error) { + req, out := c.DismissUserContactRequest(input) + return out, req.Send() +} + +// DismissUserContactWithContext is the same as DismissUserContact with the addition of +// the ability to pass a context and additional request options. +// +// See DismissUserContact for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Connect) DismissUserContactWithContext(ctx aws.Context, input *DismissUserContactInput, opts ...request.Option) (*DismissUserContactOutput, error) { + req, out := c.DismissUserContactRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetContactAttributes = "GetContactAttributes" // GetContactAttributesRequest generates a "aws/request.Request" representing the @@ -16931,7 +17029,8 @@ func (c *Connect) UpdateTrafficDistributionRequest(input *UpdateTrafficDistribut // UpdateTrafficDistribution API operation for Amazon Connect Service. // // Updates the traffic distribution for a given traffic distribution group. -// For more information about updating a traffic distribution group see Update +// +// For more information about updating a traffic distribution group, see Update // telephony traffic distribution across Amazon Web Services Regions (https://docs.aws.amazon.com/connect/latest/adminguide/update-telephony-traffic-distribution.html) // in the Amazon Connect Administrator Guide. // @@ -27133,6 +27232,112 @@ func (s DisassociateSecurityKeyOutput) GoString() string { return s.String() } +type DismissUserContactInput struct { + _ struct{} `type:"structure"` + + // The identifier of the contact. + // + // ContactId is a required field + ContactId *string `min:"1" type:"string" required:"true"` + + // The identifier of the Amazon Connect instance. You can find the instanceId + // in the ARN of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" type:"string" required:"true"` + + // The identifier of the user account. + // + // UserId is a required field + UserId *string `location:"uri" locationName:"UserId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DismissUserContactInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DismissUserContactInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DismissUserContactInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DismissUserContactInput"} + if s.ContactId == nil { + invalidParams.Add(request.NewErrParamRequired("ContactId")) + } + if s.ContactId != nil && len(*s.ContactId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ContactId", 1)) + } + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContactId sets the ContactId field's value. +func (s *DismissUserContactInput) SetContactId(v string) *DismissUserContactInput { + s.ContactId = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *DismissUserContactInput) SetInstanceId(v string) *DismissUserContactInput { + s.InstanceId = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *DismissUserContactInput) SetUserId(v string) *DismissUserContactInput { + s.UserId = &v + return s +} + +type DismissUserContactOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DismissUserContactOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DismissUserContactOutput) GoString() string { + return s.String() +} + // Information about a traffic distribution. type Distribution struct { _ struct{} `type:"structure"` diff --git a/service/connect/connectiface/interface.go b/service/connect/connectiface/interface.go index 74c576af6a..fcf1856f45 100644 --- a/service/connect/connectiface/interface.go +++ b/service/connect/connectiface/interface.go @@ -328,6 +328,10 @@ type ConnectAPI interface { DisassociateSecurityKeyWithContext(aws.Context, *connect.DisassociateSecurityKeyInput, ...request.Option) (*connect.DisassociateSecurityKeyOutput, error) DisassociateSecurityKeyRequest(*connect.DisassociateSecurityKeyInput) (*request.Request, *connect.DisassociateSecurityKeyOutput) + DismissUserContact(*connect.DismissUserContactInput) (*connect.DismissUserContactOutput, error) + DismissUserContactWithContext(aws.Context, *connect.DismissUserContactInput, ...request.Option) (*connect.DismissUserContactOutput, error) + DismissUserContactRequest(*connect.DismissUserContactInput) (*request.Request, *connect.DismissUserContactOutput) + GetContactAttributes(*connect.GetContactAttributesInput) (*connect.GetContactAttributesOutput, error) GetContactAttributesWithContext(aws.Context, *connect.GetContactAttributesInput, ...request.Option) (*connect.GetContactAttributesOutput, error) GetContactAttributesRequest(*connect.GetContactAttributesInput) (*request.Request, *connect.GetContactAttributesOutput) diff --git a/service/ec2/api.go b/service/ec2/api.go index f4a6ea08b6..3797b05315 100644 --- a/service/ec2/api.go +++ b/service/ec2/api.go @@ -13,6 +13,81 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/ec2query" ) +const opAcceptAddressTransfer = "AcceptAddressTransfer" + +// AcceptAddressTransferRequest generates a "aws/request.Request" representing the +// client's request for the AcceptAddressTransfer operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See AcceptAddressTransfer for more information on using the AcceptAddressTransfer +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the AcceptAddressTransferRequest method. +// req, resp := client.AcceptAddressTransferRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptAddressTransfer +func (c *EC2) AcceptAddressTransferRequest(input *AcceptAddressTransferInput) (req *request.Request, output *AcceptAddressTransferOutput) { + op := &request.Operation{ + Name: opAcceptAddressTransfer, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AcceptAddressTransferInput{} + } + + output = &AcceptAddressTransferOutput{} + req = c.newRequest(op, input, output) + return +} + +// AcceptAddressTransfer API operation for Amazon Elastic Compute Cloud. +// +// Accepts an Elastic IP address transfer. For more information, see Accept +// a transferred Elastic IP address (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#using-instance-addressing-eips-transfer-accept) +// in the Amazon Virtual Private Cloud User Guide. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation AcceptAddressTransfer for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptAddressTransfer +func (c *EC2) AcceptAddressTransfer(input *AcceptAddressTransferInput) (*AcceptAddressTransferOutput, error) { + req, out := c.AcceptAddressTransferRequest(input) + return out, req.Send() +} + +// AcceptAddressTransferWithContext is the same as AcceptAddressTransfer with the addition of +// the ability to pass a context and additional request options. +// +// See AcceptAddressTransfer for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) AcceptAddressTransferWithContext(ctx aws.Context, input *AcceptAddressTransferInput, opts ...request.Option) (*AcceptAddressTransferOutput, error) { + req, out := c.AcceptAddressTransferRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opAcceptReservedInstancesExchangeQuote = "AcceptReservedInstancesExchangeQuote" // AcceptReservedInstancesExchangeQuoteRequest generates a "aws/request.Request" representing the @@ -15967,6 +16042,138 @@ func (c *EC2) DescribeAccountAttributesWithContext(ctx aws.Context, input *Descr return out, req.Send() } +const opDescribeAddressTransfers = "DescribeAddressTransfers" + +// DescribeAddressTransfersRequest generates a "aws/request.Request" representing the +// client's request for the DescribeAddressTransfers operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DescribeAddressTransfers for more information on using the DescribeAddressTransfers +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DescribeAddressTransfersRequest method. +// req, resp := client.DescribeAddressTransfersRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAddressTransfers +func (c *EC2) DescribeAddressTransfersRequest(input *DescribeAddressTransfersInput) (req *request.Request, output *DescribeAddressTransfersOutput) { + op := &request.Operation{ + Name: opDescribeAddressTransfers, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeAddressTransfersInput{} + } + + output = &DescribeAddressTransfersOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeAddressTransfers API operation for Amazon Elastic Compute Cloud. +// +// Describes an Elastic IP address transfer. For more information, see Transfer +// Elastic IP addresses (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) +// in the Amazon Virtual Private Cloud User Guide. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation DescribeAddressTransfers for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAddressTransfers +func (c *EC2) DescribeAddressTransfers(input *DescribeAddressTransfersInput) (*DescribeAddressTransfersOutput, error) { + req, out := c.DescribeAddressTransfersRequest(input) + return out, req.Send() +} + +// DescribeAddressTransfersWithContext is the same as DescribeAddressTransfers with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeAddressTransfers for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) DescribeAddressTransfersWithContext(ctx aws.Context, input *DescribeAddressTransfersInput, opts ...request.Option) (*DescribeAddressTransfersOutput, error) { + req, out := c.DescribeAddressTransfersRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// DescribeAddressTransfersPages iterates over the pages of a DescribeAddressTransfers operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See DescribeAddressTransfers method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a DescribeAddressTransfers operation. +// pageNum := 0 +// err := client.DescribeAddressTransfersPages(params, +// func(page *ec2.DescribeAddressTransfersOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *EC2) DescribeAddressTransfersPages(input *DescribeAddressTransfersInput, fn func(*DescribeAddressTransfersOutput, bool) bool) error { + return c.DescribeAddressTransfersPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// DescribeAddressTransfersPagesWithContext same as DescribeAddressTransfersPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) DescribeAddressTransfersPagesWithContext(ctx aws.Context, input *DescribeAddressTransfersInput, fn func(*DescribeAddressTransfersOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeAddressTransfersInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeAddressTransfersRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*DescribeAddressTransfersOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opDescribeAddresses = "DescribeAddresses" // DescribeAddressesRequest generates a "aws/request.Request" representing the @@ -32401,6 +32608,81 @@ func (c *EC2) DetachVpnGatewayWithContext(ctx aws.Context, input *DetachVpnGatew return out, req.Send() } +const opDisableAddressTransfer = "DisableAddressTransfer" + +// DisableAddressTransferRequest generates a "aws/request.Request" representing the +// client's request for the DisableAddressTransfer operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DisableAddressTransfer for more information on using the DisableAddressTransfer +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DisableAddressTransferRequest method. +// req, resp := client.DisableAddressTransferRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableAddressTransfer +func (c *EC2) DisableAddressTransferRequest(input *DisableAddressTransferInput) (req *request.Request, output *DisableAddressTransferOutput) { + op := &request.Operation{ + Name: opDisableAddressTransfer, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DisableAddressTransferInput{} + } + + output = &DisableAddressTransferOutput{} + req = c.newRequest(op, input, output) + return +} + +// DisableAddressTransfer API operation for Amazon Elastic Compute Cloud. +// +// Disables Elastic IP address transfer. For more information, see Transfer +// Elastic IP addresses (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) +// in the Amazon Virtual Private Cloud User Guide. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation DisableAddressTransfer for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableAddressTransfer +func (c *EC2) DisableAddressTransfer(input *DisableAddressTransferInput) (*DisableAddressTransferOutput, error) { + req, out := c.DisableAddressTransferRequest(input) + return out, req.Send() +} + +// DisableAddressTransferWithContext is the same as DisableAddressTransfer with the addition of +// the ability to pass a context and additional request options. +// +// See DisableAddressTransfer for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) DisableAddressTransferWithContext(ctx aws.Context, input *DisableAddressTransferInput, opts ...request.Option) (*DisableAddressTransferOutput, error) { + req, out := c.DisableAddressTransferRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDisableEbsEncryptionByDefault = "DisableEbsEncryptionByDefault" // DisableEbsEncryptionByDefaultRequest generates a "aws/request.Request" representing the @@ -34100,6 +34382,81 @@ func (c *EC2) DisassociateVpcCidrBlockWithContext(ctx aws.Context, input *Disass return out, req.Send() } +const opEnableAddressTransfer = "EnableAddressTransfer" + +// EnableAddressTransferRequest generates a "aws/request.Request" representing the +// client's request for the EnableAddressTransfer operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See EnableAddressTransfer for more information on using the EnableAddressTransfer +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the EnableAddressTransferRequest method. +// req, resp := client.EnableAddressTransferRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableAddressTransfer +func (c *EC2) EnableAddressTransferRequest(input *EnableAddressTransferInput) (req *request.Request, output *EnableAddressTransferOutput) { + op := &request.Operation{ + Name: opEnableAddressTransfer, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &EnableAddressTransferInput{} + } + + output = &EnableAddressTransferOutput{} + req = c.newRequest(op, input, output) + return +} + +// EnableAddressTransfer API operation for Amazon Elastic Compute Cloud. +// +// Enables Elastic IP address transfer. For more information, see Transfer Elastic +// IP addresses (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) +// in the Amazon Virtual Private Cloud User Guide. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation EnableAddressTransfer for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableAddressTransfer +func (c *EC2) EnableAddressTransfer(input *EnableAddressTransferInput) (*EnableAddressTransferOutput, error) { + req, out := c.EnableAddressTransferRequest(input) + return out, req.Send() +} + +// EnableAddressTransferWithContext is the same as EnableAddressTransfer with the addition of +// the ability to pass a context and additional request options. +// +// See EnableAddressTransfer for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) EnableAddressTransferWithContext(ctx aws.Context, input *EnableAddressTransferInput, opts ...request.Option) (*EnableAddressTransferOutput, error) { + req, out := c.EnableAddressTransferRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opEnableEbsEncryptionByDefault = "EnableEbsEncryptionByDefault" // EnableEbsEncryptionByDefaultRequest generates a "aws/request.Request" representing the @@ -50010,6 +50367,108 @@ func (s *AcceleratorTotalMemoryMiBRequest) SetMin(v int64) *AcceleratorTotalMemo return s } +type AcceptAddressTransferInput struct { + _ struct{} `type:"structure"` + + // The Elastic IP address you are accepting for transfer. + // + // Address is a required field + Address *string `type:"string" required:"true"` + + // 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. + DryRun *bool `type:"boolean"` + + // tag: - The key/value combination of a tag assigned to the resource. + // Use the tag key in the filter name and the tag value as the filter value. + // For example, to find all resources that have a tag with the key Owner and + // the value TeamA, specify tag:Owner for the filter name and TeamA for the + // filter value. + TagSpecifications []*TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AcceptAddressTransferInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AcceptAddressTransferInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AcceptAddressTransferInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AcceptAddressTransferInput"} + if s.Address == nil { + invalidParams.Add(request.NewErrParamRequired("Address")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAddress sets the Address field's value. +func (s *AcceptAddressTransferInput) SetAddress(v string) *AcceptAddressTransferInput { + s.Address = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *AcceptAddressTransferInput) SetDryRun(v bool) *AcceptAddressTransferInput { + s.DryRun = &v + return s +} + +// SetTagSpecifications sets the TagSpecifications field's value. +func (s *AcceptAddressTransferInput) SetTagSpecifications(v []*TagSpecification) *AcceptAddressTransferInput { + s.TagSpecifications = v + return s +} + +type AcceptAddressTransferOutput struct { + _ struct{} `type:"structure"` + + // An Elastic IP address transfer. + AddressTransfer *AddressTransfer `locationName:"addressTransfer" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AcceptAddressTransferOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AcceptAddressTransferOutput) GoString() string { + return s.String() +} + +// SetAddressTransfer sets the AddressTransfer field's value. +func (s *AcceptAddressTransferOutput) SetAddressTransfer(v *AddressTransfer) *AcceptAddressTransferOutput { + s.AddressTransfer = v + return s +} + // Contains the parameters for accepting the quote. type AcceptReservedInstancesExchangeQuoteInput struct { _ struct{} `type:"structure"` @@ -51272,6 +51731,88 @@ func (s *AddressAttribute) SetPublicIp(v string) *AddressAttribute { return s } +// Details on the Elastic IP address transfer. For more information, see Transfer +// Elastic IP addresses (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) +// in the Amazon Virtual Private Cloud User Guide. +type AddressTransfer struct { + _ struct{} `type:"structure"` + + // The Elastic IP address transfer status. + AddressTransferStatus *string `locationName:"addressTransferStatus" type:"string" enum:"AddressTransferStatus"` + + // The allocation ID of an Elastic IP address. + AllocationId *string `locationName:"allocationId" type:"string"` + + // The Elastic IP address being transferred. + PublicIp *string `locationName:"publicIp" type:"string"` + + // The ID of the account that you want to transfer the Elastic IP address to. + TransferAccountId *string `locationName:"transferAccountId" type:"string"` + + // The timestamp when the Elastic IP address transfer was accepted. + TransferOfferAcceptedTimestamp *time.Time `locationName:"transferOfferAcceptedTimestamp" type:"timestamp"` + + // The timestamp when the Elastic IP address transfer expired. When the source + // account starts the transfer, the transfer account has seven hours to allocate + // the Elastic IP address to complete the transfer, or the Elastic IP address + // will return to its original owner. + TransferOfferExpirationTimestamp *time.Time `locationName:"transferOfferExpirationTimestamp" type:"timestamp"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddressTransfer) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddressTransfer) GoString() string { + return s.String() +} + +// SetAddressTransferStatus sets the AddressTransferStatus field's value. +func (s *AddressTransfer) SetAddressTransferStatus(v string) *AddressTransfer { + s.AddressTransferStatus = &v + return s +} + +// SetAllocationId sets the AllocationId field's value. +func (s *AddressTransfer) SetAllocationId(v string) *AddressTransfer { + s.AllocationId = &v + return s +} + +// SetPublicIp sets the PublicIp field's value. +func (s *AddressTransfer) SetPublicIp(v string) *AddressTransfer { + s.PublicIp = &v + return s +} + +// SetTransferAccountId sets the TransferAccountId field's value. +func (s *AddressTransfer) SetTransferAccountId(v string) *AddressTransfer { + s.TransferAccountId = &v + return s +} + +// SetTransferOfferAcceptedTimestamp sets the TransferOfferAcceptedTimestamp field's value. +func (s *AddressTransfer) SetTransferOfferAcceptedTimestamp(v time.Time) *AddressTransfer { + s.TransferOfferAcceptedTimestamp = &v + return s +} + +// SetTransferOfferExpirationTimestamp sets the TransferOfferExpirationTimestamp field's value. +func (s *AddressTransfer) SetTransferOfferExpirationTimestamp(v time.Time) *AddressTransfer { + s.TransferOfferExpirationTimestamp = &v + return s +} + type AdvertiseByoipCidrInput struct { _ struct{} `type:"structure"` @@ -80259,6 +80800,122 @@ func (s *DescribeAccountAttributesOutput) SetAccountAttributes(v []*AccountAttri return s } +type DescribeAddressTransfersInput struct { + _ struct{} `type:"structure"` + + // The allocation IDs of Elastic IP addresses. + AllocationIds []*string `locationName:"AllocationId" locationNameList:"AllocationId" type:"list"` + + // 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. + DryRun *bool `type:"boolean"` + + // The maximum number of address transfers to return in one page of results. + MaxResults *int64 `min:"5" type:"integer"` + + // Specify the pagination token from a previous request to retrieve the next + // page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeAddressTransfersInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeAddressTransfersInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeAddressTransfersInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeAddressTransfersInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAllocationIds sets the AllocationIds field's value. +func (s *DescribeAddressTransfersInput) SetAllocationIds(v []*string) *DescribeAddressTransfersInput { + s.AllocationIds = v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *DescribeAddressTransfersInput) SetDryRun(v bool) *DescribeAddressTransfersInput { + s.DryRun = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribeAddressTransfersInput) SetMaxResults(v int64) *DescribeAddressTransfersInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeAddressTransfersInput) SetNextToken(v string) *DescribeAddressTransfersInput { + s.NextToken = &v + return s +} + +type DescribeAddressTransfersOutput struct { + _ struct{} `type:"structure"` + + // The Elastic IP address transfer. + AddressTransfers []*AddressTransfer `locationName:"addressTransferSet" locationNameList:"item" type:"list"` + + // Specify the pagination token from a previous request to retrieve the next + // page of results. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeAddressTransfersOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeAddressTransfersOutput) GoString() string { + return s.String() +} + +// SetAddressTransfers sets the AddressTransfers field's value. +func (s *DescribeAddressTransfersOutput) SetAddressTransfers(v []*AddressTransfer) *DescribeAddressTransfersOutput { + s.AddressTransfers = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeAddressTransfersOutput) SetNextToken(v string) *DescribeAddressTransfersOutput { + s.NextToken = &v + return s +} + type DescribeAddressesAttributeInput struct { _ struct{} `type:"structure"` @@ -100325,6 +100982,95 @@ func (s *DirectoryServiceAuthenticationRequest) SetDirectoryId(v string) *Direct return s } +type DisableAddressTransferInput struct { + _ struct{} `type:"structure"` + + // The allocation ID of an Elastic IP address. + // + // AllocationId is a required field + AllocationId *string `type:"string" required:"true"` + + // 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. + DryRun *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisableAddressTransferInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisableAddressTransferInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisableAddressTransferInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DisableAddressTransferInput"} + if s.AllocationId == nil { + invalidParams.Add(request.NewErrParamRequired("AllocationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAllocationId sets the AllocationId field's value. +func (s *DisableAddressTransferInput) SetAllocationId(v string) *DisableAddressTransferInput { + s.AllocationId = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *DisableAddressTransferInput) SetDryRun(v bool) *DisableAddressTransferInput { + s.DryRun = &v + return s +} + +type DisableAddressTransferOutput struct { + _ struct{} `type:"structure"` + + // An Elastic IP address transfer. + AddressTransfer *AddressTransfer `locationName:"addressTransfer" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisableAddressTransferOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisableAddressTransferOutput) GoString() string { + return s.String() +} + +// SetAddressTransfer sets the AddressTransfer field's value. +func (s *DisableAddressTransferOutput) SetAddressTransfer(v *AddressTransfer) *DisableAddressTransferOutput { + s.AddressTransfer = v + return s +} + type DisableEbsEncryptionByDefaultInput struct { _ struct{} `type:"structure"` @@ -104001,6 +104747,109 @@ func (s *ElasticInferenceAcceleratorAssociation) SetElasticInferenceAcceleratorA return s } +type EnableAddressTransferInput struct { + _ struct{} `type:"structure"` + + // The allocation ID of an Elastic IP address. + // + // AllocationId is a required field + AllocationId *string `type:"string" required:"true"` + + // 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. + DryRun *bool `type:"boolean"` + + // The ID of the account that you want to transfer the Elastic IP address to. + // + // TransferAccountId is a required field + TransferAccountId *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnableAddressTransferInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnableAddressTransferInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EnableAddressTransferInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EnableAddressTransferInput"} + if s.AllocationId == nil { + invalidParams.Add(request.NewErrParamRequired("AllocationId")) + } + if s.TransferAccountId == nil { + invalidParams.Add(request.NewErrParamRequired("TransferAccountId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAllocationId sets the AllocationId field's value. +func (s *EnableAddressTransferInput) SetAllocationId(v string) *EnableAddressTransferInput { + s.AllocationId = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *EnableAddressTransferInput) SetDryRun(v bool) *EnableAddressTransferInput { + s.DryRun = &v + return s +} + +// SetTransferAccountId sets the TransferAccountId field's value. +func (s *EnableAddressTransferInput) SetTransferAccountId(v string) *EnableAddressTransferInput { + s.TransferAccountId = &v + return s +} + +type EnableAddressTransferOutput struct { + _ struct{} `type:"structure"` + + // An Elastic IP address transfer. + AddressTransfer *AddressTransfer `locationName:"addressTransfer" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnableAddressTransferOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnableAddressTransferOutput) GoString() string { + return s.String() +} + +// SetAddressTransfer sets the AddressTransfer field's value. +func (s *EnableAddressTransferOutput) SetAddressTransfer(v *AddressTransfer) *EnableAddressTransferOutput { + s.AddressTransfer = v + return s +} + type EnableEbsEncryptionByDefaultInput struct { _ struct{} `type:"structure"` @@ -111204,7 +112053,7 @@ type GetIpamResourceCidrsInput struct { // The ID of the Amazon Web Services account that owns the resource. ResourceOwner *string `type:"string"` - // A tag on an IPAM resource. + // The resource tag. ResourceTag *RequestIpamResourceTag `type:"structure"` // The resource type. @@ -131361,7 +132210,7 @@ func (s *ModifyIpamResourceCidrInput) SetResourceRegion(v string) *ModifyIpamRes type ModifyIpamResourceCidrOutput struct { _ struct{} `type:"structure"` - // The CIDR for an IPAM resource. + // The CIDR of the resource. IpamResourceCidr *IpamResourceCidr `locationName:"ipamResourceCidr" type:"structure"` } @@ -136215,8 +137064,7 @@ func (s *MoveByoipCidrToIpamInput) SetIpamPoolOwner(v string) *MoveByoipCidrToIp type MoveByoipCidrToIpamOutput struct { _ struct{} `type:"structure"` - // Information about an address range that is provisioned for use with your - // Amazon Web Services resources through bring your own IP addresses (BYOIP). + // The BYOIP CIDR. ByoipCidr *ByoipCidr `locationName:"byoipCidr" type:"structure"` } @@ -141063,7 +141911,7 @@ func (s *ProvisionPublicIpv4PoolCidrInput) SetPoolId(v string) *ProvisionPublicI type ProvisionPublicIpv4PoolCidrOutput struct { _ struct{} `type:"structure"` - // Describes an address range of an IPv4 address pool. + // Information about the address range of the public IPv4 pool. PoolAddressRange *PublicIpv4PoolRange `locationName:"poolAddressRange" type:"structure"` // The ID of the pool that you want to provision the CIDR to. @@ -165929,6 +166777,26 @@ func AddressFamily_Values() []string { } } +const ( + // AddressTransferStatusPending is a AddressTransferStatus enum value + AddressTransferStatusPending = "pending" + + // AddressTransferStatusDisabled is a AddressTransferStatus enum value + AddressTransferStatusDisabled = "disabled" + + // AddressTransferStatusAccepted is a AddressTransferStatus enum value + AddressTransferStatusAccepted = "accepted" +) + +// AddressTransferStatus_Values returns all elements of the AddressTransferStatus enum +func AddressTransferStatus_Values() []string { + return []string{ + AddressTransferStatusPending, + AddressTransferStatusDisabled, + AddressTransferStatusAccepted, + } +} + const ( // AffinityDefault is a Affinity enum value AffinityDefault = "default" diff --git a/service/ec2/ec2iface/interface.go b/service/ec2/ec2iface/interface.go index 4c50d16ce7..5129f7f0d4 100644 --- a/service/ec2/ec2iface/interface.go +++ b/service/ec2/ec2iface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // Amazon Elastic Compute Cloud. // func myFunc(svc ec2iface.EC2API) bool { -// // Make svc.AcceptReservedInstancesExchangeQuote request +// // Make svc.AcceptAddressTransfer request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockEC2Client struct { // ec2iface.EC2API // } -// func (m *mockEC2Client) AcceptReservedInstancesExchangeQuote(input *ec2.AcceptReservedInstancesExchangeQuoteInput) (*ec2.AcceptReservedInstancesExchangeQuoteOutput, error) { +// func (m *mockEC2Client) AcceptAddressTransfer(input *ec2.AcceptAddressTransferInput) (*ec2.AcceptAddressTransferOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,10 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type EC2API interface { + AcceptAddressTransfer(*ec2.AcceptAddressTransferInput) (*ec2.AcceptAddressTransferOutput, error) + AcceptAddressTransferWithContext(aws.Context, *ec2.AcceptAddressTransferInput, ...request.Option) (*ec2.AcceptAddressTransferOutput, error) + AcceptAddressTransferRequest(*ec2.AcceptAddressTransferInput) (*request.Request, *ec2.AcceptAddressTransferOutput) + AcceptReservedInstancesExchangeQuote(*ec2.AcceptReservedInstancesExchangeQuoteInput) (*ec2.AcceptReservedInstancesExchangeQuoteOutput, error) AcceptReservedInstancesExchangeQuoteWithContext(aws.Context, *ec2.AcceptReservedInstancesExchangeQuoteInput, ...request.Option) (*ec2.AcceptReservedInstancesExchangeQuoteOutput, error) AcceptReservedInstancesExchangeQuoteRequest(*ec2.AcceptReservedInstancesExchangeQuoteInput) (*request.Request, *ec2.AcceptReservedInstancesExchangeQuoteOutput) @@ -860,6 +864,13 @@ type EC2API interface { DescribeAccountAttributesWithContext(aws.Context, *ec2.DescribeAccountAttributesInput, ...request.Option) (*ec2.DescribeAccountAttributesOutput, error) DescribeAccountAttributesRequest(*ec2.DescribeAccountAttributesInput) (*request.Request, *ec2.DescribeAccountAttributesOutput) + DescribeAddressTransfers(*ec2.DescribeAddressTransfersInput) (*ec2.DescribeAddressTransfersOutput, error) + DescribeAddressTransfersWithContext(aws.Context, *ec2.DescribeAddressTransfersInput, ...request.Option) (*ec2.DescribeAddressTransfersOutput, error) + DescribeAddressTransfersRequest(*ec2.DescribeAddressTransfersInput) (*request.Request, *ec2.DescribeAddressTransfersOutput) + + DescribeAddressTransfersPages(*ec2.DescribeAddressTransfersInput, func(*ec2.DescribeAddressTransfersOutput, bool) bool) error + DescribeAddressTransfersPagesWithContext(aws.Context, *ec2.DescribeAddressTransfersInput, func(*ec2.DescribeAddressTransfersOutput, bool) bool, ...request.Option) error + DescribeAddresses(*ec2.DescribeAddressesInput) (*ec2.DescribeAddressesOutput, error) DescribeAddressesWithContext(aws.Context, *ec2.DescribeAddressesInput, ...request.Option) (*ec2.DescribeAddressesOutput, error) DescribeAddressesRequest(*ec2.DescribeAddressesInput) (*request.Request, *ec2.DescribeAddressesOutput) @@ -1716,6 +1727,10 @@ type EC2API interface { DetachVpnGatewayWithContext(aws.Context, *ec2.DetachVpnGatewayInput, ...request.Option) (*ec2.DetachVpnGatewayOutput, error) DetachVpnGatewayRequest(*ec2.DetachVpnGatewayInput) (*request.Request, *ec2.DetachVpnGatewayOutput) + DisableAddressTransfer(*ec2.DisableAddressTransferInput) (*ec2.DisableAddressTransferOutput, error) + DisableAddressTransferWithContext(aws.Context, *ec2.DisableAddressTransferInput, ...request.Option) (*ec2.DisableAddressTransferOutput, error) + DisableAddressTransferRequest(*ec2.DisableAddressTransferInput) (*request.Request, *ec2.DisableAddressTransferOutput) + DisableEbsEncryptionByDefault(*ec2.DisableEbsEncryptionByDefaultInput) (*ec2.DisableEbsEncryptionByDefaultOutput, error) DisableEbsEncryptionByDefaultWithContext(aws.Context, *ec2.DisableEbsEncryptionByDefaultInput, ...request.Option) (*ec2.DisableEbsEncryptionByDefaultOutput, error) DisableEbsEncryptionByDefaultRequest(*ec2.DisableEbsEncryptionByDefaultInput) (*request.Request, *ec2.DisableEbsEncryptionByDefaultOutput) @@ -1804,6 +1819,10 @@ type EC2API interface { DisassociateVpcCidrBlockWithContext(aws.Context, *ec2.DisassociateVpcCidrBlockInput, ...request.Option) (*ec2.DisassociateVpcCidrBlockOutput, error) DisassociateVpcCidrBlockRequest(*ec2.DisassociateVpcCidrBlockInput) (*request.Request, *ec2.DisassociateVpcCidrBlockOutput) + EnableAddressTransfer(*ec2.EnableAddressTransferInput) (*ec2.EnableAddressTransferOutput, error) + EnableAddressTransferWithContext(aws.Context, *ec2.EnableAddressTransferInput, ...request.Option) (*ec2.EnableAddressTransferOutput, error) + EnableAddressTransferRequest(*ec2.EnableAddressTransferInput) (*request.Request, *ec2.EnableAddressTransferOutput) + EnableEbsEncryptionByDefault(*ec2.EnableEbsEncryptionByDefaultInput) (*ec2.EnableEbsEncryptionByDefaultOutput, error) EnableEbsEncryptionByDefaultWithContext(aws.Context, *ec2.EnableEbsEncryptionByDefaultInput, ...request.Option) (*ec2.EnableEbsEncryptionByDefaultOutput, error) EnableEbsEncryptionByDefaultRequest(*ec2.EnableEbsEncryptionByDefaultInput) (*request.Request, *ec2.EnableEbsEncryptionByDefaultOutput) diff --git a/service/iot/api.go b/service/iot/api.go index 5e06c1e98e..f627de13e4 100644 --- a/service/iot/api.go +++ b/service/iot/api.go @@ -25318,6 +25318,10 @@ type Action struct { // Invoke a Lambda function. Lambda *LambdaAction `locationName:"lambda" type:"structure"` + // The Amazon Location Service rule action sends device location updates from + // an MQTT message to an Amazon Location tracker resource. + Location *LocationAction `locationName:"location" type:"structure"` + // Write data to an Amazon OpenSearch Service domain. OpenSearch *OpenSearchAction `locationName:"openSearch" type:"structure"` @@ -25432,6 +25436,11 @@ func (s *Action) Validate() error { invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams)) } } + if s.Location != nil { + if err := s.Location.Validate(); err != nil { + invalidParams.AddNested("Location", err.(request.ErrInvalidParams)) + } + } if s.OpenSearch != nil { if err := s.OpenSearch.Validate(); err != nil { invalidParams.AddNested("OpenSearch", err.(request.ErrInvalidParams)) @@ -25563,6 +25572,12 @@ func (s *Action) SetLambda(v *LambdaAction) *Action { return s } +// SetLocation sets the Location field's value. +func (s *Action) SetLocation(v *LocationAction) *Action { + s.Location = v + return s +} + // SetOpenSearch sets the OpenSearch field's value. func (s *Action) SetOpenSearch(v *OpenSearchAction) *Action { s.OpenSearch = v @@ -33642,7 +33657,9 @@ type CreateProvisioningTemplateInput struct { // True to enable the provisioning template, otherwise false. Enabled *bool `locationName:"enabled" type:"boolean"` - // Creates a pre-provisioning hook template. + // Creates a pre-provisioning hook template. Only supports template of type + // FLEET_PROVISIONING. For more information about provisioning template types, + // see type (https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningTemplate.html#iot-CreateProvisioningTemplate-request-type). PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"` // The role ARN for the role associated with the provisioning template. This @@ -43766,7 +43783,7 @@ func (s *FleetMetricNameAndArn) SetMetricName(v string) *FleetMetricNameAndArn { type GetBehaviorModelTrainingSummariesInput struct { _ struct{} `type:"structure" nopayload:"true"` - // The maximum number of results to return at one time. The default is 25. + // The maximum number of results to return at one time. The default is 10. MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` // The token for the next set of results. @@ -54573,6 +54590,189 @@ func (s *ListViolationEventsOutput) SetViolationEvents(v []*ViolationEvent) *Lis return s } +// The Amazon Location rule action sends device location updates from an MQTT +// message to an Amazon Location tracker resource. +type LocationAction struct { + _ struct{} `type:"structure"` + + // The unique ID of the device providing the location data. + // + // DeviceId is a required field + DeviceId *string `locationName:"deviceId" type:"string" required:"true"` + + // A string that evaluates to a double value that represents the latitude of + // the device's location. + // + // Latitude is a required field + Latitude *string `locationName:"latitude" type:"string" required:"true"` + + // A string that evaluates to a double value that represents the longitude of + // the device's location. + // + // Longitude is a required field + Longitude *string `locationName:"longitude" type:"string" required:"true"` + + // The IAM role that grants permission to write to the Amazon Location resource. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // The time that the location data was sampled. The default value is the time + // the MQTT message was processed. + Timestamp *LocationTimestamp `locationName:"timestamp" type:"structure"` + + // The name of the tracker resource in Amazon Location in which the location + // is updated. + // + // TrackerName is a required field + TrackerName *string `locationName:"trackerName" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LocationAction) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LocationAction) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LocationAction) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LocationAction"} + if s.DeviceId == nil { + invalidParams.Add(request.NewErrParamRequired("DeviceId")) + } + if s.Latitude == nil { + invalidParams.Add(request.NewErrParamRequired("Latitude")) + } + if s.Longitude == nil { + invalidParams.Add(request.NewErrParamRequired("Longitude")) + } + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.TrackerName == nil { + invalidParams.Add(request.NewErrParamRequired("TrackerName")) + } + if s.Timestamp != nil { + if err := s.Timestamp.Validate(); err != nil { + invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDeviceId sets the DeviceId field's value. +func (s *LocationAction) SetDeviceId(v string) *LocationAction { + s.DeviceId = &v + return s +} + +// SetLatitude sets the Latitude field's value. +func (s *LocationAction) SetLatitude(v string) *LocationAction { + s.Latitude = &v + return s +} + +// SetLongitude sets the Longitude field's value. +func (s *LocationAction) SetLongitude(v string) *LocationAction { + s.Longitude = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *LocationAction) SetRoleArn(v string) *LocationAction { + s.RoleArn = &v + return s +} + +// SetTimestamp sets the Timestamp field's value. +func (s *LocationAction) SetTimestamp(v *LocationTimestamp) *LocationAction { + s.Timestamp = v + return s +} + +// SetTrackerName sets the TrackerName field's value. +func (s *LocationAction) SetTrackerName(v string) *LocationAction { + s.TrackerName = &v + return s +} + +// Describes how to interpret an application-defined timestamp value from an +// MQTT message payload and the precision of that value. +type LocationTimestamp struct { + _ struct{} `type:"structure"` + + // The precision of the timestamp value that results from the expression described + // in value. + // + // Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The default + // is MILLISECONDS. + Unit *string `locationName:"unit" type:"string"` + + // An expression that returns a long epoch time value. + // + // Value is a required field + Value *string `locationName:"value" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LocationTimestamp) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LocationTimestamp) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LocationTimestamp) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LocationTimestamp"} + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetUnit sets the Unit field's value. +func (s *LocationTimestamp) SetUnit(v string) *LocationTimestamp { + s.Unit = &v + return s +} + +// SetValue sets the Value field's value. +func (s *LocationTimestamp) SetValue(v string) *LocationTimestamp { + s.Value = &v + return s +} + // A log target. type LogTarget struct { _ struct{} `type:"structure"` @@ -56492,7 +56692,7 @@ type ProvisioningTemplateVersionSummary struct { // false. IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"` - // The ID of the fleet privisioning template version. + // The ID of the fleet provisioning template version. VersionId *int64 `locationName:"versionId" type:"integer"` } @@ -65969,7 +66169,9 @@ type UpdateProvisioningTemplateInput struct { // True to enable the provisioning template, otherwise false. Enabled *bool `locationName:"enabled" type:"boolean"` - // Updates the pre-provisioning hook template. + // Updates the pre-provisioning hook template. Only supports template of type + // FLEET_PROVISIONING. For more information about provisioning template types, + // see type (https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningTemplate.html#iot-CreateProvisioningTemplate-request-type). PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"` // The ARN of the role associated with the provisioning template. This IoT role diff --git a/service/sesv2/api.go b/service/sesv2/api.go index a13f7dbfd8..c26500e980 100644 --- a/service/sesv2/api.go +++ b/service/sesv2/api.go @@ -13,6 +13,98 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restjson" ) +const opBatchGetMetricData = "BatchGetMetricData" + +// BatchGetMetricDataRequest generates a "aws/request.Request" representing the +// client's request for the BatchGetMetricData operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See BatchGetMetricData for more information on using the BatchGetMetricData +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the BatchGetMetricDataRequest method. +// req, resp := client.BatchGetMetricDataRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/BatchGetMetricData +func (c *SESV2) BatchGetMetricDataRequest(input *BatchGetMetricDataInput) (req *request.Request, output *BatchGetMetricDataOutput) { + op := &request.Operation{ + Name: opBatchGetMetricData, + HTTPMethod: "POST", + HTTPPath: "/v2/email/metrics/batch", + } + + if input == nil { + input = &BatchGetMetricDataInput{} + } + + output = &BatchGetMetricDataOutput{} + req = c.newRequest(op, input, output) + return +} + +// BatchGetMetricData API operation for Amazon Simple Email Service. +// +// Retrieves batches of metric data collected based on your sending activity. +// +// You can execute this operation no more than 16 times per second, and with +// at most 160 queries from the batches per second (cumulative). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Email Service's +// API operation BatchGetMetricData for usage and error information. +// +// Returned Error Types: +// +// - BadRequestException +// The input you provided is invalid. +// +// - InternalServiceErrorException +// The request couldn't be processed because an error occurred with the Amazon +// SES API v2. +// +// - TooManyRequestsException +// Too many requests have been made to the operation. +// +// - NotFoundException +// The resource you attempted to access doesn't exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/BatchGetMetricData +func (c *SESV2) BatchGetMetricData(input *BatchGetMetricDataInput) (*BatchGetMetricDataOutput, error) { + req, out := c.BatchGetMetricDataRequest(input) + return out, req.Send() +} + +// BatchGetMetricDataWithContext is the same as BatchGetMetricData with the addition of +// the ability to pass a context and additional request options. +// +// See BatchGetMetricData for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *SESV2) BatchGetMetricDataWithContext(ctx aws.Context, input *BatchGetMetricDataInput, opts ...request.Option) (*BatchGetMetricDataOutput, error) { + req, out := c.BatchGetMetricDataRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateConfigurationSet = "CreateConfigurationSet" // CreateConfigurationSetRequest generates a "aws/request.Request" representing the @@ -5159,6 +5251,151 @@ func (c *SESV2) ListImportJobsPagesWithContext(ctx aws.Context, input *ListImpor return p.Err() } +const opListRecommendations = "ListRecommendations" + +// ListRecommendationsRequest generates a "aws/request.Request" representing the +// client's request for the ListRecommendations operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListRecommendations for more information on using the ListRecommendations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListRecommendationsRequest method. +// req, resp := client.ListRecommendationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListRecommendations +func (c *SESV2) ListRecommendationsRequest(input *ListRecommendationsInput) (req *request.Request, output *ListRecommendationsOutput) { + op := &request.Operation{ + Name: opListRecommendations, + HTTPMethod: "POST", + HTTPPath: "/v2/email/vdm/recommendations", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "PageSize", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListRecommendationsInput{} + } + + output = &ListRecommendationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListRecommendations API operation for Amazon Simple Email Service. +// +// Lists the recommendations present in your Amazon SES account in the current +// Amazon Web Services Region. +// +// You can execute this operation no more than once per second. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Email Service's +// API operation ListRecommendations for usage and error information. +// +// Returned Error Types: +// +// - TooManyRequestsException +// Too many requests have been made to the operation. +// +// - BadRequestException +// The input you provided is invalid. +// +// - NotFoundException +// The resource you attempted to access doesn't exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListRecommendations +func (c *SESV2) ListRecommendations(input *ListRecommendationsInput) (*ListRecommendationsOutput, error) { + req, out := c.ListRecommendationsRequest(input) + return out, req.Send() +} + +// ListRecommendationsWithContext is the same as ListRecommendations with the addition of +// the ability to pass a context and additional request options. +// +// See ListRecommendations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *SESV2) ListRecommendationsWithContext(ctx aws.Context, input *ListRecommendationsInput, opts ...request.Option) (*ListRecommendationsOutput, error) { + req, out := c.ListRecommendationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListRecommendationsPages iterates over the pages of a ListRecommendations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListRecommendations method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListRecommendations operation. +// pageNum := 0 +// err := client.ListRecommendationsPages(params, +// func(page *sesv2.ListRecommendationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *SESV2) ListRecommendationsPages(input *ListRecommendationsInput, fn func(*ListRecommendationsOutput, bool) bool) error { + return c.ListRecommendationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListRecommendationsPagesWithContext same as ListRecommendationsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *SESV2) ListRecommendationsPagesWithContext(ctx aws.Context, input *ListRecommendationsInput, fn func(*ListRecommendationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListRecommendationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListRecommendationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListRecommendationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListSuppressedDestinations = "ListSuppressedDestinations" // ListSuppressedDestinationsRequest generates a "aws/request.Request" representing the @@ -5727,6 +5964,91 @@ func (c *SESV2) PutAccountSuppressionAttributesWithContext(ctx aws.Context, inpu return out, req.Send() } +const opPutAccountVdmAttributes = "PutAccountVdmAttributes" + +// PutAccountVdmAttributesRequest generates a "aws/request.Request" representing the +// client's request for the PutAccountVdmAttributes operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutAccountVdmAttributes for more information on using the PutAccountVdmAttributes +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the PutAccountVdmAttributesRequest method. +// req, resp := client.PutAccountVdmAttributesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutAccountVdmAttributes +func (c *SESV2) PutAccountVdmAttributesRequest(input *PutAccountVdmAttributesInput) (req *request.Request, output *PutAccountVdmAttributesOutput) { + op := &request.Operation{ + Name: opPutAccountVdmAttributes, + HTTPMethod: "PUT", + HTTPPath: "/v2/email/account/vdm", + } + + if input == nil { + input = &PutAccountVdmAttributesInput{} + } + + output = &PutAccountVdmAttributesOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutAccountVdmAttributes API operation for Amazon Simple Email Service. +// +// Update your Amazon SES account VDM attributes. +// +// You can execute this operation no more than once per second. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Email Service's +// API operation PutAccountVdmAttributes for usage and error information. +// +// Returned Error Types: +// +// - BadRequestException +// The input you provided is invalid. +// +// - TooManyRequestsException +// Too many requests have been made to the operation. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutAccountVdmAttributes +func (c *SESV2) PutAccountVdmAttributes(input *PutAccountVdmAttributesInput) (*PutAccountVdmAttributesOutput, error) { + req, out := c.PutAccountVdmAttributesRequest(input) + return out, req.Send() +} + +// PutAccountVdmAttributesWithContext is the same as PutAccountVdmAttributes with the addition of +// the ability to pass a context and additional request options. +// +// See PutAccountVdmAttributes for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *SESV2) PutAccountVdmAttributesWithContext(ctx aws.Context, input *PutAccountVdmAttributesInput, opts ...request.Option) (*PutAccountVdmAttributesOutput, error) { + req, out := c.PutAccountVdmAttributesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opPutConfigurationSetDeliveryOptions = "PutConfigurationSetDeliveryOptions" // PutConfigurationSetDeliveryOptionsRequest generates a "aws/request.Request" representing the @@ -6162,54 +6484,142 @@ func (c *SESV2) PutConfigurationSetTrackingOptionsWithContext(ctx aws.Context, i return out, req.Send() } -const opPutDedicatedIpInPool = "PutDedicatedIpInPool" +const opPutConfigurationSetVdmOptions = "PutConfigurationSetVdmOptions" -// PutDedicatedIpInPoolRequest generates a "aws/request.Request" representing the -// client's request for the PutDedicatedIpInPool operation. The "output" return +// PutConfigurationSetVdmOptionsRequest generates a "aws/request.Request" representing the +// client's request for the PutConfigurationSetVdmOptions operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See PutDedicatedIpInPool for more information on using the PutDedicatedIpInPool +// See PutConfigurationSetVdmOptions for more information on using the PutConfigurationSetVdmOptions // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutDedicatedIpInPoolRequest method. -// req, resp := client.PutDedicatedIpInPoolRequest(params) +// // Example sending a request using the PutConfigurationSetVdmOptionsRequest method. +// req, resp := client.PutConfigurationSetVdmOptionsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutDedicatedIpInPool -func (c *SESV2) PutDedicatedIpInPoolRequest(input *PutDedicatedIpInPoolInput) (req *request.Request, output *PutDedicatedIpInPoolOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetVdmOptions +func (c *SESV2) PutConfigurationSetVdmOptionsRequest(input *PutConfigurationSetVdmOptionsInput) (req *request.Request, output *PutConfigurationSetVdmOptionsOutput) { op := &request.Operation{ - Name: opPutDedicatedIpInPool, + Name: opPutConfigurationSetVdmOptions, HTTPMethod: "PUT", - HTTPPath: "/v2/email/dedicated-ips/{IP}/pool", + HTTPPath: "/v2/email/configuration-sets/{ConfigurationSetName}/vdm-options", } if input == nil { - input = &PutDedicatedIpInPoolInput{} + input = &PutConfigurationSetVdmOptionsInput{} } - output = &PutDedicatedIpInPoolOutput{} + output = &PutConfigurationSetVdmOptionsOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// PutDedicatedIpInPool API operation for Amazon Simple Email Service. +// PutConfigurationSetVdmOptions API operation for Amazon Simple Email Service. // -// Move a dedicated IP address to an existing dedicated IP pool. +// Specify VDM preferences for email that you send using the configuration set. // -// The dedicated IP address that you specify must already exist, and must be -// associated with your Amazon Web Services account. +// You can execute this operation no more than once per second. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Email Service's +// API operation PutConfigurationSetVdmOptions for usage and error information. +// +// Returned Error Types: +// +// - NotFoundException +// The resource you attempted to access doesn't exist. +// +// - TooManyRequestsException +// Too many requests have been made to the operation. +// +// - BadRequestException +// The input you provided is invalid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetVdmOptions +func (c *SESV2) PutConfigurationSetVdmOptions(input *PutConfigurationSetVdmOptionsInput) (*PutConfigurationSetVdmOptionsOutput, error) { + req, out := c.PutConfigurationSetVdmOptionsRequest(input) + return out, req.Send() +} + +// PutConfigurationSetVdmOptionsWithContext is the same as PutConfigurationSetVdmOptions with the addition of +// the ability to pass a context and additional request options. +// +// See PutConfigurationSetVdmOptions for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *SESV2) PutConfigurationSetVdmOptionsWithContext(ctx aws.Context, input *PutConfigurationSetVdmOptionsInput, opts ...request.Option) (*PutConfigurationSetVdmOptionsOutput, error) { + req, out := c.PutConfigurationSetVdmOptionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutDedicatedIpInPool = "PutDedicatedIpInPool" + +// PutDedicatedIpInPoolRequest generates a "aws/request.Request" representing the +// client's request for the PutDedicatedIpInPool operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutDedicatedIpInPool for more information on using the PutDedicatedIpInPool +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the PutDedicatedIpInPoolRequest method. +// req, resp := client.PutDedicatedIpInPoolRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutDedicatedIpInPool +func (c *SESV2) PutDedicatedIpInPoolRequest(input *PutDedicatedIpInPoolInput) (req *request.Request, output *PutDedicatedIpInPoolOutput) { + op := &request.Operation{ + Name: opPutDedicatedIpInPool, + HTTPMethod: "PUT", + HTTPPath: "/v2/email/dedicated-ips/{IP}/pool", + } + + if input == nil { + input = &PutDedicatedIpInPoolInput{} + } + + output = &PutDedicatedIpInPoolOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutDedicatedIpInPool API operation for Amazon Simple Email Service. +// +// Move a dedicated IP address to an existing dedicated IP pool. +// +// The dedicated IP address that you specify must already exist, and must be +// associated with your Amazon Web Services account. // // The dedicated IP pool you specify must already exist. You can create a new // pool by using the CreateDedicatedIpPool operation. @@ -8421,6 +8831,269 @@ func (s *BadRequestException) RequestID() string { return s.RespMetadata.RequestID } +// Represents a request to retrieve a batch of metric data. +type BatchGetMetricDataInput struct { + _ struct{} `type:"structure"` + + // A list of queries for metrics to be retrieved. + // + // Queries is a required field + Queries []*BatchGetMetricDataQuery `min:"1" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetMetricDataInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetMetricDataInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchGetMetricDataInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchGetMetricDataInput"} + if s.Queries == nil { + invalidParams.Add(request.NewErrParamRequired("Queries")) + } + if s.Queries != nil && len(s.Queries) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Queries", 1)) + } + if s.Queries != nil { + for i, v := range s.Queries { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Queries", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetQueries sets the Queries field's value. +func (s *BatchGetMetricDataInput) SetQueries(v []*BatchGetMetricDataQuery) *BatchGetMetricDataInput { + s.Queries = v + return s +} + +// Represents the result of processing your metric data batch request +type BatchGetMetricDataOutput struct { + _ struct{} `type:"structure"` + + // A list of MetricDataError encountered while processing your metric data batch + // request. + Errors []*MetricDataError `type:"list"` + + // A list of successfully retrieved MetricDataResult. + Results []*MetricDataResult `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetMetricDataOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetMetricDataOutput) GoString() string { + return s.String() +} + +// SetErrors sets the Errors field's value. +func (s *BatchGetMetricDataOutput) SetErrors(v []*MetricDataError) *BatchGetMetricDataOutput { + s.Errors = v + return s +} + +// SetResults sets the Results field's value. +func (s *BatchGetMetricDataOutput) SetResults(v []*MetricDataResult) *BatchGetMetricDataOutput { + s.Results = v + return s +} + +// Represents a single metric data query to include in a batch. +type BatchGetMetricDataQuery struct { + _ struct{} `type:"structure"` + + // An object that contains mapping between MetricDimensionName and MetricDimensionValue + // to filter metrics by. + Dimensions map[string]*string `min:"1" type:"map"` + + // Represents the end date for the query interval. + // + // EndDate is a required field + EndDate *time.Time `type:"timestamp" required:"true"` + + // The query identifier. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The queried metric. This can be one of the following: + // + // * SEND – Emails sent eligible for tracking in the VDM dashboard. This + // excludes emails sent to the mailbox simulator and emails addressed to + // more than one recipient. + // + // * COMPLAINT – Complaints received for your account. This excludes complaints + // from the mailbox simulator, those originating from your account-level + // suppression list (if enabled), and those for emails addressed to more + // than one recipient + // + // * PERMANENT_BOUNCE – Permanent bounces - i.e. feedback received for + // emails sent to non-existent mailboxes. Excludes bounces from the mailbox + // simulator, those originating from your account-level suppression list + // (if enabled), and those for emails addressed to more than one recipient. + // + // * TRANSIENT_BOUNCE – Transient bounces - i.e. feedback received for + // delivery failures excluding issues with non-existent mailboxes. Excludes + // bounces from the mailbox simulator, and those for emails addressed to + // more than one recipient. + // + // * OPEN – Unique open events for emails including open trackers. Excludes + // opens for emails addressed to more than one recipient. + // + // * CLICK – Unique click events for emails including wrapped links. Excludes + // clicks for emails addressed to more than one recipient. + // + // * DELIVERY – Successful deliveries for email sending attempts. Excludes + // deliveries to the mailbox simulator and for emails addressed to more than + // one recipient. + // + // * DELIVERY_OPEN – Successful deliveries for email sending attempts. + // Excludes deliveries to the mailbox simulator, for emails addressed to + // more than one recipient, and emails without open trackers. + // + // * DELIVERY_CLICK – Successful deliveries for email sending attempts. + // Excludes deliveries to the mailbox simulator, for emails addressed to + // more than one recipient, and emails without click trackers. + // + // * DELIVERY_COMPLAINT – Successful deliveries for email sending attempts. + // Excludes deliveries to the mailbox simulator, for emails addressed to + // more than one recipient, and emails addressed to recipients hosted by + // ISPs with which Amazon SES does not have a feedback loop agreement. + // + // Metric is a required field + Metric *string `type:"string" required:"true" enum:"Metric"` + + // The query namespace - e.g. VDM + // + // Namespace is a required field + Namespace *string `type:"string" required:"true" enum:"MetricNamespace"` + + // Represents the start date for the query interval. + // + // StartDate is a required field + StartDate *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetMetricDataQuery) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetMetricDataQuery) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchGetMetricDataQuery) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchGetMetricDataQuery"} + if s.Dimensions != nil && len(s.Dimensions) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Dimensions", 1)) + } + if s.EndDate == nil { + invalidParams.Add(request.NewErrParamRequired("EndDate")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + if s.Metric == nil { + invalidParams.Add(request.NewErrParamRequired("Metric")) + } + if s.Namespace == nil { + invalidParams.Add(request.NewErrParamRequired("Namespace")) + } + if s.StartDate == nil { + invalidParams.Add(request.NewErrParamRequired("StartDate")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDimensions sets the Dimensions field's value. +func (s *BatchGetMetricDataQuery) SetDimensions(v map[string]*string) *BatchGetMetricDataQuery { + s.Dimensions = v + return s +} + +// SetEndDate sets the EndDate field's value. +func (s *BatchGetMetricDataQuery) SetEndDate(v time.Time) *BatchGetMetricDataQuery { + s.EndDate = &v + return s +} + +// SetId sets the Id field's value. +func (s *BatchGetMetricDataQuery) SetId(v string) *BatchGetMetricDataQuery { + s.Id = &v + return s +} + +// SetMetric sets the Metric field's value. +func (s *BatchGetMetricDataQuery) SetMetric(v string) *BatchGetMetricDataQuery { + s.Metric = &v + return s +} + +// SetNamespace sets the Namespace field's value. +func (s *BatchGetMetricDataQuery) SetNamespace(v string) *BatchGetMetricDataQuery { + s.Namespace = &v + return s +} + +// SetStartDate sets the StartDate field's value. +func (s *BatchGetMetricDataQuery) SetStartDate(v time.Time) *BatchGetMetricDataQuery { + s.StartDate = &v + return s +} + // An object that contains information about a blacklisting event that impacts // one of the dedicated IP addresses that is associated with your account. type BlacklistEntry struct { @@ -9426,6 +10099,10 @@ type CreateConfigurationSetInput struct { // An object that defines the open and click tracking options for emails that // you send using the configuration set. TrackingOptions *TrackingOptions `type:"structure"` + + // An object that defines the VDM options for emails that you send using the + // configuration set. + VdmOptions *VdmOptions `type:"structure"` } // String returns the string representation. @@ -9516,6 +10193,12 @@ func (s *CreateConfigurationSetInput) SetTrackingOptions(v *TrackingOptions) *Cr return s } +// SetVdmOptions sets the VdmOptions field's value. +func (s *CreateConfigurationSetInput) SetVdmOptions(v *VdmOptions) *CreateConfigurationSetInput { + s.VdmOptions = v + return s +} + // An HTTP 200 response if the request succeeds, or an error message if the // request fails. type CreateConfigurationSetOutput struct { @@ -10775,29 +11458,107 @@ func (s *DailyVolume) SetVolumeStatistics(v *VolumeStatistics) *DailyVolume { return s } -// Contains information about a dedicated IP address that is associated with -// your Amazon SES account. -// -// To learn more about requesting dedicated IP addresses, see Requesting and -// Relinquishing Dedicated IP Addresses (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/dedicated-ip-case.html) -// in the Amazon SES Developer Guide. -type DedicatedIp struct { +// An object containing additional settings for your VDM configuration as applicable +// to the Dashboard. +type DashboardAttributes struct { _ struct{} `type:"structure"` - // An IPv4 address. + // Specifies the status of your VDM engagement metrics collection. Can be one + // of the following: // - // Ip is a required field - Ip *string `type:"string" required:"true"` - - // The name of the dedicated IP pool that the IP address is associated with. - PoolName *string `type:"string"` - - // Indicates how complete the dedicated IP warm-up process is. When this value - // equals 1, the address has completed the warm-up process and is ready for - // use. + // * ENABLED – Amazon SES enables engagement metrics for your account. // - // WarmupPercentage is a required field - WarmupPercentage *int64 `type:"integer" required:"true"` + // * DISABLED – Amazon SES disables engagement metrics for your account. + EngagementMetrics *string `type:"string" enum:"FeatureStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DashboardAttributes) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DashboardAttributes) GoString() string { + return s.String() +} + +// SetEngagementMetrics sets the EngagementMetrics field's value. +func (s *DashboardAttributes) SetEngagementMetrics(v string) *DashboardAttributes { + s.EngagementMetrics = &v + return s +} + +// An object containing additional settings for your VDM configuration as applicable +// to the Dashboard. +type DashboardOptions struct { + _ struct{} `type:"structure"` + + // Specifies the status of your VDM engagement metrics collection. Can be one + // of the following: + // + // * ENABLED – Amazon SES enables engagement metrics for the configuration + // set. + // + // * DISABLED – Amazon SES disables engagement metrics for the configuration + // set. + EngagementMetrics *string `type:"string" enum:"FeatureStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DashboardOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DashboardOptions) GoString() string { + return s.String() +} + +// SetEngagementMetrics sets the EngagementMetrics field's value. +func (s *DashboardOptions) SetEngagementMetrics(v string) *DashboardOptions { + s.EngagementMetrics = &v + return s +} + +// Contains information about a dedicated IP address that is associated with +// your Amazon SES account. +// +// To learn more about requesting dedicated IP addresses, see Requesting and +// Relinquishing Dedicated IP Addresses (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/dedicated-ip-case.html) +// in the Amazon SES Developer Guide. +type DedicatedIp struct { + _ struct{} `type:"structure"` + + // An IPv4 address. + // + // Ip is a required field + Ip *string `type:"string" required:"true"` + + // The name of the dedicated IP pool that the IP address is associated with. + PoolName *string `type:"string"` + + // Indicates how complete the dedicated IP warm-up process is. When this value + // equals 1, the address has completed the warm-up process and is ready for + // use. + // + // WarmupPercentage is a required field + WarmupPercentage *int64 `type:"integer" required:"true"` // The warm-up status of a dedicated IP address. The status can have one of // the following values: @@ -12935,6 +13696,9 @@ type GetAccountOutput struct { // An object that contains information about the email address suppression preferences // for your account in the current Amazon Web Services Region. SuppressionAttributes *SuppressionAttributes `type:"structure"` + + // The VDM attributes that apply to your Amazon SES account. + VdmAttributes *VdmAttributes `type:"structure"` } // String returns the string representation. @@ -12997,6 +13761,12 @@ func (s *GetAccountOutput) SetSuppressionAttributes(v *SuppressionAttributes) *G return s } +// SetVdmAttributes sets the VdmAttributes field's value. +func (s *GetAccountOutput) SetVdmAttributes(v *VdmAttributes) *GetAccountOutput { + s.VdmAttributes = v + return s +} + // A request to retrieve a list of the blacklists that your dedicated IP addresses // appear on. type GetBlacklistReportsInput struct { @@ -13246,6 +14016,10 @@ type GetConfigurationSetOutput struct { // An object that defines the open and click tracking options for emails that // you send using the configuration set. TrackingOptions *TrackingOptions `type:"structure"` + + // An object that contains information about the VDM preferences for your configuration + // set. + VdmOptions *VdmOptions `type:"structure"` } // String returns the string representation. @@ -13308,6 +14082,12 @@ func (s *GetConfigurationSetOutput) SetTrackingOptions(v *TrackingOptions) *GetC return s } +// SetVdmOptions sets the VdmOptions field's value. +func (s *GetConfigurationSetOutput) SetVdmOptions(v *VdmOptions) *GetConfigurationSetOutput { + s.VdmOptions = v + return s +} + type GetContactInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -15053,6 +15833,85 @@ func (s *GetSuppressedDestinationOutput) SetSuppressedDestination(v *SuppressedD return s } +// An object containing additional settings for your VDM configuration as applicable +// to the Guardian. +type GuardianAttributes struct { + _ struct{} `type:"structure"` + + // Specifies the status of your VDM optimized shared delivery. Can be one of + // the following: + // + // * ENABLED – Amazon SES enables optimized shared delivery for your account. + // + // * DISABLED – Amazon SES disables optimized shared delivery for your + // account. + OptimizedSharedDelivery *string `type:"string" enum:"FeatureStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GuardianAttributes) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GuardianAttributes) GoString() string { + return s.String() +} + +// SetOptimizedSharedDelivery sets the OptimizedSharedDelivery field's value. +func (s *GuardianAttributes) SetOptimizedSharedDelivery(v string) *GuardianAttributes { + s.OptimizedSharedDelivery = &v + return s +} + +// An object containing additional settings for your VDM configuration as applicable +// to the Guardian. +type GuardianOptions struct { + _ struct{} `type:"structure"` + + // Specifies the status of your VDM optimized shared delivery. Can be one of + // the following: + // + // * ENABLED – Amazon SES enables optimized shared delivery for the configuration + // set. + // + // * DISABLED – Amazon SES disables optimized shared delivery for the configuration + // set. + OptimizedSharedDelivery *string `type:"string" enum:"FeatureStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GuardianOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GuardianOptions) GoString() string { + return s.String() +} + +// SetOptimizedSharedDelivery sets the OptimizedSharedDelivery field's value. +func (s *GuardianOptions) SetOptimizedSharedDelivery(v string) *GuardianOptions { + s.OptimizedSharedDelivery = &v + return s +} + // Information about an email identity. type IdentityInfo struct { _ struct{} `type:"structure"` @@ -15378,6 +16237,71 @@ func (s *InboxPlacementTrackingOption) SetTrackedIsps(v []*string) *InboxPlaceme return s } +// The request couldn't be processed because an error occurred with the Amazon +// SES API v2. +type InternalServiceErrorException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServiceErrorException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServiceErrorException) GoString() string { + return s.String() +} + +func newErrorInternalServiceErrorException(v protocol.ResponseMetadata) error { + return &InternalServiceErrorException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServiceErrorException) Code() string { + return "InternalServiceErrorException" +} + +// Message returns the exception's message. +func (s *InternalServiceErrorException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServiceErrorException) OrigErr() error { + return nil +} + +func (s *InternalServiceErrorException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServiceErrorException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServiceErrorException) RequestID() string { + return s.RespMetadata.RequestID +} + // The specified request includes an invalid or expired token. type InvalidNextTokenException struct { _ struct{} `type:"structure"` @@ -16734,31 +17658,25 @@ func (s *ListManagementOptions) SetTopicName(v string) *ListManagementOptions { return s } -// A request to obtain a list of email destinations that are on the suppression -// list for your account. -type ListSuppressedDestinationsInput struct { - _ struct{} `type:"structure" nopayload:"true"` - - // Used to filter the list of suppressed email destinations so that it only - // includes addresses that were added to the list before a specific date. - EndDate *time.Time `location:"querystring" locationName:"EndDate" type:"timestamp"` - - // A token returned from a previous call to ListSuppressedDestinations to indicate - // the position in the list of suppressed email addresses. - NextToken *string `location:"querystring" locationName:"NextToken" type:"string"` +// Represents a request to list the existing recommendations for your account. +type ListRecommendationsInput struct { + _ struct{} `type:"structure"` - // The number of results to show in a single call to ListSuppressedDestinations. - // If the number of results is larger than the number you specified in this - // parameter, then the response includes a NextToken element, which you can - // use to obtain additional results. - PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"` + // Filters applied when retrieving recommendations. Can eiter be an individual + // filter, or combinations of STATUS and IMPACT or STATUS and TYPE + Filter map[string]*string `min:"1" type:"map"` - // The factors that caused the email address to be added to . - Reasons []*string `location:"querystring" locationName:"Reason" type:"list" enum:"SuppressionListReason"` + // A token returned from a previous call to ListRecommendations to indicate + // the position in the list of recommendations. + NextToken *string `type:"string"` - // Used to filter the list of suppressed email destinations so that it only - // includes addresses that were added to the list after a specific date. - StartDate *time.Time `location:"querystring" locationName:"StartDate" type:"timestamp"` + // The number of results to show in a single call to ListRecommendations. If + // the number of results is larger than the number you specified in this parameter, + // then the response includes a NextToken element, which you can use to obtain + // additional results. + // + // The value you specify has to be at least 1, and can be no more than 100. + PageSize *int64 `type:"integer"` } // String returns the string representation. @@ -16766,7 +17684,7 @@ type ListSuppressedDestinationsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListSuppressedDestinationsInput) String() string { +func (s ListRecommendationsInput) String() string { return awsutil.Prettify(s) } @@ -16775,52 +17693,54 @@ func (s ListSuppressedDestinationsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListSuppressedDestinationsInput) GoString() string { +func (s ListRecommendationsInput) GoString() string { return s.String() } -// SetEndDate sets the EndDate field's value. -func (s *ListSuppressedDestinationsInput) SetEndDate(v time.Time) *ListSuppressedDestinationsInput { - s.EndDate = &v +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListRecommendationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListRecommendationsInput"} + if s.Filter != nil && len(s.Filter) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Filter", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilter sets the Filter field's value. +func (s *ListRecommendationsInput) SetFilter(v map[string]*string) *ListRecommendationsInput { + s.Filter = v return s } // SetNextToken sets the NextToken field's value. -func (s *ListSuppressedDestinationsInput) SetNextToken(v string) *ListSuppressedDestinationsInput { +func (s *ListRecommendationsInput) SetNextToken(v string) *ListRecommendationsInput { s.NextToken = &v return s } // SetPageSize sets the PageSize field's value. -func (s *ListSuppressedDestinationsInput) SetPageSize(v int64) *ListSuppressedDestinationsInput { +func (s *ListRecommendationsInput) SetPageSize(v int64) *ListRecommendationsInput { s.PageSize = &v return s } -// SetReasons sets the Reasons field's value. -func (s *ListSuppressedDestinationsInput) SetReasons(v []*string) *ListSuppressedDestinationsInput { - s.Reasons = v - return s -} - -// SetStartDate sets the StartDate field's value. -func (s *ListSuppressedDestinationsInput) SetStartDate(v time.Time) *ListSuppressedDestinationsInput { - s.StartDate = &v - return s -} - -// A list of suppressed email addresses. -type ListSuppressedDestinationsOutput struct { +// Contains the response to your request to retrieve the list of recommendations +// for your account. +type ListRecommendationsOutput struct { _ struct{} `type:"structure"` - // A token that indicates that there are additional email addresses on the suppression - // list for your account. To view additional suppressed addresses, issue another - // request to ListSuppressedDestinations, and pass this token in the NextToken - // parameter. + // A string token indicating that there might be additional recommendations + // available to be listed. Use the token provided in the ListRecommendationsResponse + // to use in the subsequent call to ListRecommendations with the same parameters + // to retrieve the next page of recommendations. NextToken *string `type:"string"` - // A list of summaries, each containing a summary for a suppressed email destination. - SuppressedDestinationSummaries []*SuppressedDestinationSummary `type:"list"` + // The recommendations applicable to your account. + Recommendations []*Recommendation `type:"list"` } // String returns the string representation. @@ -16828,7 +17748,7 @@ type ListSuppressedDestinationsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListSuppressedDestinationsOutput) String() string { +func (s ListRecommendationsOutput) String() string { return awsutil.Prettify(s) } @@ -16837,23 +17757,142 @@ func (s ListSuppressedDestinationsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListSuppressedDestinationsOutput) GoString() string { +func (s ListRecommendationsOutput) GoString() string { return s.String() } // SetNextToken sets the NextToken field's value. -func (s *ListSuppressedDestinationsOutput) SetNextToken(v string) *ListSuppressedDestinationsOutput { +func (s *ListRecommendationsOutput) SetNextToken(v string) *ListRecommendationsOutput { s.NextToken = &v return s } -// SetSuppressedDestinationSummaries sets the SuppressedDestinationSummaries field's value. -func (s *ListSuppressedDestinationsOutput) SetSuppressedDestinationSummaries(v []*SuppressedDestinationSummary) *ListSuppressedDestinationsOutput { - s.SuppressedDestinationSummaries = v +// SetRecommendations sets the Recommendations field's value. +func (s *ListRecommendationsOutput) SetRecommendations(v []*Recommendation) *ListRecommendationsOutput { + s.Recommendations = v return s } -type ListTagsForResourceInput struct { +// A request to obtain a list of email destinations that are on the suppression +// list for your account. +type ListSuppressedDestinationsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Used to filter the list of suppressed email destinations so that it only + // includes addresses that were added to the list before a specific date. + EndDate *time.Time `location:"querystring" locationName:"EndDate" type:"timestamp"` + + // A token returned from a previous call to ListSuppressedDestinations to indicate + // the position in the list of suppressed email addresses. + NextToken *string `location:"querystring" locationName:"NextToken" type:"string"` + + // The number of results to show in a single call to ListSuppressedDestinations. + // If the number of results is larger than the number you specified in this + // parameter, then the response includes a NextToken element, which you can + // use to obtain additional results. + PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"` + + // The factors that caused the email address to be added to . + Reasons []*string `location:"querystring" locationName:"Reason" type:"list" enum:"SuppressionListReason"` + + // Used to filter the list of suppressed email destinations so that it only + // includes addresses that were added to the list after a specific date. + StartDate *time.Time `location:"querystring" locationName:"StartDate" type:"timestamp"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSuppressedDestinationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSuppressedDestinationsInput) GoString() string { + return s.String() +} + +// SetEndDate sets the EndDate field's value. +func (s *ListSuppressedDestinationsInput) SetEndDate(v time.Time) *ListSuppressedDestinationsInput { + s.EndDate = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListSuppressedDestinationsInput) SetNextToken(v string) *ListSuppressedDestinationsInput { + s.NextToken = &v + return s +} + +// SetPageSize sets the PageSize field's value. +func (s *ListSuppressedDestinationsInput) SetPageSize(v int64) *ListSuppressedDestinationsInput { + s.PageSize = &v + return s +} + +// SetReasons sets the Reasons field's value. +func (s *ListSuppressedDestinationsInput) SetReasons(v []*string) *ListSuppressedDestinationsInput { + s.Reasons = v + return s +} + +// SetStartDate sets the StartDate field's value. +func (s *ListSuppressedDestinationsInput) SetStartDate(v time.Time) *ListSuppressedDestinationsInput { + s.StartDate = &v + return s +} + +// A list of suppressed email addresses. +type ListSuppressedDestinationsOutput struct { + _ struct{} `type:"structure"` + + // A token that indicates that there are additional email addresses on the suppression + // list for your account. To view additional suppressed addresses, issue another + // request to ListSuppressedDestinations, and pass this token in the NextToken + // parameter. + NextToken *string `type:"string"` + + // A list of summaries, each containing a summary for a suppressed email destination. + SuppressedDestinationSummaries []*SuppressedDestinationSummary `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSuppressedDestinationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSuppressedDestinationsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListSuppressedDestinationsOutput) SetNextToken(v string) *ListSuppressedDestinationsOutput { + s.NextToken = &v + return s +} + +// SetSuppressedDestinationSummaries sets the SuppressedDestinationSummaries field's value. +func (s *ListSuppressedDestinationsOutput) SetSuppressedDestinationSummaries(v []*SuppressedDestinationSummary) *ListSuppressedDestinationsOutput { + s.SuppressedDestinationSummaries = v + return s +} + +type ListTagsForResourceInput struct { _ struct{} `type:"structure" nopayload:"true"` // The Amazon Resource Name (ARN) of the resource that you want to retrieve @@ -17285,6 +18324,112 @@ func (s *MessageTag) SetValue(v string) *MessageTag { return s } +// An error corresponding to the unsuccessful processing of a single metric +// data query. +type MetricDataError struct { + _ struct{} `type:"structure"` + + // The query error code. Can be one of: + // + // * INTERNAL_FAILURE – Amazon SES has failed to process one of the queries. + // + // * ACCESS_DENIED – You have insufficient access to retrieve metrics based + // on the given query. + Code *string `type:"string" enum:"QueryErrorCode"` + + // The query identifier. + Id *string `min:"1" type:"string"` + + // The error message associated with the current query error. + Message *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MetricDataError) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MetricDataError) GoString() string { + return s.String() +} + +// SetCode sets the Code field's value. +func (s *MetricDataError) SetCode(v string) *MetricDataError { + s.Code = &v + return s +} + +// SetId sets the Id field's value. +func (s *MetricDataError) SetId(v string) *MetricDataError { + s.Id = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *MetricDataError) SetMessage(v string) *MetricDataError { + s.Message = &v + return s +} + +// The result of a single metric data query. +type MetricDataResult struct { + _ struct{} `type:"structure"` + + // The query identifier. + Id *string `min:"1" type:"string"` + + // A list of timestamps for the metric data results. + Timestamps []*time.Time `type:"list"` + + // A list of values (cumulative / sum) for the metric data results. + Values []*int64 `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MetricDataResult) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MetricDataResult) GoString() string { + return s.String() +} + +// SetId sets the Id field's value. +func (s *MetricDataResult) SetId(v string) *MetricDataResult { + s.Id = &v + return s +} + +// SetTimestamps sets the Timestamps field's value. +func (s *MetricDataResult) SetTimestamps(v []*time.Time) *MetricDataResult { + s.Timestamps = v + return s +} + +// SetValues sets the Values field's value. +func (s *MetricDataResult) SetValues(v []*int64) *MetricDataResult { + s.Values = v + return s +} + // The resource you attempted to access doesn't exist. type NotFoundException struct { _ struct{} `type:"structure"` @@ -17858,6 +19003,80 @@ func (s PutAccountSuppressionAttributesOutput) GoString() string { return s.String() } +// A request to submit new account VDM attributes. +type PutAccountVdmAttributesInput struct { + _ struct{} `type:"structure"` + + // The VDM attributes that you wish to apply to your Amazon SES account. + // + // VdmAttributes is a required field + VdmAttributes *VdmAttributes `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAccountVdmAttributesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAccountVdmAttributesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutAccountVdmAttributesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutAccountVdmAttributesInput"} + if s.VdmAttributes == nil { + invalidParams.Add(request.NewErrParamRequired("VdmAttributes")) + } + if s.VdmAttributes != nil { + if err := s.VdmAttributes.Validate(); err != nil { + invalidParams.AddNested("VdmAttributes", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetVdmAttributes sets the VdmAttributes field's value. +func (s *PutAccountVdmAttributesInput) SetVdmAttributes(v *VdmAttributes) *PutAccountVdmAttributesInput { + s.VdmAttributes = v + return s +} + +type PutAccountVdmAttributesOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAccountVdmAttributesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAccountVdmAttributesOutput) GoString() string { + return s.String() +} + // A request to associate a configuration set with a dedicated IP pool. type PutConfigurationSetDeliveryOptionsInput struct { _ struct{} `type:"structure"` @@ -18162,13 +19381,97 @@ func (s PutConfigurationSetSuppressionOptionsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s PutConfigurationSetSuppressionOptionsInput) GoString() string { +func (s PutConfigurationSetSuppressionOptionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutConfigurationSetSuppressionOptionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetSuppressionOptionsInput"} + if s.ConfigurationSetName == nil { + invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName")) + } + if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConfigurationSetName sets the ConfigurationSetName field's value. +func (s *PutConfigurationSetSuppressionOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetSuppressionOptionsInput { + s.ConfigurationSetName = &v + return s +} + +// SetSuppressedReasons sets the SuppressedReasons field's value. +func (s *PutConfigurationSetSuppressionOptionsInput) SetSuppressedReasons(v []*string) *PutConfigurationSetSuppressionOptionsInput { + s.SuppressedReasons = v + return s +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type PutConfigurationSetSuppressionOptionsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutConfigurationSetSuppressionOptionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutConfigurationSetSuppressionOptionsOutput) GoString() string { + return s.String() +} + +// A request to add a custom domain for tracking open and click events to a +// configuration set. +type PutConfigurationSetTrackingOptionsInput struct { + _ struct{} `type:"structure"` + + // The name of the configuration set. + // + // ConfigurationSetName is a required field + ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"` + + // The domain to use to track open and click events. + CustomRedirectDomain *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutConfigurationSetTrackingOptionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutConfigurationSetTrackingOptionsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *PutConfigurationSetSuppressionOptionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetSuppressionOptionsInput"} +func (s *PutConfigurationSetTrackingOptionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetTrackingOptionsInput"} if s.ConfigurationSetName == nil { invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName")) } @@ -18183,20 +19486,20 @@ func (s *PutConfigurationSetSuppressionOptionsInput) Validate() error { } // SetConfigurationSetName sets the ConfigurationSetName field's value. -func (s *PutConfigurationSetSuppressionOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetSuppressionOptionsInput { +func (s *PutConfigurationSetTrackingOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetTrackingOptionsInput { s.ConfigurationSetName = &v return s } -// SetSuppressedReasons sets the SuppressedReasons field's value. -func (s *PutConfigurationSetSuppressionOptionsInput) SetSuppressedReasons(v []*string) *PutConfigurationSetSuppressionOptionsInput { - s.SuppressedReasons = v +// SetCustomRedirectDomain sets the CustomRedirectDomain field's value. +func (s *PutConfigurationSetTrackingOptionsInput) SetCustomRedirectDomain(v string) *PutConfigurationSetTrackingOptionsInput { + s.CustomRedirectDomain = &v return s } // An HTTP 200 response if the request succeeds, or an error message if the // request fails. -type PutConfigurationSetSuppressionOptionsOutput struct { +type PutConfigurationSetTrackingOptionsOutput struct { _ struct{} `type:"structure"` } @@ -18205,7 +19508,7 @@ type PutConfigurationSetSuppressionOptionsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s PutConfigurationSetSuppressionOptionsOutput) String() string { +func (s PutConfigurationSetTrackingOptionsOutput) String() string { return awsutil.Prettify(s) } @@ -18214,13 +19517,12 @@ func (s PutConfigurationSetSuppressionOptionsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s PutConfigurationSetSuppressionOptionsOutput) GoString() string { +func (s PutConfigurationSetTrackingOptionsOutput) GoString() string { return s.String() } -// A request to add a custom domain for tracking open and click events to a -// configuration set. -type PutConfigurationSetTrackingOptionsInput struct { +// A request to add specific VDM settings to a configuration set. +type PutConfigurationSetVdmOptionsInput struct { _ struct{} `type:"structure"` // The name of the configuration set. @@ -18228,8 +19530,8 @@ type PutConfigurationSetTrackingOptionsInput struct { // ConfigurationSetName is a required field ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"` - // The domain to use to track open and click events. - CustomRedirectDomain *string `type:"string"` + // The VDM options to apply to the configuration set. + VdmOptions *VdmOptions `type:"structure"` } // String returns the string representation. @@ -18237,7 +19539,7 @@ type PutConfigurationSetTrackingOptionsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s PutConfigurationSetTrackingOptionsInput) String() string { +func (s PutConfigurationSetVdmOptionsInput) String() string { return awsutil.Prettify(s) } @@ -18246,13 +19548,13 @@ func (s PutConfigurationSetTrackingOptionsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s PutConfigurationSetTrackingOptionsInput) GoString() string { +func (s PutConfigurationSetVdmOptionsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *PutConfigurationSetTrackingOptionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetTrackingOptionsInput"} +func (s *PutConfigurationSetVdmOptionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetVdmOptionsInput"} if s.ConfigurationSetName == nil { invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName")) } @@ -18267,20 +19569,20 @@ func (s *PutConfigurationSetTrackingOptionsInput) Validate() error { } // SetConfigurationSetName sets the ConfigurationSetName field's value. -func (s *PutConfigurationSetTrackingOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetTrackingOptionsInput { +func (s *PutConfigurationSetVdmOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetVdmOptionsInput { s.ConfigurationSetName = &v return s } -// SetCustomRedirectDomain sets the CustomRedirectDomain field's value. -func (s *PutConfigurationSetTrackingOptionsInput) SetCustomRedirectDomain(v string) *PutConfigurationSetTrackingOptionsInput { - s.CustomRedirectDomain = &v +// SetVdmOptions sets the VdmOptions field's value. +func (s *PutConfigurationSetVdmOptionsInput) SetVdmOptions(v *VdmOptions) *PutConfigurationSetVdmOptionsInput { + s.VdmOptions = v return s } // An HTTP 200 response if the request succeeds, or an error message if the // request fails. -type PutConfigurationSetTrackingOptionsOutput struct { +type PutConfigurationSetVdmOptionsOutput struct { _ struct{} `type:"structure"` } @@ -18289,7 +19591,7 @@ type PutConfigurationSetTrackingOptionsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s PutConfigurationSetTrackingOptionsOutput) String() string { +func (s PutConfigurationSetVdmOptionsOutput) String() string { return awsutil.Prettify(s) } @@ -18298,7 +19600,7 @@ func (s PutConfigurationSetTrackingOptionsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s PutConfigurationSetTrackingOptionsOutput) GoString() string { +func (s PutConfigurationSetVdmOptionsOutput) GoString() string { return s.String() } @@ -19265,6 +20567,93 @@ func (s *RawMessage) SetData(v []byte) *RawMessage { return s } +// A recommendation generated for your account. +type Recommendation struct { + _ struct{} `type:"structure"` + + // The first time this issue was encountered and the recommendation was generated. + CreatedTimestamp *time.Time `type:"timestamp"` + + // The recommendation description / disambiguator - e.g. DKIM1 and DKIM2 are + // different recommendations about your DKIM setup. + Description *string `type:"string"` + + // The recommendation impact, with values like HIGH or LOW. + Impact *string `type:"string" enum:"RecommendationImpact"` + + // The last time the recommendation was updated. + LastUpdatedTimestamp *time.Time `type:"timestamp"` + + // The resource affected by the recommendation, with values like arn:aws:ses:us-east-1:123456789012:identity/example.com. + ResourceArn *string `type:"string"` + + // The recommendation status, with values like OPEN or FIXED. + Status *string `type:"string" enum:"RecommendationStatus"` + + // The recommendation type, with values like DKIM, SPF or DMARC. + Type *string `type:"string" enum:"RecommendationType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Recommendation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Recommendation) GoString() string { + return s.String() +} + +// SetCreatedTimestamp sets the CreatedTimestamp field's value. +func (s *Recommendation) SetCreatedTimestamp(v time.Time) *Recommendation { + s.CreatedTimestamp = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *Recommendation) SetDescription(v string) *Recommendation { + s.Description = &v + return s +} + +// SetImpact sets the Impact field's value. +func (s *Recommendation) SetImpact(v string) *Recommendation { + s.Impact = &v + return s +} + +// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value. +func (s *Recommendation) SetLastUpdatedTimestamp(v time.Time) *Recommendation { + s.LastUpdatedTimestamp = &v + return s +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *Recommendation) SetResourceArn(v string) *Recommendation { + s.ResourceArn = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *Recommendation) SetStatus(v string) *Recommendation { + s.Status = &v + return s +} + +// SetType sets the Type field's value. +func (s *Recommendation) SetType(v string) *Recommendation { + s.Type = &v + return s +} + // The ReplaceEmailContent object to be used for a specific BulkEmailEntry. // The ReplacementTemplate can be specified within this object. type ReplacementEmailContent struct { @@ -21934,6 +23323,121 @@ func (s UpdateEmailTemplateOutput) GoString() string { return s.String() } +// The VDM attributes that apply to your Amazon SES account. +type VdmAttributes struct { + _ struct{} `type:"structure"` + + // Specifies additional settings for your VDM configuration as applicable to + // the Dashboard. + DashboardAttributes *DashboardAttributes `type:"structure"` + + // Specifies additional settings for your VDM configuration as applicable to + // the Guardian. + GuardianAttributes *GuardianAttributes `type:"structure"` + + // Specifies the status of your VDM configuration. Can be one of the following: + // + // * ENABLED – Amazon SES enables VDM for your account. + // + // * DISABLED – Amazon SES disables VDM for your account. + // + // VdmEnabled is a required field + VdmEnabled *string `type:"string" required:"true" enum:"FeatureStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VdmAttributes) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VdmAttributes) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *VdmAttributes) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "VdmAttributes"} + if s.VdmEnabled == nil { + invalidParams.Add(request.NewErrParamRequired("VdmEnabled")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDashboardAttributes sets the DashboardAttributes field's value. +func (s *VdmAttributes) SetDashboardAttributes(v *DashboardAttributes) *VdmAttributes { + s.DashboardAttributes = v + return s +} + +// SetGuardianAttributes sets the GuardianAttributes field's value. +func (s *VdmAttributes) SetGuardianAttributes(v *GuardianAttributes) *VdmAttributes { + s.GuardianAttributes = v + return s +} + +// SetVdmEnabled sets the VdmEnabled field's value. +func (s *VdmAttributes) SetVdmEnabled(v string) *VdmAttributes { + s.VdmEnabled = &v + return s +} + +// An object that defines the VDM settings that apply to emails that you send +// using the configuration set. +type VdmOptions struct { + _ struct{} `type:"structure"` + + // Specifies additional settings for your VDM configuration as applicable to + // the Dashboard. + DashboardOptions *DashboardOptions `type:"structure"` + + // Specifies additional settings for your VDM configuration as applicable to + // the Guardian. + GuardianOptions *GuardianOptions `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VdmOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VdmOptions) GoString() string { + return s.String() +} + +// SetDashboardOptions sets the DashboardOptions field's value. +func (s *VdmOptions) SetDashboardOptions(v *DashboardOptions) *VdmOptions { + s.DashboardOptions = v + return s +} + +// SetGuardianOptions sets the GuardianOptions field's value. +func (s *VdmOptions) SetGuardianOptions(v *GuardianOptions) *VdmOptions { + s.GuardianOptions = v + return s +} + // An object that contains information about the amount of email that was delivered // to recipients. type VolumeStatistics struct { @@ -22330,6 +23834,22 @@ func EventType_Values() []string { } } +const ( + // FeatureStatusEnabled is a FeatureStatus enum value + FeatureStatusEnabled = "ENABLED" + + // FeatureStatusDisabled is a FeatureStatus enum value + FeatureStatusDisabled = "DISABLED" +) + +// FeatureStatus_Values returns all elements of the FeatureStatus enum +func FeatureStatus_Values() []string { + return []string{ + FeatureStatusEnabled, + FeatureStatusDisabled, + } +} + const ( // IdentityTypeEmailAddress is a IdentityType enum value IdentityTypeEmailAddress = "EMAIL_ADDRESS" @@ -22393,6 +23913,40 @@ func JobStatus_Values() []string { } } +// The ListRecommendations filter type. This can be one of the following: +// +// - TYPE – The recommendation type, with values like DKIM, SPF or DMARC. +// +// - IMPACT – The recommendation impact, with values like HIGH or LOW. +// +// - STATUS – The recommendation status, with values like OPEN or FIXED. +// +// - RESOURCE_ARN – The resource affected by the recommendation, with values +// like arn:aws:ses:us-east-1:123456789012:identity/example.com. +const ( + // ListRecommendationsFilterKeyType is a ListRecommendationsFilterKey enum value + ListRecommendationsFilterKeyType = "TYPE" + + // ListRecommendationsFilterKeyImpact is a ListRecommendationsFilterKey enum value + ListRecommendationsFilterKeyImpact = "IMPACT" + + // ListRecommendationsFilterKeyStatus is a ListRecommendationsFilterKey enum value + ListRecommendationsFilterKeyStatus = "STATUS" + + // ListRecommendationsFilterKeyResourceArn is a ListRecommendationsFilterKey enum value + ListRecommendationsFilterKeyResourceArn = "RESOURCE_ARN" +) + +// ListRecommendationsFilterKey_Values returns all elements of the ListRecommendationsFilterKey enum +func ListRecommendationsFilterKey_Values() []string { + return []string{ + ListRecommendationsFilterKeyType, + ListRecommendationsFilterKeyImpact, + ListRecommendationsFilterKeyStatus, + ListRecommendationsFilterKeyResourceArn, + } +} + // The status of the MAIL FROM domain. This status can have the following values: // // - PENDING – Amazon SES hasn't started searching for the MX record yet. @@ -22445,6 +23999,162 @@ func MailType_Values() []string { } } +const ( + // MetricSend is a Metric enum value + MetricSend = "SEND" + + // MetricComplaint is a Metric enum value + MetricComplaint = "COMPLAINT" + + // MetricPermanentBounce is a Metric enum value + MetricPermanentBounce = "PERMANENT_BOUNCE" + + // MetricTransientBounce is a Metric enum value + MetricTransientBounce = "TRANSIENT_BOUNCE" + + // MetricOpen is a Metric enum value + MetricOpen = "OPEN" + + // MetricClick is a Metric enum value + MetricClick = "CLICK" + + // MetricDelivery is a Metric enum value + MetricDelivery = "DELIVERY" + + // MetricDeliveryOpen is a Metric enum value + MetricDeliveryOpen = "DELIVERY_OPEN" + + // MetricDeliveryClick is a Metric enum value + MetricDeliveryClick = "DELIVERY_CLICK" + + // MetricDeliveryComplaint is a Metric enum value + MetricDeliveryComplaint = "DELIVERY_COMPLAINT" +) + +// Metric_Values returns all elements of the Metric enum +func Metric_Values() []string { + return []string{ + MetricSend, + MetricComplaint, + MetricPermanentBounce, + MetricTransientBounce, + MetricOpen, + MetricClick, + MetricDelivery, + MetricDeliveryOpen, + MetricDeliveryClick, + MetricDeliveryComplaint, + } +} + +// The BatchGetMetricDataQuery dimension name. This can be one of the following: +// +// - EMAIL_IDENTITY – The email identity used when sending messages. +// +// - CONFIGURATION_SET – The configuration set used when sending messages +// (if one was used). +// +// - ISP – The recipient ISP (e.g. Gmail, Yahoo, etc.). +const ( + // MetricDimensionNameEmailIdentity is a MetricDimensionName enum value + MetricDimensionNameEmailIdentity = "EMAIL_IDENTITY" + + // MetricDimensionNameConfigurationSet is a MetricDimensionName enum value + MetricDimensionNameConfigurationSet = "CONFIGURATION_SET" + + // MetricDimensionNameIsp is a MetricDimensionName enum value + MetricDimensionNameIsp = "ISP" +) + +// MetricDimensionName_Values returns all elements of the MetricDimensionName enum +func MetricDimensionName_Values() []string { + return []string{ + MetricDimensionNameEmailIdentity, + MetricDimensionNameConfigurationSet, + MetricDimensionNameIsp, + } +} + +const ( + // MetricNamespaceVdm is a MetricNamespace enum value + MetricNamespaceVdm = "VDM" +) + +// MetricNamespace_Values returns all elements of the MetricNamespace enum +func MetricNamespace_Values() []string { + return []string{ + MetricNamespaceVdm, + } +} + +const ( + // QueryErrorCodeInternalFailure is a QueryErrorCode enum value + QueryErrorCodeInternalFailure = "INTERNAL_FAILURE" + + // QueryErrorCodeAccessDenied is a QueryErrorCode enum value + QueryErrorCodeAccessDenied = "ACCESS_DENIED" +) + +// QueryErrorCode_Values returns all elements of the QueryErrorCode enum +func QueryErrorCode_Values() []string { + return []string{ + QueryErrorCodeInternalFailure, + QueryErrorCodeAccessDenied, + } +} + +const ( + // RecommendationImpactLow is a RecommendationImpact enum value + RecommendationImpactLow = "LOW" + + // RecommendationImpactHigh is a RecommendationImpact enum value + RecommendationImpactHigh = "HIGH" +) + +// RecommendationImpact_Values returns all elements of the RecommendationImpact enum +func RecommendationImpact_Values() []string { + return []string{ + RecommendationImpactLow, + RecommendationImpactHigh, + } +} + +const ( + // RecommendationStatusOpen is a RecommendationStatus enum value + RecommendationStatusOpen = "OPEN" + + // RecommendationStatusFixed is a RecommendationStatus enum value + RecommendationStatusFixed = "FIXED" +) + +// RecommendationStatus_Values returns all elements of the RecommendationStatus enum +func RecommendationStatus_Values() []string { + return []string{ + RecommendationStatusOpen, + RecommendationStatusFixed, + } +} + +const ( + // RecommendationTypeDkim is a RecommendationType enum value + RecommendationTypeDkim = "DKIM" + + // RecommendationTypeDmarc is a RecommendationType enum value + RecommendationTypeDmarc = "DMARC" + + // RecommendationTypeSpf is a RecommendationType enum value + RecommendationTypeSpf = "SPF" +) + +// RecommendationType_Values returns all elements of the RecommendationType enum +func RecommendationType_Values() []string { + return []string{ + RecommendationTypeDkim, + RecommendationTypeDmarc, + RecommendationTypeSpf, + } +} + const ( // ReviewStatusPending is a ReviewStatus enum value ReviewStatusPending = "PENDING" diff --git a/service/sesv2/errors.go b/service/sesv2/errors.go index 903d463ec9..1a1321f642 100644 --- a/service/sesv2/errors.go +++ b/service/sesv2/errors.go @@ -39,6 +39,13 @@ const ( // If there is already an ongoing account details update under review. ErrCodeConflictException = "ConflictException" + // ErrCodeInternalServiceErrorException for service response error code + // "InternalServiceErrorException". + // + // The request couldn't be processed because an error occurred with the Amazon + // SES API v2. + ErrCodeInternalServiceErrorException = "InternalServiceErrorException" + // ErrCodeInvalidNextTokenException for service response error code // "InvalidNextTokenException". // @@ -89,6 +96,7 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "BadRequestException": newErrorBadRequestException, "ConcurrentModificationException": newErrorConcurrentModificationException, "ConflictException": newErrorConflictException, + "InternalServiceErrorException": newErrorInternalServiceErrorException, "InvalidNextTokenException": newErrorInvalidNextTokenException, "LimitExceededException": newErrorLimitExceededException, "MailFromDomainNotVerifiedException": newErrorMailFromDomainNotVerifiedException, diff --git a/service/sesv2/sesv2iface/interface.go b/service/sesv2/sesv2iface/interface.go index 7bd16cac43..43fa7eda0d 100644 --- a/service/sesv2/sesv2iface/interface.go +++ b/service/sesv2/sesv2iface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // Amazon Simple Email Service. // func myFunc(svc sesv2iface.SESV2API) bool { -// // Make svc.CreateConfigurationSet request +// // Make svc.BatchGetMetricData request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockSESV2Client struct { // sesv2iface.SESV2API // } -// func (m *mockSESV2Client) CreateConfigurationSet(input *sesv2.CreateConfigurationSetInput) (*sesv2.CreateConfigurationSetOutput, error) { +// func (m *mockSESV2Client) BatchGetMetricData(input *sesv2.BatchGetMetricDataInput) (*sesv2.BatchGetMetricDataOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,10 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type SESV2API interface { + BatchGetMetricData(*sesv2.BatchGetMetricDataInput) (*sesv2.BatchGetMetricDataOutput, error) + BatchGetMetricDataWithContext(aws.Context, *sesv2.BatchGetMetricDataInput, ...request.Option) (*sesv2.BatchGetMetricDataOutput, error) + BatchGetMetricDataRequest(*sesv2.BatchGetMetricDataInput) (*request.Request, *sesv2.BatchGetMetricDataOutput) + CreateConfigurationSet(*sesv2.CreateConfigurationSetInput) (*sesv2.CreateConfigurationSetOutput, error) CreateConfigurationSetWithContext(aws.Context, *sesv2.CreateConfigurationSetInput, ...request.Option) (*sesv2.CreateConfigurationSetOutput, error) CreateConfigurationSetRequest(*sesv2.CreateConfigurationSetInput) (*request.Request, *sesv2.CreateConfigurationSetOutput) @@ -293,6 +297,13 @@ type SESV2API interface { ListImportJobsPages(*sesv2.ListImportJobsInput, func(*sesv2.ListImportJobsOutput, bool) bool) error ListImportJobsPagesWithContext(aws.Context, *sesv2.ListImportJobsInput, func(*sesv2.ListImportJobsOutput, bool) bool, ...request.Option) error + ListRecommendations(*sesv2.ListRecommendationsInput) (*sesv2.ListRecommendationsOutput, error) + ListRecommendationsWithContext(aws.Context, *sesv2.ListRecommendationsInput, ...request.Option) (*sesv2.ListRecommendationsOutput, error) + ListRecommendationsRequest(*sesv2.ListRecommendationsInput) (*request.Request, *sesv2.ListRecommendationsOutput) + + ListRecommendationsPages(*sesv2.ListRecommendationsInput, func(*sesv2.ListRecommendationsOutput, bool) bool) error + ListRecommendationsPagesWithContext(aws.Context, *sesv2.ListRecommendationsInput, func(*sesv2.ListRecommendationsOutput, bool) bool, ...request.Option) error + ListSuppressedDestinations(*sesv2.ListSuppressedDestinationsInput) (*sesv2.ListSuppressedDestinationsOutput, error) ListSuppressedDestinationsWithContext(aws.Context, *sesv2.ListSuppressedDestinationsInput, ...request.Option) (*sesv2.ListSuppressedDestinationsOutput, error) ListSuppressedDestinationsRequest(*sesv2.ListSuppressedDestinationsInput) (*request.Request, *sesv2.ListSuppressedDestinationsOutput) @@ -320,6 +331,10 @@ type SESV2API interface { PutAccountSuppressionAttributesWithContext(aws.Context, *sesv2.PutAccountSuppressionAttributesInput, ...request.Option) (*sesv2.PutAccountSuppressionAttributesOutput, error) PutAccountSuppressionAttributesRequest(*sesv2.PutAccountSuppressionAttributesInput) (*request.Request, *sesv2.PutAccountSuppressionAttributesOutput) + PutAccountVdmAttributes(*sesv2.PutAccountVdmAttributesInput) (*sesv2.PutAccountVdmAttributesOutput, error) + PutAccountVdmAttributesWithContext(aws.Context, *sesv2.PutAccountVdmAttributesInput, ...request.Option) (*sesv2.PutAccountVdmAttributesOutput, error) + PutAccountVdmAttributesRequest(*sesv2.PutAccountVdmAttributesInput) (*request.Request, *sesv2.PutAccountVdmAttributesOutput) + PutConfigurationSetDeliveryOptions(*sesv2.PutConfigurationSetDeliveryOptionsInput) (*sesv2.PutConfigurationSetDeliveryOptionsOutput, error) PutConfigurationSetDeliveryOptionsWithContext(aws.Context, *sesv2.PutConfigurationSetDeliveryOptionsInput, ...request.Option) (*sesv2.PutConfigurationSetDeliveryOptionsOutput, error) PutConfigurationSetDeliveryOptionsRequest(*sesv2.PutConfigurationSetDeliveryOptionsInput) (*request.Request, *sesv2.PutConfigurationSetDeliveryOptionsOutput) @@ -340,6 +355,10 @@ type SESV2API interface { PutConfigurationSetTrackingOptionsWithContext(aws.Context, *sesv2.PutConfigurationSetTrackingOptionsInput, ...request.Option) (*sesv2.PutConfigurationSetTrackingOptionsOutput, error) PutConfigurationSetTrackingOptionsRequest(*sesv2.PutConfigurationSetTrackingOptionsInput) (*request.Request, *sesv2.PutConfigurationSetTrackingOptionsOutput) + PutConfigurationSetVdmOptions(*sesv2.PutConfigurationSetVdmOptionsInput) (*sesv2.PutConfigurationSetVdmOptionsOutput, error) + PutConfigurationSetVdmOptionsWithContext(aws.Context, *sesv2.PutConfigurationSetVdmOptionsInput, ...request.Option) (*sesv2.PutConfigurationSetVdmOptionsOutput, error) + PutConfigurationSetVdmOptionsRequest(*sesv2.PutConfigurationSetVdmOptionsInput) (*request.Request, *sesv2.PutConfigurationSetVdmOptionsOutput) + PutDedicatedIpInPool(*sesv2.PutDedicatedIpInPoolInput) (*sesv2.PutDedicatedIpInPoolOutput, error) PutDedicatedIpInPoolWithContext(aws.Context, *sesv2.PutDedicatedIpInPoolInput, ...request.Option) (*sesv2.PutDedicatedIpInPoolOutput, error) PutDedicatedIpInPoolRequest(*sesv2.PutDedicatedIpInPoolInput) (*request.Request, *sesv2.PutDedicatedIpInPoolOutput) diff --git a/service/textract/api.go b/service/textract/api.go index 1841c14884..526f96bbbe 100644 --- a/service/textract/api.go +++ b/service/textract/api.go @@ -72,9 +72,12 @@ func (c *Textract) AnalyzeDocumentRequest(input *AnalyzeDocumentInput) (req *req // returned (including text that doesn't have a relationship with the value // of FeatureTypes). // -// - Queries.A QUERIES_RESULT Block object contains the answer to the query, -// the alias associated and an ID that connect it to the query asked. This -// Block also contains a location and attached confidence score. +// - Query. A QUERY Block object contains the query text, alias and link +// to the associated Query results block object. +// +// - Query Result. A QUERY_RESULT Block object contains the answer to the +// query and an ID that connects it to the query asked. This Block also contains +// a confidence score. // // Selection elements such as check boxes and option buttons (radio buttons) // can be detected in form data and in tables. A SELECTION_ELEMENT Block object @@ -210,7 +213,7 @@ func (c *Textract) AnalyzeExpenseRequest(input *AnalyzeExpenseInput) (req *reque // AnalyzeExpense synchronously analyzes an input document for financially related // relationships between text. // -// Information is returned as ExpenseDocuments and seperated as follows. +// Information is returned as ExpenseDocuments and seperated as follows: // // - LineItemGroups- A data set containing LineItems which store information // about the lines of text, such as an item purchased and its price on a @@ -451,9 +454,9 @@ func (c *Textract) DetectDocumentTextRequest(input *DetectDocumentTextInput) (re // DetectDocumentText API operation for Amazon Textract. // // Detects text in the input document. Amazon Textract can detect lines of text -// and the words that make up a line of text. The input document must be an -// image in JPEG, PNG, PDF, or TIFF format. DetectDocumentText returns the detected -// text in an array of Block objects. +// and the words that make up a line of text. The input document must be in +// one of the following image formats: JPEG, PNG, PDF, or TIFF. DetectDocumentText +// returns the detected text in an array of Block objects. // // Each document page has as an associated Block of type PAGE. Each PAGE Block // object is the parent of LINE Block objects that represent the lines of detected @@ -607,9 +610,17 @@ func (c *Textract) GetDocumentAnalysisRequest(input *GetDocumentAnalysisInput) ( // returned (including text that doesn't have a relationship with the value // of the StartDocumentAnalysis FeatureTypes input parameter). // -// - Queries. A QUERIES_RESULT Block object contains the answer to the query, -// the alias associated and an ID that connect it to the query asked. This -// Block also contains a location and attached confidence score +// - Query. A QUERY Block object contains the query text, alias and link +// to the associated Query results block object. +// +// - Query Results. A QUERY_RESULT Block object contains the answer to the +// query and an ID that connects it to the query asked. This Block also contains +// a confidence score. +// +// While processing a document with queries, look out for INVALID_REQUEST_PARAMETERS +// output. This indicates that either the per page query limit has been exceeded +// or that the operation is trying to query a page in the document which doesn’t +// exist. // // Selection elements such as check boxes and option buttons (radio buttons) // can be detected in form data and in tables. A SELECTION_ELEMENT Block object @@ -2014,7 +2025,7 @@ type Block struct { // of SelectionStatus to determine the status of the selection element. // // * QUERY - A question asked during the call of AnalyzeDocument. Contains - // an alias and an ID that attachs it to its answer. + // an alias and an ID that attaches it to its answer. // // * QUERY_RESULT - A response to a question asked during the call of analyze // document. Comes with an alias and ID for ease of locating in a response. @@ -2052,12 +2063,14 @@ type Block struct { // a single operation. Id *string `type:"string"` - // The page on which a block was detected. Page is returned by asynchronous - // operations. Page values greater than 1 are only returned for multipage documents - // that are in PDF or TIFF format. A scanned image (JPEG/PNG), even if it contains - // multiple document pages, is considered to be a single-page document. The - // value of Page is always 1. Synchronous operations don't return Page because - // every input document is considered to be a single-page document. + // The page on which a block was detected. Page is returned by synchronous and + // asynchronous operations. Page values greater than 1 are only returned for + // multipage documents that are in PDF or TIFF format. A scanned image (JPEG/PNG) + // provided to an asynchronous operation, even if it contains multiple document + // pages, is considered a single-page document. This means that for scanned + // images the value of Page is always 1. Synchronous operations operations will + // also return a Page value of 1 because every input document is considered + // to be a single-page document. Page *int64 `type:"integer"` // Each query contains the question you want to ask in the Text and the alias @@ -2619,6 +2632,47 @@ func (s *DocumentTooLargeException) RequestID() string { return s.RespMetadata.RequestID } +// Returns the kind of currency detected. +type ExpenseCurrency struct { + _ struct{} `type:"structure"` + + // Currency code for detected currency. + Code *string `type:"string"` + + // Percentage confideence in the detected currency. + Confidence *float64 `type:"float"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExpenseCurrency) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExpenseCurrency) GoString() string { + return s.String() +} + +// SetCode sets the Code field's value. +func (s *ExpenseCurrency) SetCode(v string) *ExpenseCurrency { + s.Code = &v + return s +} + +// SetConfidence sets the Confidence field's value. +func (s *ExpenseCurrency) SetConfidence(v float64) *ExpenseCurrency { + s.Confidence = &v + return s +} + // An object used to store information about the Value or Label detected by // Amazon Textract. type ExpenseDetection struct { @@ -2676,6 +2730,10 @@ func (s *ExpenseDetection) SetText(v string) *ExpenseDetection { type ExpenseDocument struct { _ struct{} `type:"structure"` + // This is a block object, the same as reported when DetectDocumentText is run + // on a document. It provides word level recognition of text. + Blocks []*Block `type:"list"` + // Denotes which invoice or receipt in the document the information is coming // from. First document will be 1, the second 2, and so on. ExpenseIndex *int64 `type:"integer"` @@ -2705,6 +2763,12 @@ func (s ExpenseDocument) GoString() string { return s.String() } +// SetBlocks sets the Blocks field's value. +func (s *ExpenseDocument) SetBlocks(v []*Block) *ExpenseDocument { + s.Blocks = v + return s +} + // SetExpenseIndex sets the ExpenseIndex field's value. func (s *ExpenseDocument) SetExpenseIndex(v int64) *ExpenseDocument { s.ExpenseIndex = &v @@ -2728,6 +2792,14 @@ func (s *ExpenseDocument) SetSummaryFields(v []*ExpenseField) *ExpenseDocument { type ExpenseField struct { _ struct{} `type:"structure"` + // Shows the kind of currency, both the code and confidence associated with + // any monatary value detected. + Currency *ExpenseCurrency `type:"structure"` + + // Shows which group a response object belongs to, such as whether an address + // line belongs to the vendor's address or the recipent's address. + GroupProperties []*ExpenseGroupProperty `type:"list"` + // The explicitly stated label of a detected element. LabelDetection *ExpenseDetection `type:"structure"` @@ -2760,6 +2832,18 @@ func (s ExpenseField) GoString() string { return s.String() } +// SetCurrency sets the Currency field's value. +func (s *ExpenseField) SetCurrency(v *ExpenseCurrency) *ExpenseField { + s.Currency = v + return s +} + +// SetGroupProperties sets the GroupProperties field's value. +func (s *ExpenseField) SetGroupProperties(v []*ExpenseGroupProperty) *ExpenseField { + s.GroupProperties = v + return s +} + // SetLabelDetection sets the LabelDetection field's value. func (s *ExpenseField) SetLabelDetection(v *ExpenseDetection) *ExpenseField { s.LabelDetection = v @@ -2784,6 +2868,48 @@ func (s *ExpenseField) SetValueDetection(v *ExpenseDetection) *ExpenseField { return s } +// Shows the group that a certain key belongs to. This helps differentiate responses +// like addresses that can appear similar in response JSON. +type ExpenseGroupProperty struct { + _ struct{} `type:"structure"` + + // Provides a group Id number, which will be the same for each in the group. + Id *string `type:"string"` + + // Informs you on the kind of label associated with the group + Types []*string `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExpenseGroupProperty) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExpenseGroupProperty) GoString() string { + return s.String() +} + +// SetId sets the Id field's value. +func (s *ExpenseGroupProperty) SetId(v string) *ExpenseGroupProperty { + s.Id = &v + return s +} + +// SetTypes sets the Types field's value. +func (s *ExpenseGroupProperty) SetTypes(v []*string) *ExpenseGroupProperty { + s.Types = v + return s +} + // An object used to store information about the Type detected by Amazon Textract. type ExpenseType struct { _ struct{} `type:"structure"` @@ -4602,8 +4728,8 @@ type Query struct { // Alias attached to the query, for ease of location. Alias *string `min:"1" type:"string"` - // List of pages associated with the query. The following is a list of rules - // for using this parameter. + // Pages is a parameter that the user inputs to specify which pages to apply + // a query to. The following is a list of rules for using this parameter. // // * If a page is not specified, it is set to ["1"] by default. // @@ -4611,7 +4737,7 @@ type Query struct { // 2 3 4 5 6 7 8 9 - *. No whitespace is allowed. // // * When using * to indicate all pages, it must be the only element in the - // string. + // list. // // * You can use page intervals, such as [“1-3”, “1-1”, “4-*”]. // Where * indicates last page of document.